[spatialite] 01/01: Imported Upstream version 4.2.0~rc1

Bas Couwenberg sebastic at xs4all.nl
Sun Jun 1 12:01:36 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream
in repository spatialite.

commit 1bb254fdd9ea56c2fdf485178f1516104765a494
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Thu May 29 19:29:01 2014 +0200

    Imported Upstream version 4.2.0~rc1
---
 Makefile.in                                        |  242 +-
 aclocal.m4                                         |  381 +-
 config-msvc.h                                      |    4 +-
 config.h.in                                        |    3 +
 configure                                          |  263 +-
 configure.ac                                       |   40 +-
 examples/Makefile.in                               |  225 +-
 examples/demo1.c                                   |    2 +
 examples/demo2.c                                   |    3 +
 examples/demo3.c                                   |    1 +
 examples/demo4.c                                   |    1 +
 examples/demo5.c                                   |   14 +-
 spatialite-sql-latest.html                         |  479 +-
 src/Makefile.am                                    |   48 +-
 src/Makefile.in                                    |  335 +-
 src/connection_cache/Makefile.am                   |   22 +
 src/connection_cache/Makefile.in                   |  733 +++
 src/connection_cache/alloc_cache.c                 |  759 +++
 src/connection_cache/cache_aux_1.h                 |   76 +
 src/connection_cache/cache_aux_2.h                 | 1152 +++++
 src/connection_cache/cache_aux_3.h                 |  261 +
 src/connection_cache/generator/Makefile.am         |    3 +
 src/connection_cache/generator/Makefile.in         |  437 ++
 src/connection_cache/generator/README.txt          |   35 +
 src/connection_cache/generator/code_generator.c    |  140 +
 src/dxf/Makefile.am                                |   18 +-
 src/dxf/Makefile.in                                |  271 +-
 src/dxf/dxf_load_distinct.c                        |   42 +-
 src/dxf/dxf_load_mixed.c                           |   42 +-
 src/dxf/dxf_loader.c                               |   80 +-
 src/dxf/dxf_parser.c                               |  144 +-
 src/dxf/dxf_private.h                              |    4 +
 src/dxf/dxf_writer.c                               |    9 +-
 src/gaiaaux/Makefile.am                            |   19 +-
 src/gaiaaux/Makefile.in                            |  243 +-
 src/gaiaaux/gg_sqlaux.c                            |  397 ++
 src/gaiaexif/Makefile.am                           |   14 +-
 src/gaiaexif/Makefile.in                           |  227 +-
 src/gaiaexif/gaia_exif.c                           |    7 +
 src/gaiageo/Ewkt.c                                 |  217 +-
 src/gaiageo/Gml.c                                  |    5 +-
 src/gaiageo/Kml.c                                  |    5 +-
 src/gaiageo/Makefile.am                            |   21 +-
 src/gaiageo/Makefile.in                            |  483 +-
 src/gaiageo/flex/Makefile.in                       |  101 +-
 src/gaiageo/geoJSON.c                              |  309 +-
 src/gaiageo/gg_advanced.c                          |   63 +-
 src/gaiageo/gg_extras.c                            |  243 +-
 src/gaiageo/gg_geoJSON.c                           |    4 +-
 src/gaiageo/gg_geometries.c                        |  198 +-
 src/gaiageo/gg_geoscvt.c                           | 1345 +++++-
 src/gaiageo/gg_gml.c                               |  204 +-
 src/gaiageo/gg_lwgeom.c                            |  225 +-
 src/gaiageo/gg_relations.c                         | 5000 ++++++++------------
 src/gaiageo/gg_relations_ext.c                     | 4405 +++++++++++++++++
 src/gaiageo/gg_shape.c                             |  126 +-
 src/gaiageo/gg_transform.c                         |   44 +-
 src/gaiageo/gg_vanuatu.c                           |    4 +-
 src/gaiageo/gg_voronoj.c                           |  169 +-
 src/gaiageo/gg_wkb.c                               |   39 +-
 src/gaiageo/gg_xml.c                               |  708 ++-
 src/gaiageo/lemon/Makefile.in                      |  202 +-
 src/gaiageo/lemon/lemon_src/Makefile.in            |  101 +-
 src/gaiageo/lex.Ewkt.c                             |   72 +-
 src/gaiageo/lex.GeoJson.c                          |   87 +-
 src/gaiageo/lex.Gml.c                              |   35 +-
 src/gaiageo/lex.Kml.c                              |   35 +-
 src/gaiageo/lex.VanuatuWkt.c                       |  135 +-
 src/gaiageo/vanuatuWkt.c                           |  283 +-
 src/geopackage/Makefile.am                         |   30 +-
 src/geopackage/Makefile.in                         |  508 +-
 src/geopackage/gaia_cvt_gpkg.c                     | 1412 ++++++
 src/geopackage/geopackage_internal.h               |   34 +
 src/geopackage/gpkgAddGeometryColumn.c             |  209 +
 src/geopackage/gpkgBinary.c                        |  512 ++
 src/geopackage/gpkgCreateBaseTables.c              |  660 ++-
 src/geopackage/gpkgCreateTilesTable.c              |  185 +-
 src/geopackage/gpkgCreateTilesZoomLevel.c          |  112 +-
 src/geopackage/gpkgGetImageType.c                  |   55 +-
 src/geopackage/gpkgInsertEpsgSRID.c                |  129 +
 src/geopackage/gpkgMakePoint.c                     |  826 ++++
 src/geopackage/gpkg_add_geometry_triggers.c        |  191 +
 src/geopackage/gpkg_add_rt_metadata_triggers.c     |  149 -
 src/geopackage/gpkg_add_spatial_index.c            |  214 +
 src/geopackage/gpkg_add_tile_triggers.c            |  129 +-
 src/geopackage/gpkg_get_normal_row.c               |   99 +-
 src/geopackage/gpkg_get_normal_zoom.c              |   91 +-
 src/geopackage/gpkg_point_to_tile.c                |  191 -
 src/headers/Makefile.in                            |  163 +-
 src/headers/spatialite.h                           |  350 +-
 src/headers/spatialite/gaiaaux.h                   |   38 +
 src/headers/spatialite/gaiaexif.h                  |    5 +-
 src/headers/spatialite/geopackage.h                |   94 +-
 src/headers/spatialite/gg_advanced.h               | 1984 +++++++-
 src/headers/spatialite/gg_const.h                  |    3 -
 src/headers/spatialite/gg_core.h                   |  121 +-
 src/headers/spatialite/gg_dxf.h                    |   27 +-
 src/headers/spatialite/gg_formats.h                |   27 +-
 src/headers/spatialite/gg_wfs.h                    |   14 +-
 src/headers/spatialite/gg_xml.h                    |  106 +-
 src/headers/spatialite/spatialite.h                |   24 +-
 src/headers/spatialite_private.h                   |   68 +-
 src/md5/Makefile.am                                |   14 +-
 src/md5/Makefile.in                                |  236 +-
 src/md5/gaia_md5.c                                 |   10 +-
 src/md5/md5.c                                      |    6 +-
 src/md5/md5.h                                      |    6 +-
 src/shapefiles/Makefile.am                         |   14 +-
 src/shapefiles/Makefile.in                         |  236 +-
 src/shapefiles/shapefiles.c                        |  619 +--
 src/shapefiles/validator.c                         |  287 +-
 src/spatialite/Makefile.am                         |   21 +-
 src/spatialite/Makefile.in                         |  486 +-
 src/spatialite/extra_tables.c                      | 1353 +++++-
 src/spatialite/mbrcache.c                          |    3 +-
 src/spatialite/metatables.c                        |  127 +-
 src/spatialite/spatialite.c                        | 3969 ++++++++++++----
 src/spatialite/spatialite_init.c                   |   50 +-
 src/spatialite/statistics.c                        |  205 +-
 src/spatialite/virtualXL.c                         |   11 +-
 src/spatialite/virtualbbox.c                       |  984 ++++
 src/spatialite/virtualdbf.c                        |   11 +-
 src/spatialite/virtualfdo.c                        |   77 +-
 src/spatialite/virtualgpkg.c                       | 1077 +++++
 src/spatialite/virtualnetwork.c                    |   11 +-
 src/spatialite/virtualshape.c                      |   11 +-
 src/spatialite/virtualspatialindex.c               |   17 +-
 src/spatialite/virtualxpath.c                      |   63 +-
 src/srsinit/Makefile.am                            |   24 +-
 src/srsinit/Makefile.in                            | 1155 +++--
 src/srsinit/epsg_inlined_00.c                      |  164 +-
 src/srsinit/epsg_inlined_01.c                      |  290 +-
 src/srsinit/epsg_inlined_02.c                      |   46 +-
 src/srsinit/epsg_inlined_03.c                      |  406 +-
 src/srsinit/epsg_inlined_04.c                      |  406 +-
 src/srsinit/epsg_inlined_05.c                      |  404 +-
 src/srsinit/epsg_inlined_06.c                      |  408 +-
 src/srsinit/epsg_inlined_07.c                      |  174 +-
 src/srsinit/epsg_inlined_08.c                      |    2 +-
 src/srsinit/epsg_inlined_09.c                      |  162 +-
 src/srsinit/epsg_inlined_10.c                      |  514 +-
 src/srsinit/epsg_inlined_11.c                      |  170 +-
 src/srsinit/epsg_inlined_12.c                      |   56 +-
 src/srsinit/epsg_inlined_13.c                      |  546 ++-
 src/srsinit/epsg_inlined_14.c                      |   56 +-
 src/srsinit/epsg_inlined_15.c                      |   98 +-
 src/srsinit/epsg_inlined_16.c                      |    2 +-
 src/srsinit/epsg_inlined_17.c                      |  200 +-
 src/srsinit/epsg_inlined_18.c                      |   76 +-
 src/srsinit/epsg_inlined_19.c                      |   70 +-
 src/srsinit/epsg_inlined_20.c                      |  114 +-
 src/srsinit/epsg_inlined_21.c                      |  418 +-
 src/srsinit/epsg_inlined_22.c                      |  238 +-
 src/srsinit/epsg_inlined_23.c                      |   74 +-
 src/srsinit/epsg_inlined_24.c                      |  286 +-
 src/srsinit/epsg_inlined_25.c                      |  400 +-
 src/srsinit/epsg_inlined_26.c                      |  998 ++--
 src/srsinit/epsg_inlined_27.c                      | 3648 +++++++-------
 src/srsinit/epsg_inlined_28.c                      | 3886 +++++++--------
 src/srsinit/epsg_inlined_29.c                      | 3800 ++++++++-------
 src/srsinit/epsg_inlined_30.c                      | 3878 ++++++++-------
 src/srsinit/epsg_inlined_31.c                      | 3950 ++++++++--------
 src/srsinit/epsg_inlined_32.c                      | 3702 ++++++++-------
 src/srsinit/epsg_inlined_33.c                      | 3808 +++++++--------
 src/srsinit/epsg_inlined_34.c                      | 3692 +++++++--------
 src/srsinit/epsg_inlined_35.c                      | 3772 +++++++--------
 src/srsinit/epsg_inlined_36.c                      | 3920 +++++++--------
 src/srsinit/epsg_inlined_37.c                      | 3720 ++++++++-------
 src/srsinit/epsg_inlined_38.c                      | 3714 ++++++++-------
 src/srsinit/epsg_inlined_39.c                      | 3568 +++++++-------
 src/srsinit/epsg_inlined_40.c                      | 3454 +++++++++++++-
 src/srsinit/epsg_inlined_41.c                      | 3600 ++++++++++++++
 src/srsinit/epsg_inlined_42.c                      | 3494 ++++++++++++++
 src/srsinit/epsg_inlined_43.c                      | 3290 +++++++++++++
 src/srsinit/epsg_inlined_44.c                      | 3290 +++++++++++++
 src/srsinit/epsg_inlined_45.c                      | 1146 +++++
 src/srsinit/epsg_inlined_extra.c                   |   17 +-
 src/srsinit/epsg_inlined_prussian.c                | 1815 +++----
 src/srsinit/epsg_inlined_wgs84_00.c                |    6 +-
 src/srsinit/epsg_inlined_wgs84_01.c                |    6 +-
 src/srsinit/epsg_update/Makefile.in                |  101 +-
 src/srsinit/epsg_update/README.txt                 |    4 +-
 src/srsinit/srs_init.c                             |    2 +-
 src/versioninfo/version.c                          |    7 +
 src/virtualtext/Makefile.am                        |   14 +-
 src/virtualtext/Makefile.in                        |  227 +-
 src/virtualtext/virtualtext.c                      |    7 +-
 src/wfs/Makefile.am                                |   14 +-
 src/wfs/Makefile.in                                |  226 +-
 src/wfs/wfs_in.c                                   |   15 +
 test-driver                                        |  127 +
 test/Makefile.am                                   |   54 +-
 test/Makefile.in                                   | 1867 ++++++--
 test/asprintf4win.h                                |   57 +-
 test/check_add_rt_metadata_triggers.c              |  371 --
 ...check_add_rt_metadata_triggers_bad_table_name.c |  130 -
 ...check_add_rt_metadata_triggers_wrong_arg_type.c |  130 -
 test/check_add_tile_triggers.c                     |  667 +--
 test/check_add_tile_triggers_bad_table_name.c      |  214 +-
 test/check_bufovflw.c                              | 2761 ++++++-----
 test/check_create.c                                |  277 +-
 test/check_createBaseTables.c                      |  224 +-
 test/check_dbf_load.c                              |   90 +-
 test/check_dxf.c                                   | 1958 +++++---
 test/check_endian.c                                |  567 ++-
 test/check_exif.c                                  |  978 ++--
 test/check_exif2.c                                 |  513 +-
 test/check_extension.c                             |  306 +-
 test/check_extra_relations_fncts.c                 |  318 +-
 test/check_fdo1.c                                  |  727 +--
 test/check_fdo2.c                                  | 1246 ++---
 test/check_fdo3.c                                  |  204 +-
 test/check_fdo_bufovflw.c                          |  384 +-
 test/check_gaia_utf8.c                             |   92 +-
 test/check_gaia_util.c                             |  727 +--
 test/check_geom_aux.c                              | 1601 ++++---
 test/check_geometry_cols.c                         |  333 +-
 test/check_geoscvt_fncts.c                         |   64 +-
 test/check_get_normal_row.c                        |  604 ++-
 test/check_get_normal_row_bad_geopackage.c         |  194 +-
 test/check_get_normal_row_bad_geopackage2.c        |  105 +-
 test/check_get_normal_zoom.c                       |  457 +-
 test/check_get_normal_zoom_bad_geopackage.c        |  141 +-
 test/check_get_normal_zoom_bad_geopackage2.c       |  142 +-
 test/check_get_normal_zoom_extension_load.c        |  473 +-
 test/check_gpkgConvert.c                           |  307 ++
 test/check_gpkgCreateFeaturesTable.c               |  534 +++
 test/check_gpkgCreateTilesTable.c                  |  487 ++
 test/check_gpkgCreateTilesTableMissingSRID.c       |  115 +
 test/check_gpkgCreateTilesZoomLevel.c              |  317 ++
 test/check_gpkgGetImageFormat.c                    |  137 +-
 test/check_gpkgGetImageFormat_nonblob.c            |   76 +-
 test/check_gpkgGetImageFormat_nonimage.c           |  107 +-
 test/check_gpkgGetImageFormat_png.c                |  137 +-
 test/check_gpkgGetImageFormat_tiff.c               |  137 +-
 test/check_gpkgGetImageFormat_webp.c               |  137 +-
 test/check_gpkgInsertEpsgSRID.c                    |  260 +
 test/check_gpkgVirtual.c                           |  686 +++
 ...ore_container_data_file_format_application_id.c |  150 +
 .../check_gpkg_base_core_contents_data_table_def.c |  356 ++
 ...gpkg_base_core_spatial_ref_sys_data_table_def.c |  384 ++
 ...base_core_spatial_ref_sys_data_values_default.c |  279 ++
 ...extension_mechanism_extensions_data_table_def.c |  311 ++
 test/check_init.c                                  |   63 +-
 test/check_init2.c                                 |  539 ++-
 test/check_libxml2.c                               |  916 ++--
 test/check_math_funcs.c                            |   81 +-
 test/check_mbrcache.c                              |  870 ++--
 test/check_md5.c                                   |  309 +-
 test/check_metacatalog.c                           |  623 +++
 test/check_multithread.c                           |  967 ++++
 test/check_point_to_tile.c                         |  256 -
 test/check_point_to_tile_bad_tablename.c           |   96 -
 test/check_point_to_tile_broken_geopackage.c       |  230 -
 test/check_point_to_tile_broken_geopackage2.c      |  233 -
 test/check_point_to_tile_broken_srid.c             |  215 -
 test/check_point_to_tile_different_srid.c          |  256 -
 test/check_point_to_tile_integer_coordinates.c     |  254 -
 test/check_point_to_tile_multiresult.c             |  254 -
 test/check_point_to_tile_no_tile.c                 |  230 -
 test/check_point_to_tile_wrong_arg_type.c          |  152 -
 test/check_recover_geom.c                          | 2258 +++++----
 test/check_relations_fncts.c                       | 2794 ++++++++---
 test/check_shp_load.c                              |  212 +-
 test/check_shp_load_3d.c                           | 1134 +++--
 test/check_spatialindex.c                          | 2107 ++++++---
 test/check_sql_stmt.c                              | 1033 ++--
 test/check_styling.c                               | 1036 ++--
 test/check_version.c                               |   17 +-
 test/check_virtual_ovflw.c                         |  581 ++-
 test/check_virtualbbox.c                           |  604 +++
 test/check_virtualtable1.c                         |  612 ++-
 test/check_virtualtable2.c                         | 1746 ++++---
 test/check_virtualtable3.c                         | 1193 +++--
 test/check_virtualtable4.c                         |  609 ++-
 test/check_virtualtable5.c                         |  213 +-
 test/check_virtualtable6.c                         |  327 +-
 test/check_virtualxpath.c                          |  800 ++--
 test/check_wfsin.c                                 | 1183 +++--
 test/check_xls_load.c                              |  136 +-
 test/fnmatch_impl4win.h                            |  277 +-
 test/gpkg_test.gpkg                                |  Bin 0 -> 380928 bytes
 test/gpkg_test.sqlite                              |  Bin 0 -> 444416 bytes
 test/raster_se.xml                                 |    1 +
 test/shape_3d.c                                    |  286 +-
 test/shape_cp1252.c                                |  174 +-
 test/shape_primitives.c                            | 1613 ++++---
 test/shape_utf8_1.c                                |  627 ++-
 test/shape_utf8_1ex.c                              |  633 ++-
 test/shape_utf8_2.c                                |  267 +-
 test/sld_sample.xml                                |   21 +
 test/sql_stmt_geopackage_tests/Makefile.am         |   74 +
 test/sql_stmt_geopackage_tests/Makefile.in         |  510 ++
 test/sql_stmt_geopackage_tests/asgpb1.testcase     |    7 +
 test/sql_stmt_geopackage_tests/asgpb2.testcase     |    8 +
 test/sql_stmt_geopackage_tests/asgpb3.testcase     |    8 +
 test/sql_stmt_geopackage_tests/asgpb4.testcase     |    9 +
 test/sql_stmt_geopackage_tests/asgpb5.testcase     |    8 +
 test/sql_stmt_geopackage_tests/asgpb6.testcase     |    9 +
 .../geomfromgpb1.testcase                          |    7 +
 .../geomfromgpb10.testcase                         |    8 +
 .../geomfromgpb11.testcase                         |    7 +
 .../geomfromgpb12.testcase                         |    7 +
 .../geomfromgpb13.testcase                         |    7 +
 .../geomfromgpb14.testcase                         |    7 +
 .../geomfromgpb15.testcase                         |    7 +
 .../geomfromgpb16.testcase                         |    7 +
 .../geomfromgpb17.testcase                         |    8 +
 .../geomfromgpb18.testcase                         |    8 +
 .../geomfromgpb19.testcase                         |    7 +
 .../geomfromgpb2.testcase                          |    8 +
 .../geomfromgpb3.testcase                          |    8 +
 .../geomfromgpb4.testcase                          |    8 +
 .../geomfromgpb5.testcase                          |    8 +
 .../geomfromgpb6.testcase                          |    8 +
 .../geomfromgpb7.testcase                          |    8 +
 .../geomfromgpb8.testcase                          |    8 +
 .../geomfromgpb9.testcase                          |    7 +
 .../implicitgeopackagebinary1.testcase             |    7 +
 .../implicitgeopackagebinary2.testcase             |    7 +
 test/sql_stmt_geopackage_tests/makepoint1.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint2.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint3.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint4.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint5.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint6.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint7.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint8.testcase |    7 +
 test/sql_stmt_geopackage_tests/makepoint9.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointm1.testcase |    8 +
 .../makepointm10.testcase                          |    8 +
 .../makepointm11.testcase                          |    9 +
 .../sql_stmt_geopackage_tests/makepointm2.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointm3.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointm4.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointm5.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointm6.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointm7.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointm8.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointm9.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointz1.testcase |    8 +
 .../makepointz10.testcase                          |    7 +
 .../makepointz11.testcase                          |    7 +
 .../sql_stmt_geopackage_tests/makepointz2.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointz3.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointz4.testcase |    8 +
 .../sql_stmt_geopackage_tests/makepointz5.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointz6.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointz7.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointz8.testcase |    7 +
 .../sql_stmt_geopackage_tests/makepointz9.testcase |    7 +
 .../makepointzm1.testcase                          |    8 +
 .../makepointzm10.testcase                         |    8 +
 .../makepointzm11.testcase                         |    9 +
 .../makepointzm12.testcase                         |    9 +
 .../makepointzm13.testcase                         |    9 +
 .../makepointzm14.testcase                         |    9 +
 .../makepointzm15.testcase                         |    8 +
 .../makepointzm2.testcase                          |    8 +
 .../makepointzm3.testcase                          |    9 +
 .../makepointzm4.testcase                          |    9 +
 .../makepointzm5.testcase                          |    9 +
 .../makepointzm6.testcase                          |    9 +
 .../makepointzm7.testcase                          |    9 +
 .../makepointzm8.testcase                          |    8 +
 .../makepointzm9.testcase                          |    8 +
 test/sql_stmt_geos_tests/Makefile.am               |  375 +-
 test/sql_stmt_geos_tests/Makefile.in               |  475 +-
 .../closestpoint1.testcase                         |    0
 .../closestpoint10.testcase                        |    0
 .../closestpoint11.testcase                        |    0
 .../closestpoint12.testcase                        |    0
 .../closestpoint13.testcase                        |    0
 .../closestpoint14.testcase                        |    0
 .../closestpoint15.testcase                        |    0
 .../closestpoint16.testcase                        |    0
 .../closestpoint17.testcase                        |    0
 .../closestpoint18.testcase                        |    0
 .../closestpoint19.testcase                        |    0
 .../closestpoint2.testcase                         |    0
 .../closestpoint20.testcase                        |    0
 .../closestpoint21.testcase                        |    0
 .../closestpoint22.testcase                        |    0
 .../closestpoint3.testcase                         |    0
 .../closestpoint4.testcase                         |    0
 .../closestpoint5.testcase                         |    0
 .../closestpoint6.testcase                         |    0
 .../closestpoint7.testcase                         |    0
 .../closestpoint8.testcase                         |    0
 .../closestpoint9.testcase                         |    0
 .../coveredby1.testcase                            |    0
 .../coveredby2.testcase                            |    0
 .../covers1.testcase                               |    0
 .../covers2.testcase                               |    0
 .../covers_covered1.testcase                       |    0
 .../covers_covered2.testcase                       |    0
 .../covers_covered3.testcase                       |    0
 .../covers_covered4.testcase                       |    0
 .../covers_covered5.testcase                       |    0
 .../covers_covered6.testcase                       |    0
 .../covers_covered7.testcase                       |    0
 test/sql_stmt_geos_tests/createtopo1.testcase      |    7 +
 .../createtopo10.testcase                          |    0
 .../createtopo11.testcase                          |    0
 test/sql_stmt_geos_tests/createtopo12.testcase     |    7 +
 test/sql_stmt_geos_tests/createtopo13.testcase     |    7 +
 test/sql_stmt_geos_tests/createtopo14.testcase     |    7 +
 test/sql_stmt_geos_tests/createtopo15.testcase     |    7 +
 .../createtopo16.testcase                          |    0
 .../createtopo17.testcase                          |    0
 .../createtopo18.testcase                          |    0
 test/sql_stmt_geos_tests/createtopo2.testcase      |    7 +
 test/sql_stmt_geos_tests/createtopo3.testcase      |    7 +
 test/sql_stmt_geos_tests/createtopo4.testcase      |    7 +
 test/sql_stmt_geos_tests/createtopo5.testcase      |    7 +
 test/sql_stmt_geos_tests/createtopo6.testcase      |    7 +
 .../createtopo7.testcase                           |    0
 .../createtopo8.testcase                           |    0
 .../createtopo9.testcase                           |    0
 .../distance_geogr1.testcase                       |    0
 .../distance_geogr10.testcase                      |    0
 .../distance_geogr11.testcase                      |    0
 .../distance_geogr12.testcase                      |    0
 .../distance_geogr2.testcase                       |    0
 .../distance_geogr3.testcase                       |    0
 .../distance_geogr4.testcase                       |    0
 .../distance_geogr5.testcase                       |    0
 .../distance_geogr6.testcase                       |    0
 .../distance_geogr7.testcase                       |    0
 .../distance_geogr8.testcase                       |    0
 .../distance_geogr9.testcase                       |    0
 test/sql_stmt_geos_tests/geoserror1.testcase       |   18 +
 test/sql_stmt_geos_tests/geoserror2.testcase       |   18 +
 test/sql_stmt_geos_tests/geoserror3.testcase       |   18 +
 test/sql_stmt_geos_tests/geoserror4.testcase       |   18 +
 test/sql_stmt_geos_tests/geoserror5.testcase       |   18 +
 test/sql_stmt_geos_tests/geoserror6.testcase       |   19 +
 test/sql_stmt_geos_tests/geoserror7.testcase       |   19 +
 .../hausdorffdistance1.testcase                    |    0
 .../hausdorffdistance2.testcase                    |    0
 .../hausdorffdistance3.testcase                    |    0
 .../hausdorffdistance4.testcase                    |    0
 .../hausdorffdistance5.testcase                    |    0
 .../hausdorffdistance6.testcase                    |    0
 .../hausdorffdistance7.testcase                    |    0
 .../hexgrid1.testcase                              |    0
 .../hexgrid10.testcase                             |    0
 .../hexgrid11.testcase                             |    0
 .../hexgrid12.testcase                             |    0
 .../hexgrid13.testcase                             |    0
 .../hexgrid14.testcase                             |    0
 .../hexgrid15.testcase                             |    0
 .../hexgrid16.testcase                             |    0
 .../hexgrid17.testcase                             |    0
 .../hexgrid18.testcase                             |    0
 .../hexgrid19.testcase                             |    0
 .../hexgrid2.testcase                              |    0
 test/sql_stmt_geos_tests/hexgrid20.testcase        |    7 +
 test/sql_stmt_geos_tests/hexgrid21.testcase        |   10 +
 test/sql_stmt_geos_tests/hexgrid22.testcase        |    7 +
 test/sql_stmt_geos_tests/hexgrid23.testcase        |    7 +
 .../hexgrid3.testcase                              |    0
 .../hexgrid4.testcase                              |    0
 .../hexgrid5.testcase                              |    0
 .../hexgrid6.testcase                              |    0
 .../hexgrid7.testcase                              |    0
 .../hexgrid8.testcase                              |    0
 .../hexgrid9.testcase                              |    0
 .../interpolateequidistantpoint1.testcase          |    0
 .../interpolateequidistantpoint10.testcase         |    0
 .../interpolateequidistantpoint11.testcase         |    0
 .../interpolateequidistantpoint12.testcase         |    0
 .../interpolateequidistantpoint13.testcase         |    0
 .../interpolateequidistantpoint14.testcase         |    0
 .../interpolateequidistantpoint2.testcase          |    0
 .../interpolateequidistantpoint3.testcase          |    0
 .../interpolateequidistantpoint4.testcase          |    0
 .../interpolateequidistantpoint5.testcase          |    0
 .../interpolateequidistantpoint6.testcase          |    0
 .../interpolateequidistantpoint7.testcase          |    0
 .../interpolateequidistantpoint8.testcase          |    0
 .../interpolateequidistantpoint9.testcase          |    0
 .../interpolatepoint1.testcase                     |    0
 .../interpolatepoint10.testcase                    |    0
 .../interpolatepoint11.testcase                    |    0
 .../interpolatepoint12.testcase                    |    0
 .../interpolatepoint13.testcase                    |    0
 .../interpolatepoint14.testcase                    |    0
 .../interpolatepoint2.testcase                     |    0
 .../interpolatepoint3.testcase                     |    0
 .../interpolatepoint4.testcase                     |    0
 .../interpolatepoint5.testcase                     |    0
 .../interpolatepoint6.testcase                     |    0
 .../interpolatepoint7.testcase                     |    0
 .../interpolatepoint8.testcase                     |    0
 .../interpolatepoint9.testcase                     |    0
 .../linemerge1.testcase                            |    0
 .../linemerge10.testcase                           |    0
 .../linemerge2.testcase                            |    0
 .../linemerge3.testcase                            |    0
 .../linemerge4.testcase                            |    0
 .../linemerge5.testcase                            |    0
 .../linemerge6.testcase                            |    0
 .../linemerge7.testcase                            |    0
 .../linemerge8.testcase                            |    0
 .../linemerge9.testcase                            |    0
 .../linesnodes1.testcase                           |    0
 .../linesnodes10.testcase                          |    0
 .../linesnodes11.testcase                          |    0
 .../linesnodes12.testcase                          |    0
 .../linesnodes13.testcase                          |    0
 .../linesnodes14.testcase                          |    0
 .../linesnodes15.testcase                          |    0
 .../linesnodes16.testcase                          |    0
 .../linesnodes17.testcase                          |    0
 .../linesnodes18.testcase                          |    0
 .../linesnodes19.testcase                          |    0
 .../linesnodes2.testcase                           |    0
 .../linesnodes3.testcase                           |    0
 .../linesnodes4.testcase                           |    0
 .../linesnodes5.testcase                           |    0
 .../linesnodes6.testcase                           |    0
 .../linesnodes7.testcase                           |    0
 .../linesnodes8.testcase                           |    0
 .../linesnodes9.testcase                           |    0
 .../linesubstring1.testcase                        |    0
 .../linesubstring10.testcase                       |    0
 .../linesubstring11.testcase                       |    0
 .../linesubstring12.testcase                       |    0
 .../linesubstring13.testcase                       |    0
 .../linesubstring14.testcase                       |    0
 .../linesubstring15.testcase                       |    0
 .../linesubstring16.testcase                       |    0
 .../linesubstring17.testcase                       |    0
 .../linesubstring18.testcase                       |    0
 .../linesubstring19.testcase                       |    0
 .../linesubstring2.testcase                        |    0
 .../linesubstring20.testcase                       |    0
 .../linesubstring21.testcase                       |    0
 .../linesubstring22.testcase                       |    0
 .../linesubstring23.testcase                       |    0
 .../linesubstring24.testcase                       |    0
 .../linesubstring25.testcase                       |    0
 .../linesubstring26.testcase                       |    0
 .../linesubstring3.testcase                        |    0
 .../linesubstring4.testcase                        |    0
 .../linesubstring5.testcase                        |    0
 .../linesubstring6.testcase                        |    0
 .../linesubstring7.testcase                        |    0
 .../linesubstring8.testcase                        |    0
 .../linesubstring9.testcase                        |    0
 .../locatepoint1.testcase                          |    0
 .../locatepoint10.testcase                         |    0
 .../locatepoint11.testcase                         |    0
 .../locatepoint12.testcase                         |    0
 .../locatepoint2.testcase                          |    0
 .../locatepoint3.testcase                          |    0
 .../locatepoint4.testcase                          |    0
 .../locatepoint5.testcase                          |    0
 .../locatepoint6.testcase                          |    0
 .../locatepoint7.testcase                          |    0
 .../locatepoint8.testcase                          |    0
 .../locatepoint9.testcase                          |    0
 .../makearc15.testcase                             |    0
 .../makearc19.testcase                             |    0
 .../makearc23.testcase                             |    0
 .../makecircle10.testcase                          |    0
 .../makecircle11.testcase                          |    0
 .../makecircle12.testcase                          |    0
 .../makecircle13.testcase                          |    0
 .../makecircle14.testcase                          |    0
 .../makecircle15.testcase                          |    0
 .../makecircle16.testcase                          |    0
 .../makecircle17.testcase                          |    0
 .../makecircle18.testcase                          |    0
 .../makecircularsector15.testcase                  |    0
 .../makecircularsector19.testcase                  |    0
 .../makecircularsector23.testcase                  |    0
 .../makecircularstripe15.testcase                  |    0
 .../makecircularstripe19.testcase                  |    0
 .../makecircularstripe23.testcase                  |    0
 .../makeellipse13.testcase                         |    0
 .../makeellipse17.testcase                         |    0
 .../makeellipse21.testcase                         |    0
 .../makeellipticarc18.testcase                     |    0
 .../makeellipticarc22.testcase                     |    0
 .../makeellipticarc26.testcase                     |    0
 .../makeellipticsector18.testcase                  |    0
 .../makeellipticsector22.testcase                  |    0
 .../makeellipticsector26.testcase                  |    0
 .../offsetcurve1.testcase                          |    0
 .../offsetcurve10.testcase                         |    0
 .../offsetcurve11.testcase                         |    0
 .../offsetcurve12.testcase                         |    0
 .../offsetcurve13.testcase                         |    0
 .../offsetcurve14.testcase                         |    0
 .../offsetcurve2.testcase                          |    0
 .../offsetcurve3.testcase                          |    0
 .../offsetcurve4.testcase                          |    0
 .../offsetcurve5.testcase                          |    0
 .../offsetcurve6.testcase                          |    0
 .../offsetcurve7.testcase                          |    0
 .../offsetcurve8.testcase                          |    0
 .../offsetcurve9.testcase                          |    0
 test/sql_stmt_geos_tests/relations1.testcase       |    2 +-
 .../ringsnodes1.testcase                           |    0
 .../ringsnodes2.testcase                           |    0
 .../ringsnodes3.testcase                           |    0
 .../ringsnodes4.testcase                           |    0
 .../ringsnodes5.testcase                           |    0
 .../ringsnodes6.testcase                           |    0
 .../sharedpaths1.testcase                          |    0
 .../sharedpaths10.testcase                         |    0
 .../sharedpaths11.testcase                         |    0
 .../sharedpaths12.testcase                         |    0
 .../sharedpaths13.testcase                         |    0
 .../sharedpaths14.testcase                         |    0
 .../sharedpaths15.testcase                         |    0
 .../sharedpaths16.testcase                         |    0
 .../sharedpaths17.testcase                         |    0
 .../sharedpaths18.testcase                         |    0
 .../sharedpaths19.testcase                         |    0
 .../sharedpaths2.testcase                          |    0
 .../sharedpaths20.testcase                         |    0
 .../sharedpaths21.testcase                         |    0
 .../sharedpaths22.testcase                         |    0
 .../sharedpaths23.testcase                         |    0
 .../sharedpaths24.testcase                         |    0
 .../sharedpaths25.testcase                         |    0
 .../sharedpaths26.testcase                         |    0
 .../sharedpaths27.testcase                         |    0
 .../sharedpaths28.testcase                         |    0
 .../sharedpaths29.testcase                         |    0
 .../sharedpaths3.testcase                          |    0
 .../sharedpaths30.testcase                         |    0
 .../sharedpaths31.testcase                         |    0
 .../sharedpaths32.testcase                         |    0
 .../sharedpaths4.testcase                          |    0
 .../sharedpaths5.testcase                          |    0
 .../sharedpaths6.testcase                          |    0
 .../sharedpaths7.testcase                          |    0
 .../sharedpaths8.testcase                          |    0
 .../sharedpaths9.testcase                          |    0
 .../shortestline1.testcase                         |    0
 .../shortestline2.testcase                         |    0
 .../shortestline3.testcase                         |    0
 .../shortestline4.testcase                         |    0
 .../shortestline5.testcase                         |    0
 .../shortestline6.testcase                         |    0
 .../shortestline7.testcase                         |    0
 .../singlesidedbuffer1.testcase                    |    0
 .../singlesidedbuffer11.testcase                   |    0
 .../singlesidedbuffer12.testcase                   |    0
 .../singlesidedbuffer13.testcase                   |    0
 .../singlesidedbuffer14.testcase                   |    0
 .../singlesidedbuffer15.testcase                   |    0
 .../singlesidedbuffer16.testcase                   |    0
 .../singlesidedbuffer17.testcase                   |    0
 .../singlesidedbuffer2.testcase                    |    0
 .../singlesidedbuffer3.testcase                    |    0
 .../singlesidedbuffer4.testcase                    |    0
 .../singlesidedbuffer5.testcase                    |    0
 .../singlesidedbuffer6.testcase                    |    0
 .../singlesidedbuffer7.testcase                    |    0
 .../singlesidedbuffer8.testcase                    |    0
 .../singlesidedbuffer9.testcase                    |    0
 .../snap1.testcase                                 |    0
 .../snap10.testcase                                |    0
 .../snap2.testcase                                 |    0
 .../snap3.testcase                                 |    0
 .../snap4.testcase                                 |    0
 .../snap5.testcase                                 |    0
 .../snap6.testcase                                 |    0
 .../snap7.testcase                                 |    0
 .../snap8.testcase                                 |    0
 .../snap9.testcase                                 |    0
 .../squaregrid1.testcase                           |    0
 .../squaregrid10.testcase                          |    0
 .../squaregrid11.testcase                          |    0
 .../squaregrid12.testcase                          |    0
 .../squaregrid13.testcase                          |    0
 .../squaregrid14.testcase                          |    0
 .../squaregrid15.testcase                          |    0
 .../squaregrid16.testcase                          |    0
 .../squaregrid17.testcase                          |    0
 .../squaregrid18.testcase                          |    0
 .../squaregrid19.testcase                          |    0
 .../squaregrid2.testcase                           |    0
 .../squaregrid20.testcase                          |    0
 .../squaregrid21.testcase                          |    0
 .../squaregrid22.testcase                          |    0
 .../squaregrid23.testcase                          |    0
 .../squaregrid3.testcase                           |    0
 .../squaregrid4.testcase                           |    0
 .../squaregrid5.testcase                           |    0
 .../squaregrid6.testcase                           |    0
 .../squaregrid7.testcase                           |    0
 .../squaregrid8.testcase                           |    0
 .../squaregrid9.testcase                           |    0
 test/sql_stmt_geos_tests/testgeos1.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos10.testcase       |    7 +
 test/sql_stmt_geos_tests/testgeos2.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos3.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos4.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos5.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos6.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos7.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos8.testcase        |    7 +
 test/sql_stmt_geos_tests/testgeos9.testcase        |    7 +
 .../trianggrid1.testcase                           |    0
 .../trianggrid10.testcase                          |    0
 .../trianggrid11.testcase                          |    0
 .../trianggrid12.testcase                          |    0
 .../trianggrid13.testcase                          |    0
 .../trianggrid14.testcase                          |    0
 .../trianggrid15.testcase                          |    0
 .../trianggrid16.testcase                          |    0
 .../trianggrid17.testcase                          |    0
 .../trianggrid18.testcase                          |    0
 .../trianggrid19.testcase                          |    0
 .../trianggrid2.testcase                           |    0
 test/sql_stmt_geos_tests/trianggrid20.testcase     |   10 +
 test/sql_stmt_geos_tests/trianggrid21.testcase     |    7 +
 test/sql_stmt_geos_tests/trianggrid22.testcase     |   10 +
 test/sql_stmt_geos_tests/trianggrid23.testcase     |    7 +
 .../trianggrid3.testcase                           |    0
 .../trianggrid4.testcase                           |    0
 .../trianggrid5.testcase                           |    0
 .../trianggrid6.testcase                           |    0
 .../trianggrid7.testcase                           |    0
 .../trianggrid8.testcase                           |    0
 .../trianggrid9.testcase                           |    0
 .../unaryunion1.testcase                           |    0
 .../unaryunion2.testcase                           |    0
 .../unaryunion3.testcase                           |    0
 .../unaryunion4.testcase                           |    0
 .../unaryunion5.testcase                           |    0
 .../unaryunion6.testcase                           |    0
 .../unaryunion7.testcase                           |    0
 .../unaryunion8.testcase                           |    0
 test/sql_stmt_geosadvanced_tests/Makefile.am       |  384 +-
 test/sql_stmt_geosadvanced_tests/Makefile.in       |  485 +-
 .../concave_hull1.testcase                         |    0
 .../concave_hull10.testcase                        |    0
 .../concave_hull11.testcase                        |    0
 .../concave_hull12.testcase                        |    0
 .../concave_hull13.testcase                        |    0
 .../concave_hull14.testcase                        |    0
 .../concave_hull15.testcase                        |    0
 .../concave_hull16.testcase                        |    0
 .../concave_hull17.testcase                        |    0
 .../concave_hull18.testcase                        |    0
 .../concave_hull19.testcase                        |    0
 .../concave_hull2.testcase                         |    0
 .../concave_hull3.testcase                         |    0
 .../concave_hull4.testcase                         |    0
 .../concave_hull5.testcase                         |    0
 .../concave_hull6.testcase                         |    0
 .../concave_hull7.testcase                         |    0
 .../concave_hull8.testcase                         |    0
 .../concave_hull9.testcase                         |    0
 .../createtopo1.testcase                           |    7 -
 .../createtopo12.testcase                          |    7 -
 .../createtopo13.testcase                          |    7 -
 .../createtopo14.testcase                          |    7 -
 .../createtopo15.testcase                          |    7 -
 .../createtopo2.testcase                           |    7 -
 .../createtopo3.testcase                           |    7 -
 .../createtopo4.testcase                           |    7 -
 .../createtopo5.testcase                           |    7 -
 .../createtopo6.testcase                           |    7 -
 .../delaunay1.testcase                             |    0
 .../delaunay10.testcase                            |    0
 .../delaunay11.testcase                            |    0
 .../delaunay12.testcase                            |    0
 .../delaunay13.testcase                            |    0
 .../delaunay14.testcase                            |    0
 .../delaunay15.testcase                            |    0
 .../delaunay16.testcase                            |    0
 .../delaunay17.testcase                            |    0
 .../delaunay18.testcase                            |    0
 .../delaunay19.testcase                            |    0
 .../delaunay2.testcase                             |    0
 .../delaunay3.testcase                             |    0
 .../delaunay4.testcase                             |    0
 .../delaunay5.testcase                             |    0
 .../delaunay6.testcase                             |    0
 .../delaunay7.testcase                             |    0
 .../delaunay8.testcase                             |    0
 .../delaunay9.testcase                             |    0
 .../sql_stmt_geosadvanced_tests/hexgrid20.testcase |    7 -
 .../sql_stmt_geosadvanced_tests/hexgrid21.testcase |   10 -
 .../sql_stmt_geosadvanced_tests/hexgrid22.testcase |    7 -
 .../sql_stmt_geosadvanced_tests/hexgrid23.testcase |    7 -
 .../trianggrid20.testcase                          |   10 -
 .../trianggrid21.testcase                          |    7 -
 .../trianggrid22.testcase                          |   10 -
 .../trianggrid23.testcase                          |    7 -
 .../voronoj1.testcase                              |    0
 .../voronoj10.testcase                             |    0
 .../voronoj11.testcase                             |    0
 .../voronoj12.testcase                             |    0
 .../voronoj13.testcase                             |    0
 .../voronoj14.testcase                             |    0
 .../voronoj15.testcase                             |    0
 .../voronoj16.testcase                             |    0
 .../voronoj17.testcase                             |    0
 .../voronoj18.testcase                             |    0
 .../voronoj19.testcase                             |    0
 .../voronoj2.testcase                              |    0
 .../voronoj20.testcase                             |    0
 .../voronoj3.testcase                              |    0
 .../voronoj4.testcase                              |    0
 .../voronoj5.testcase                              |    0
 .../voronoj6.testcase                              |    0
 .../voronoj8.testcase                              |    0
 .../voronoj9.testcase                              |    0
 test/sql_stmt_geostrunk_tests/Makefile.am          |   58 -
 test/sql_stmt_geostrunk_tests/Makefile.in          |  453 --
 test/sql_stmt_libxml2_tests/Makefile.am            |   39 +-
 test/sql_stmt_libxml2_tests/Makefile.in            |  140 +-
 .../sql_stmt_libxml2_tests/createisometa5.testcase |    2 +-
 .../sql_stmt_libxml2_tests/createisometa6.testcase |    2 +-
 .../sql_stmt_libxml2_tests/createstyling5.testcase |    2 +-
 .../sql_stmt_libxml2_tests/createstyling6.testcase |    2 +-
 .../registerGraphic22.testcase                     |    2 +-
 .../registerGroup10.testcase                       |    8 -
 .../registerGroup11.testcase                       |    8 -
 .../registerGroup12.testcase                       |    8 -
 .../registerGroup13.testcase                       |    8 -
 .../registerGroup14.testcase                       |    4 +-
 .../registerGroup15.testcase                       |    4 +-
 .../registerGroup16.testcase                       |    6 +-
 .../registerGroup17.testcase                       |    4 +-
 .../registerGroup18.testcase                       |    4 +-
 .../registerGroup19.testcase                       |    8 -
 .../registerGroup20.testcase                       |    8 -
 .../registerGroup21.testcase                       |    8 -
 .../registerGroup22.testcase                       |    8 -
 .../registerGroup23.testcase                       |    8 -
 .../registerGroup25.testcase                       |    4 +-
 .../registerGroup26.testcase                       |    4 +-
 .../registerGroup27.testcase                       |    4 +-
 .../registerGroup28.testcase                       |    4 +-
 .../registerGroup29.testcase                       |    4 +-
 .../sql_stmt_libxml2_tests/registerGroup9.testcase |    8 -
 .../registerGroupStyle1.testcase                   |    8 +
 .../registerGroupStyle10.testcase                  |    8 +
 .../registerGroupStyle11.testcase                  |    8 +
 .../registerGroupStyle12.testcase                  |    8 +
 .../registerGroupStyle13.testcase                  |    8 +
 .../registerGroupStyle14.testcase                  |    8 +
 .../registerGroupStyle15.testcase                  |    8 +
 .../registerGroupStyle16.testcase                  |    8 +
 .../registerGroupStyle17.testcase                  |    8 +
 .../registerGroupStyle2.testcase                   |    8 +
 .../registerGroupStyle3.testcase                   |    8 +
 .../registerGroupStyle4.testcase                   |    8 +
 .../registerGroupStyle5.testcase                   |    8 +
 .../registerGroupStyle6.testcase                   |    8 +
 .../registerGroupStyle7.testcase                   |    8 +
 .../registerGroupStyle8.testcase                   |    8 +
 .../registerGroupStyle9.testcase                   |    8 +
 .../xmlblobgetname1.testcase                       |    8 +
 .../xmlblobgetname2.testcase                       |    8 +
 .../xmlblobgetname3.testcase                       |    8 +
 .../xmlblobgetname4.testcase                       |    8 +
 .../xmlblobgetname5.testcase                       |    8 +
 .../xmlblobgetname6.testcase                       |    8 +
 .../xmlblobgetname7.testcase                       |    8 +
 .../xmlblobgetname8.testcase                       |    8 +
 test/sql_stmt_libxml2_tests/xmlcompress6.testcase  |    2 +-
 test/sql_stmt_libxml2_tests/xmlcompress7.testcase  |    2 +-
 test/sql_stmt_libxml2_tests/xmlcompress8.testcase  |    8 +
 test/sql_stmt_libxml2_tests/xmltoblob11.testcase   |    4 +-
 test/sql_stmt_libxml2_tests/xmltoblob12.testcase   |    2 +-
 test/sql_stmt_libxml2_tests/xmltoblob18.testcase   |    2 +-
 test/sql_stmt_libxml2_tests/xmltoblob5.testcase    |    2 +-
 .../sql_stmt_libxml2_tests/xmluncompress6.testcase |    4 +-
 .../sql_stmt_libxml2_tests/xmluncompress7.testcase |    2 +-
 .../sql_stmt_libxml2_tests/xmluncompress8.testcase |    7 +
 test/sql_stmt_lwgeom_tests/Makefile.am             |   21 +-
 test/sql_stmt_lwgeom_tests/Makefile.in             |  121 +-
 test/sql_stmt_lwgeom_tests/st_node1.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node2.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node3.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node4.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node5.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node6.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node7.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node8.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_node9.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self1.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self2.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self3.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self4.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self5.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self6.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self7.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self8.testcase       |    7 +
 test/sql_stmt_lwgeom_tests/st_self9.testcase       |    7 +
 test/sql_stmt_mathsql_tests/Makefile.am            |    8 -
 test/sql_stmt_mathsql_tests/Makefile.in            |  109 +-
 test/sql_stmt_mathsql_tests/round-29.testcase      |    7 -
 test/sql_stmt_mathsql_tests/round-31.testcase      |    7 -
 test/sql_stmt_mathsql_tests/round-text.testcase    |    7 -
 test/sql_stmt_mathsql_tests/round0.testcase        |    7 -
 test/sql_stmt_mathsql_tests/round29.testcase       |    7 -
 test/sql_stmt_mathsql_tests/round3.testcase        |    7 -
 test/sql_stmt_mathsql_tests/round30.testcase       |    7 -
 test/sql_stmt_mathsql_tests/round31.testcase       |    7 -
 test/sql_stmt_proj_tests/Makefile.in               |  101 +-
 test/sql_stmt_proj_tests/output10.testcase         |    2 +-
 test/sql_stmt_proj_tests/output11.testcase         |    2 +-
 test/sql_stmt_proj_tests/output12.testcase         |    2 +-
 test/sql_stmt_proj_tests/output13.testcase         |    2 +-
 test/sql_stmt_proj_tests/output14.testcase         |    2 +-
 test/sql_stmt_proj_tests/output15.testcase         |    2 +-
 test/sql_stmt_proj_tests/output16.testcase         |    2 +-
 test/sql_stmt_proj_tests/output17.testcase         |    2 +-
 test/sql_stmt_proj_tests/output18.testcase         |    2 +-
 test/sql_stmt_proj_tests/output19.testcase         |    2 +-
 test/sql_stmt_proj_tests/output20.testcase         |    2 +-
 test/sql_stmt_proj_tests/output21.testcase         |    2 +-
 test/sql_stmt_proj_tests/output22.testcase         |    2 +-
 test/sql_stmt_proj_tests/output23.testcase         |    2 +-
 test/sql_stmt_proj_tests/output24.testcase         |    2 +-
 test/sql_stmt_proj_tests/output25.testcase         |    2 +-
 test/sql_stmt_proj_tests/output26.testcase         |    2 +-
 test/sql_stmt_proj_tests/output27.testcase         |    2 +-
 test/sql_stmt_proj_tests/output28.testcase         |    2 +-
 test/sql_stmt_proj_tests/output29.testcase         |    2 +-
 test/sql_stmt_proj_tests/output30.testcase         |    2 +-
 test/sql_stmt_proj_tests/output31.testcase         |    2 +-
 test/sql_stmt_proj_tests/output32.testcase         |    2 +-
 test/sql_stmt_proj_tests/output33.testcase         |    2 +-
 test/sql_stmt_proj_tests/output34.testcase         |    2 +-
 test/sql_stmt_proj_tests/output35.testcase         |    2 +-
 test/sql_stmt_proj_tests/output36.testcase         |    2 +-
 test/sql_stmt_proj_tests/output37.testcase         |    2 +-
 test/sql_stmt_security_tests/Makefile.in           |  101 +-
 test/sql_stmt_tests/Makefile.am                    |  134 +-
 test/sql_stmt_tests/Makefile.in                    |  235 +-
 test/sql_stmt_tests/asewkb1.testcase               |    2 +-
 test/sql_stmt_tests/asewkb10.testcase              |    3 +-
 test/sql_stmt_tests/asewkb11.testcase              |    3 +-
 test/sql_stmt_tests/asewkb12.testcase              |    3 +-
 test/sql_stmt_tests/asewkb13.testcase              |    3 +-
 test/sql_stmt_tests/asewkb14.testcase              |    3 +-
 test/sql_stmt_tests/asewkb15.testcase              |    3 +-
 test/sql_stmt_tests/asewkb16.testcase              |    3 +-
 test/sql_stmt_tests/asewkb17.testcase              |    3 +-
 test/sql_stmt_tests/asewkb2.testcase               |    4 +-
 test/sql_stmt_tests/asewkb3.testcase               |    3 +-
 test/sql_stmt_tests/asewkb4.testcase               |    3 +-
 test/sql_stmt_tests/asewkb6.testcase               |    3 +-
 test/sql_stmt_tests/asewkb8.testcase               |    3 +-
 test/sql_stmt_tests/asewkb9.testcase               |    3 +-
 test/sql_stmt_tests/createrastercoverages.testcase |    2 +-
 test/sql_stmt_tests/fromdms1.testcase              |   10 +
 test/sql_stmt_tests/fromdms2.testcase              |   10 +
 test/sql_stmt_tests/fromdms3.testcase              |   10 +
 test/sql_stmt_tests/fromdms4.testcase              |   10 +
 test/sql_stmt_tests/fromdms5.testcase              |   10 +
 test/sql_stmt_tests/fromdms6.testcase              |   10 +
 test/sql_stmt_tests/fromdms7.testcase              |   10 +
 test/sql_stmt_tests/fromdms8.testcase              |   11 +
 test/sql_stmt_tests/fromdms9.testcase              |    9 +
 test/sql_stmt_tests/fromgeojson22.testcase         |    6 +-
 test/sql_stmt_tests/fromgeojson23.testcase         |    6 +-
 test/sql_stmt_tests/fromgeojson24.testcase         |    6 +-
 test/sql_stmt_tests/fromgml11.testcase             |    6 +-
 test/sql_stmt_tests/fromgml12.testcase             |    6 +-
 test/sql_stmt_tests/fromgml17.testcase             |    6 +-
 test/sql_stmt_tests/fromgml18.testcase             |    6 +-
 test/sql_stmt_tests/fromgml23.testcase             |    6 +-
 test/sql_stmt_tests/fromgml24.testcase             |    6 +-
 test/sql_stmt_tests/fromgml25.testcase             |    6 +-
 test/sql_stmt_tests/fromgml26.testcase             |    6 +-
 test/sql_stmt_tests/fromgml44.testcase             |    6 +-
 test/sql_stmt_tests/fromgml46.testcase             |    6 +-
 test/sql_stmt_tests/fromgml48.testcase             |    6 +-
 test/sql_stmt_tests/fromgml52.testcase             |    6 +-
 test/sql_stmt_tests/fromgml53.testcase             |    6 +-
 test/sql_stmt_tests/fromgml54.testcase             |    6 +-
 test/sql_stmt_tests/fromgml55.testcase             |    6 +-
 test/sql_stmt_tests/fromgml60.testcase             |    8 +
 test/sql_stmt_tests/fromgml61.testcase             |    8 +
 test/sql_stmt_tests/geomfromtext6.testcase         |    6 +-
 test/sql_stmt_tests/getlayerextent1.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent10.testcase      |    7 +
 test/sql_stmt_tests/getlayerextent11.testcase      |    7 +
 test/sql_stmt_tests/getlayerextent12.testcase      |    7 +
 test/sql_stmt_tests/getlayerextent13.testcase      |    7 +
 test/sql_stmt_tests/getlayerextent14.testcase      |    7 +
 test/sql_stmt_tests/getlayerextent2.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent3.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent4.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent5.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent6.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent7.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent8.testcase       |    7 +
 test/sql_stmt_tests/getlayerextent9.testcase       |    7 +
 test/sql_stmt_tests/invalidatestats1.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats10.testcase     |    7 +
 test/sql_stmt_tests/invalidatestats2.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats3.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats4.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats5.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats6.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats7.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats8.testcase      |    7 +
 test/sql_stmt_tests/invalidatestats9.testcase      |    7 +
 test/sql_stmt_tests/ispopulatedcoverage1.testcase  |    8 +
 test/sql_stmt_tests/ispopulatedcoverage2.testcase  |    9 +
 test/sql_stmt_tests/isvalidnodata1.testcase        |    8 +
 test/sql_stmt_tests/isvalidnodata2.testcase        |    8 +
 test/sql_stmt_tests/isvalidnodata3.testcase        |    8 +
 test/sql_stmt_tests/isvalidnodata4.testcase        |    8 +
 test/sql_stmt_tests/isvalidpalette1.testcase       |    8 +
 test/sql_stmt_tests/isvalidpalette2.testcase       |    8 +
 test/sql_stmt_tests/isvalidpalette3.testcase       |    8 +
 test/sql_stmt_tests/isvalidrasterstats1.testcase   |    8 +
 test/sql_stmt_tests/isvalidrasterstats2.testcase   |    8 +
 test/sql_stmt_tests/isvalidrasterstats3.testcase   |    8 +
 test/sql_stmt_tests/isvalidrasterstats4.testcase   |    8 +
 test/sql_stmt_tests/isvalidrasterstats5.testcase   |    8 +
 test/sql_stmt_tests/isvalidrasterstats6.testcase   |    8 +
 test/sql_stmt_tests/isvalidrasterstats7.testcase   |    8 +
 test/sql_stmt_tests/isvalidrastertile1.testcase    |    8 +
 test/sql_stmt_tests/isvalidrastertile2.testcase    |    8 +
 test/sql_stmt_tests/isvalidrastertile3.testcase    |    8 +
 test/sql_stmt_tests/isvalidrastertile4.testcase    |    8 +
 test/sql_stmt_tests/isvalidrastertile5.testcase    |    8 +
 test/sql_stmt_tests/isvalidrastertile6.testcase    |    8 +
 test/sql_stmt_tests/lhr3.testcase                  |    6 +-
 test/sql_stmt_tests/lhr4.testcase                  |    6 +-
 test/sql_stmt_tests/lhr5.testcase                  |    6 +-
 test/sql_stmt_tests/lhr6.testcase                  |    6 +-
 test/sql_stmt_tests/makepolygon1.testcase          |    8 +
 test/sql_stmt_tests/makepolygon10.testcase         |    8 +
 test/sql_stmt_tests/makepolygon11.testcase         |    8 +
 test/sql_stmt_tests/makepolygon12.testcase         |    8 +
 test/sql_stmt_tests/makepolygon13.testcase         |    8 +
 test/sql_stmt_tests/makepolygon14.testcase         |    8 +
 test/sql_stmt_tests/makepolygon15.testcase         |    8 +
 test/sql_stmt_tests/makepolygon16.testcase         |    8 +
 test/sql_stmt_tests/makepolygon17.testcase         |    8 +
 test/sql_stmt_tests/makepolygon18.testcase         |    8 +
 test/sql_stmt_tests/makepolygon19.testcase         |    8 +
 test/sql_stmt_tests/makepolygon2.testcase          |    8 +
 test/sql_stmt_tests/makepolygon20.testcase         |    8 +
 test/sql_stmt_tests/makepolygon21.testcase         |    8 +
 test/sql_stmt_tests/makepolygon22.testcase         |    8 +
 test/sql_stmt_tests/makepolygon23.testcase         |    8 +
 test/sql_stmt_tests/makepolygon24.testcase         |    8 +
 test/sql_stmt_tests/makepolygon25.testcase         |    8 +
 test/sql_stmt_tests/makepolygon26.testcase         |    8 +
 test/sql_stmt_tests/makepolygon3.testcase          |    8 +
 test/sql_stmt_tests/makepolygon4.testcase          |    8 +
 test/sql_stmt_tests/makepolygon5.testcase          |    8 +
 test/sql_stmt_tests/makepolygon7.testcase          |    8 +
 test/sql_stmt_tests/makepolygon8.testcase          |    8 +
 test/sql_stmt_tests/makepolygon9.testcase          |    8 +
 test/sql_stmt_tests/mpointfromtext1.testcase       |    6 +-
 test/sql_stmt_tests/mpointfromtext2.testcase       |    6 +-
 test/sql_stmt_tests/reverse3.testcase              |    6 +-
 test/sql_stmt_tests/reverse4.testcase              |    6 +-
 test/sql_stmt_tests/reverse5.testcase              |    6 +-
 test/sql_stmt_tests/reverse6.testcase              |    6 +-
 test/sql_stmt_tests/sanitizeGeometry10.testcase    |    6 +-
 test/sql_stmt_tests/sanitizeGeometry11.testcase    |    6 +-
 test/sql_stmt_tests/sanitizeGeometry12.testcase    |    6 +-
 test/sql_stmt_tests/sanitizeGeometry6.testcase     |    6 +-
 test/sql_stmt_tests/sanitizeGeometry7.testcase     |    6 +-
 test/sql_stmt_tests/sanitizeGeometry8.testcase     |    6 +-
 test/sql_stmt_tests/sanitizeGeometry9.testcase     |    6 +-
 test/sql_stmt_tests/todms1.testcase                |    8 +
 test/sql_stmt_tests/todms10.testcase               |    8 +
 test/sql_stmt_tests/todms11.testcase               |    8 +
 test/sql_stmt_tests/todms12.testcase               |    8 +
 test/sql_stmt_tests/todms13.testcase               |    8 +
 test/sql_stmt_tests/todms2.testcase                |    8 +
 test/sql_stmt_tests/todms3.testcase                |    8 +
 test/sql_stmt_tests/todms4.testcase                |    8 +
 test/sql_stmt_tests/todms5.testcase                |    8 +
 test/sql_stmt_tests/todms6.testcase                |    8 +
 test/sql_stmt_tests/todms7.testcase                |    8 +
 test/sql_stmt_tests/todms8.testcase                |    8 +
 test/sql_stmt_tests/todms9.testcase                |    8 +
 test/sql_stmt_tests/updatestats1.testcase          |    7 +
 test/sql_stmt_tests/updatestats10.testcase         |    7 +
 test/sql_stmt_tests/updatestats2.testcase          |    7 +
 test/sql_stmt_tests/updatestats3.testcase          |    7 +
 test/sql_stmt_tests/updatestats4.testcase          |    7 +
 test/sql_stmt_tests/updatestats5.testcase          |    7 +
 test/sql_stmt_tests/updatestats6.testcase          |    7 +
 test/sql_stmt_tests/updatestats7.testcase          |    7 +
 test/sql_stmt_tests/updatestats8.testcase          |    7 +
 test/sql_stmt_tests/updatestats9.testcase          |    7 +
 test/sql_stmt_xmlsec_tests/Makefile.in             |  101 +-
 test/stazioni_se.xml                               |    3 +
 test/test-invalid.sqlite                           |  Bin 435200 -> 435200 bytes
 test/test_geos.sqlite                              |  Bin 0 -> 272384 bytes
 test/test_helpers.h                                |   75 +
 1105 files changed, 117782 insertions(+), 60465 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 5997417..eb4aee1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,11 +79,11 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Doxyfile.in \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/config.h.in $(srcdir)/spatialite.pc.in \
-	$(top_srcdir)/configure AUTHORS COPYING INSTALL config.guess \
-	config.sub depcomp install-sh ltmain.sh missing
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(srcdir)/Doxyfile.in \
+	$(srcdir)/spatialite.pc.in AUTHORS COPYING INSTALL README \
+	config.guess config.sub depcomp install-sh missing ltmain.sh
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -69,15 +97,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = Doxyfile spatialite.pc
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -114,9 +155,30 @@ am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
@@ -165,6 +227,7 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -395,14 +458,13 @@ uninstall-pkgconfigDATA:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -423,31 +485,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -463,12 +507,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -480,15 +519,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -497,18 +532,16 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
-
 cscope: cscope.files
 	test ! -s cscope.files \
 	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-
 clean-cscope:
 	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
 
-cscope.files: clean-cscope cscopelist-recursive cscopelist
-
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -641,9 +674,9 @@ distcheck: dist
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod u+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -814,27 +847,24 @@ ps-am:
 
 uninstall-am: uninstall-pkgconfigDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am am--refresh check check-am clean clean-cscope \
-	clean-generic clean-libtool cscope cscopelist \
-	cscopelist-recursive ctags ctags-recursive dist dist-all \
-	dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \
-	dist-zip distcheck distclean distclean-generic distclean-hdr \
-	distclean-libtool distclean-tags distcleancheck distdir \
-	distuninstallcheck dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkgconfigDATA install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs installdirs-am maintainer-clean \
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+	dist-xz dist-zip distcheck distclean distclean-generic \
+	distclean-hdr distclean-libtool distclean-tags distcleancheck \
+	distdir distuninstallcheck dvi dvi-am html html-am info \
+	info-am install install-am install-data install-data-am \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-pkgconfigDATA \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-pkgconfigDATA
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-pkgconfigDATA
 
 
 coverage-init:
diff --git a/aclocal.m4 b/aclocal.m4
index 5e48e24..f209970 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.12.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
@@ -219,24 +220,37 @@ m4_popdef([pkg_default])
 m4_popdef([pkg_description])
 ]) dnl PKG_NOARCH_INSTALLDIR
 
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.12'
+[am__api_version='1.13'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.12.2], [],
+m4_if([$1], [1.13.4], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -252,21 +266,19 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.12.2])dnl
+[AM_AUTOMAKE_VERSION([1.13.4])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
 # '$srcdir', '$srcdir/..', or '$srcdir/../..'.
@@ -314,14 +326,12 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
@@ -347,13 +357,12 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 17
 
 # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -539,19 +548,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -580,7 +588,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
@@ -614,27 +622,14 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 19
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -650,7 +645,7 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -680,8 +675,7 @@ AC_SUBST([CYGPATH_W])
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
 [AC_DIAGNOSE([obsolete],
-[$0: two- and three-arguments forms are deprecated.  For more info, see:
-http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
+             [$0: two- and three-arguments forms are deprecated.])
 m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
@@ -735,18 +729,15 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
 		  [_AM_DEPENDENCIES([OBJC])],
 		  [m4_define([AC_PROG_OBJC],
 			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-dnl Support for Objective C++ was only introduced in Autoconf 2.65,
-dnl but we still cater to Autoconf 2.62.
-m4_ifdef([AC_PROG_OBJCXX],
-[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
 		  [_AM_DEPENDENCIES([OBJCXX])],
 		  [m4_define([AC_PROG_OBJCXX],
-			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
@@ -780,14 +771,12 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -803,14 +792,12 @@ if test x"${install_sh}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -827,14 +814,12 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
-
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
@@ -862,18 +847,14 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 ]
 )
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -918,14 +899,12 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -933,11 +912,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -950,24 +928,51 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
   AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
+#  -*- Autoconf -*-
+# Obsolete and "removed" macros, that must however still report explicit
+# error messages when used, to smooth transition.
+#
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
+AC_CONFIG_HEADERS($@)])
+
+AC_DEFUN([AM_PROG_CC_STDC],
+[AC_PROG_CC
+am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should simply use the 'AC][_PROG_CC' macro instead.
+Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
+but upon 'ac_cv_prog_cc_stdc'.])])
+
+AC_DEFUN([AM_C_PROTOTYPES],
+         [AC_FATAL([automatic de-ANSI-fication support has been removed])])
+AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
+
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -993,14 +998,12 @@ AC_DEFUN([_AM_IF_OPTION],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
@@ -1076,13 +1079,71 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # AM_PROG_INSTALL_STRIP
 # ---------------------
@@ -1106,14 +1167,12 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1127,14 +1186,12 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
@@ -1148,76 +1205,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
diff --git a/config-msvc.h b/config-msvc.h
index b37f9a4..6ca4b7c 100644
--- a/config-msvc.h
+++ b/config-msvc.h
@@ -181,7 +181,7 @@
 #define PACKAGE_NAME "libspatialite"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libspatialite 4.1.1"
+#define PACKAGE_STRING "libspatialite 4.2.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libspatialite"
@@ -190,7 +190,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "4.1.1"
+#define PACKAGE_VERSION "4.2.0"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
diff --git a/config.h.in b/config.h.in
index cbcebbb..a37c737 100644
--- a/config.h.in
+++ b/config.h.in
@@ -199,6 +199,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* Should contain a text-string describing the intended target CPU */
+#undef TARGET_CPU
+
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #undef TIME_WITH_SYS_TIME
 
diff --git a/configure b/configure
index ddaaf32..a8ddf26 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libspatialite 4.1.1.
+# Generated by GNU Autoconf 2.69 for libspatialite 4.2.0-rc1.
 #
 # Report bugs to <a.furieri at lqt.it>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libspatialite'
 PACKAGE_TARNAME='libspatialite'
-PACKAGE_VERSION='4.1.1'
-PACKAGE_STRING='libspatialite 4.1.1'
+PACKAGE_VERSION='4.2.0-rc1'
+PACKAGE_STRING='libspatialite 4.2.0-rc1'
 PACKAGE_BUGREPORT='a.furieri at lqt.it'
 PACKAGE_URL=''
 
@@ -711,6 +711,10 @@ CC
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -775,6 +779,7 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+enable_silent_rules
 enable_maintainer_mode
 enable_dependency_tracking
 enable_shared
@@ -793,7 +798,6 @@ enable_epsg
 enable_geos
 with_geosconfig
 enable_geosadvanced
-enable_geostrunk
 enable_lwgeom
 enable_libxml2
 enable_geopackage
@@ -1358,7 +1362,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libspatialite 4.1.1 to adapt to many kinds of systems.
+\`configure' configures libspatialite 4.2.0-rc1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1428,7 +1432,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libspatialite 4.1.1:";;
+     short | recursive ) echo "Configuration of libspatialite 4.2.0-rc1:";;
    esac
   cat <<\_ACEOF
 
@@ -1436,6 +1440,8 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
   --enable-maintainer-mode
                           enable make rules and dependencies not useful (and
                           sometimes confusing) to the casual installer
@@ -1456,12 +1462,9 @@ Optional Features:
   --enable-epsg           enables full EPSG dataset support [default=yes]
   --enable-geos           enables GEOS inclusion [default=yes]
   --enable-geosadvanced   enables GEOS advanced features [default=yes]
-  --enable-geostrunk      enables GEOS-trunk experimental features
-                          [default=no]
   --enable-lwgeom         enables LWGEOM support [default=no]
-  --enable-libxml2        enables libxml2 inclusion [default=no]
-  --enable-geopackage     enables experimental GeoPackage raster function
-                          support [default=no]
+  --enable-libxml2        enables libxml2 inclusion [default=yes]
+  --enable-geopackage     enables GeoPackage support [default=yes]
   --enable-gcov           turn on code coverage analysis tools
   --enable-examples       enables building examples [default=yes]
 
@@ -1563,7 +1566,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libspatialite configure 4.1.1
+libspatialite configure 4.2.0-rc1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2107,7 +2110,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libspatialite $as_me 4.1.1, which was
+It was created by libspatialite $as_me 4.2.0-rc1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2463,7 +2466,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-am__api_version='1.12'
+am__api_version='1.13'
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -2676,8 +2679,8 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
@@ -2917,6 +2920,45 @@ else
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -2939,7 +2981,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libspatialite'
- VERSION='4.1.1'
+ VERSION='4.2.0-rc1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2979,6 +3021,10 @@ mkdir_p='$(MKDIR_P)'
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
 
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
 am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
@@ -2986,6 +3032,7 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
@@ -3042,6 +3089,7 @@ $as_echo "#define NDEBUG 1" >>confdefs.h
 
 
 
+
 # Checks for header files.
 DEPDIR="${am__leading_dot}deps"
 
@@ -17142,7 +17190,15 @@ else
 fi
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/virtualtext/Makefile src/wfs/Makefile test/Makefile test/sql_stmt_tests/Makefile test/sql_stmt_ge [...]
+ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/connection_cache/Makefile src/connection_cache/generator/Makefile src/virtualtext/Makefile src/wf [...]
+
+
+# exporting the TARGET_CPU string
+splite_cpu=`$CC -dumpmachine`
+cat >>confdefs.h <<_ACEOF
+#define TARGET_CPU "$splite_cpu"
+_ACEOF
+
 
 
 #-----------------------------------------------------------------------
@@ -17308,6 +17364,64 @@ else
   as_fn_error $? "'libproj' is required but it doesn't seem to be installed on this system." "$LINENO" 5
 fi
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pj_init_ctx" >&5
+$as_echo_n "checking for library containing pj_init_ctx... " >&6; }
+if ${ac_cv_search_pj_init_ctx+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pj_init_ctx ();
+int
+main ()
+{
+return pj_init_ctx ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' proj; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_pj_init_ctx=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_pj_init_ctx+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_pj_init_ctx+:} false; then :
+
+else
+  ac_cv_search_pj_init_ctx=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pj_init_ctx" >&5
+$as_echo "$ac_cv_search_pj_init_ctx" >&6; }
+ac_res=$ac_cv_search_pj_init_ctx
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else
+  as_fn_error $? "'libproj' is required but the version on this system does not support the required features (Version 4.8.0 or later is needed)." "$LINENO" 5
+fi
+
 else
   $as_echo "#define OMIT_PROJ 1" >>confdefs.h
 
@@ -17788,79 +17902,7 @@ done
   # Ensure we can link against libgeos_c
   LIBS_SAVE="$LIBS"
   LIBS="$GEOS_LDFLAGS"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSTopologyPreserveSimplify" >&5
-$as_echo_n "checking for library containing GEOSTopologyPreserveSimplify... " >&6; }
-if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char GEOSTopologyPreserveSimplify ();
-int
-main ()
-{
-return GEOSTopologyPreserveSimplify ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' geos_c; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_GEOSTopologyPreserveSimplify=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_GEOSTopologyPreserveSimplify+:} false; then :
-
-else
-  ac_cv_search_GEOSTopologyPreserveSimplify=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSTopologyPreserveSimplify" >&5
-$as_echo "$ac_cv_search_GEOSTopologyPreserveSimplify" >&6; }
-ac_res=$ac_cv_search_GEOSTopologyPreserveSimplify
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else
-  as_fn_error $? "could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5
-fi
-
-  LIBS="$LIBS_SAVE"
-  LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c'
-
-  #-----------------------------------------------------------------------
-  #   --enable-geosadvanced
-  #
-  # Check whether --enable-geosadvanced was given.
-if test "${enable_geosadvanced+set}" = set; then :
-  enableval=$enable_geosadvanced;
-else
-  enable_geosadvanced=yes
-fi
-
-  if test x"$enable_geosadvanced" != "xno"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSCoveredBy" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSCoveredBy" >&5
 $as_echo_n "checking for library containing GEOSCoveredBy... " >&6; }
 if ${ac_cv_search_GEOSCoveredBy+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -17915,24 +17957,23 @@ if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 else
-  as_fn_error $? "obsolete 'libgeos_c' (< v.3.3.0). please retry specifying: --disable-geosadvanced." "$LINENO" 5
+  as_fn_error $? "could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5
 fi
 
-	  $as_echo "#define GEOS_ADVANCED 1" >>confdefs.h
-
-  fi
+  LIBS="$LIBS_SAVE"
+  LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c"
 
   #-----------------------------------------------------------------------
-  #   --enable-geostrunk
+  #   --enable-geosadvanced
   #
-  # Check whether --enable-geostrunk was given.
-if test "${enable_geostrunk+set}" = set; then :
-  enableval=$enable_geostrunk;
+  # Check whether --enable-geosadvanced was given.
+if test "${enable_geosadvanced+set}" = set; then :
+  enableval=$enable_geosadvanced;
 else
-  enable_geostrunk=no
+  enable_geosadvanced=yes
 fi
 
-  if test x"$enable_geostrunk" != "xno"; then
+  if test x"$enable_geosadvanced" != "xno"; then
 	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSDelaunayTriangulation" >&5
 $as_echo_n "checking for library containing GEOSDelaunayTriangulation... " >&6; }
 if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then :
@@ -17991,11 +18032,10 @@ else
   as_fn_error $? "'libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system." "$LINENO" 5
 fi
 
-	  $as_echo "#define GEOS_TRUNK 1" >>confdefs.h
+	  $as_echo "#define GEOS_ADVANCED 1" >>confdefs.h
 
   fi
 
-
   #-----------------------------------------------------------------------
   #   --enable-lwgeom
   #
@@ -18111,7 +18151,7 @@ fi
 if test "${enable_libxml2+set}" = set; then :
   enableval=$enable_libxml2;
 else
-  enable_libxml2=no
+  enable_libxml2=yes
 fi
 
 if test x"$enable_libxml2" != "xno"; then
@@ -18319,7 +18359,7 @@ fi
 if test "${enable_geopackage+set}" = set; then :
   enableval=$enable_geopackage;
 else
-  enable_geopackage=no
+  enable_geopackage=yes
 fi
 
 if test x"$enable_geopackage" != "xno"; then
@@ -18493,7 +18533,6 @@ DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
-U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -18961,7 +19000,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libspatialite $as_me 4.1.1, which was
+This file was extended by libspatialite $as_me 4.2.0-rc1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19027,7 +19066,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libspatialite config.status 4.1.1
+libspatialite config.status 4.2.0-rc1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -19554,13 +19593,15 @@ do
     "src/md5/Makefile") CONFIG_FILES="$CONFIG_FILES src/md5/Makefile" ;;
     "src/srsinit/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/Makefile" ;;
     "src/srsinit/epsg_update/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/epsg_update/Makefile" ;;
+    "src/connection_cache/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection_cache/Makefile" ;;
+    "src/connection_cache/generator/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection_cache/generator/Makefile" ;;
     "src/virtualtext/Makefile") CONFIG_FILES="$CONFIG_FILES src/virtualtext/Makefile" ;;
     "src/wfs/Makefile") CONFIG_FILES="$CONFIG_FILES src/wfs/Makefile" ;;
     "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
     "test/sql_stmt_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_tests/Makefile" ;;
     "test/sql_stmt_geos_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_tests/Makefile" ;;
     "test/sql_stmt_geosadvanced_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geosadvanced_tests/Makefile" ;;
-    "test/sql_stmt_geostrunk_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geostrunk_tests/Makefile" ;;
+    "test/sql_stmt_geopackage_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geopackage_tests/Makefile" ;;
     "test/sql_stmt_proj_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_proj_tests/Makefile" ;;
     "test/sql_stmt_mathsql_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_mathsql_tests/Makefile" ;;
     "test/sql_stmt_lwgeom_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_lwgeom_tests/Makefile" ;;
@@ -20166,7 +20207,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -20217,7 +20258,7 @@ $as_echo X"$mf" |
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
diff --git a/configure.ac b/configure.ac
index 5150d5d..5db965f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.61)
-AC_INIT(libspatialite, 4.1.1, a.furieri at lqt.it)
+AC_INIT(libspatialite, 4.2.0-rc1, a.furieri at lqt.it)
 AC_LANG(C)
 AC_CONFIG_MACRO_DIR([m4])
 
@@ -53,6 +53,8 @@ AH_TEMPLATE([ENABLE_GEOPACKAGE],
             [Should be defined in order to enable GeoPackage support.])
 AH_TEMPLATE([POSTGIS_2_1],
             [Should be defined when linking liblwgeom from PostGIS 2.1 (or later).])
+AH_TEMPLATE([TARGET_CPU],
+            [Should contain a text-string describing the intended target CPU])
 
 # Checks for header files.
 AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])])
@@ -118,13 +120,15 @@ AC_CONFIG_FILES([Makefile \
 		src/md5/Makefile \
 		src/srsinit/Makefile \
 		src/srsinit/epsg_update/Makefile \
+		src/connection_cache/Makefile \
+		src/connection_cache/generator/Makefile \
 		src/virtualtext/Makefile \
 		src/wfs/Makefile \
 		test/Makefile \
 		test/sql_stmt_tests/Makefile \
 		test/sql_stmt_geos_tests/Makefile \
 		test/sql_stmt_geosadvanced_tests/Makefile \
-		test/sql_stmt_geostrunk_tests/Makefile \
+		test/sql_stmt_geopackage_tests/Makefile \
 		test/sql_stmt_proj_tests/Makefile \
 		test/sql_stmt_mathsql_tests/Makefile \
 		test/sql_stmt_lwgeom_tests/Makefile \
@@ -135,6 +139,11 @@ AC_CONFIG_FILES([Makefile \
 		Doxyfile \
 		spatialite.pc])
 
+# exporting the TARGET_CPU string
+splite_cpu=`$CC -dumpmachine`
+AC_DEFINE_UNQUOTED([TARGET_CPU], ["$splite_cpu"])
+
+
 #-----------------------------------------------------------------------
 #   --enable-mathsql
 #
@@ -168,6 +177,7 @@ AC_ARG_ENABLE(proj, [AS_HELP_STRING(
 if test x"$enable_proj" != "xno"; then
   AC_CHECK_HEADERS(proj_api.h,, [AC_MSG_ERROR([cannot find proj_api.h, bailing out])])
   AC_SEARCH_LIBS(pj_init_plus,proj,,AC_MSG_ERROR(['libproj' is required but it doesn't seem to be installed on this system.]),-lm)
+  AC_SEARCH_LIBS(pj_init_ctx,proj,,AC_MSG_ERROR(['libproj' is required but the version on this system does not support the required features (Version 4.8.0 or later is needed).]),-lm)
 else
   AC_DEFINE(OMIT_PROJ)
 fi
@@ -261,9 +271,9 @@ if test x"$enable_geos" != "xno"; then
   # Ensure we can link against libgeos_c
   LIBS_SAVE="$LIBS"
   LIBS="$GEOS_LDFLAGS"
-  AC_SEARCH_LIBS(GEOSTopologyPreserveSimplify,geos_c,,AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig]))
+  AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig]))
   LIBS="$LIBS_SAVE"
-  LIBS=$LIBS$GEOS_LDFLAGS' -lgeos_c'
+  LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c"
 
   #-----------------------------------------------------------------------
   #   --enable-geosadvanced
@@ -272,22 +282,10 @@ if test x"$enable_geos" != "xno"; then
 	  [--enable-geosadvanced], [enables GEOS advanced features [default=yes]])],
 	  [], [enable_geosadvanced=yes])
   if test x"$enable_geosadvanced" != "xno"; then
-	  AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([obsolete 'libgeos_c' (< v.3.3.0). please retry specifying: --disable-geosadvanced.]))
-	  AC_DEFINE(GEOS_ADVANCED)
-  fi
-
-  #-----------------------------------------------------------------------
-  #   --enable-geostrunk
-  #
-  AC_ARG_ENABLE(geostrunk, [AS_HELP_STRING(
-	  [--enable-geostrunk], [enables GEOS-trunk experimental features [default=no]])],
-	  [], [enable_geostrunk=no])
-  if test x"$enable_geostrunk" != "xno"; then
 	  AC_SEARCH_LIBS(GEOSDelaunayTriangulation,geos_c,,AC_MSG_ERROR(['libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system.]))
-	  AC_DEFINE(GEOS_TRUNK)
+	  AC_DEFINE(GEOS_ADVANCED)
   fi
 
-
   #-----------------------------------------------------------------------
   #   --enable-lwgeom
   #
@@ -317,8 +315,8 @@ fi
 #   --enable-libxml2
 #
 AC_ARG_ENABLE(libxml2, [AS_HELP_STRING(
-  [--enable-libxml2], [enables libxml2 inclusion [default=no]])],
-  [], [enable_libxml2=no])
+  [--enable-libxml2], [enables libxml2 inclusion [default=yes]])],
+  [], [enable_libxml2=yes])
 if test x"$enable_libxml2" != "xno"; then
   PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], , AC_MSG_ERROR(['libxml2' is required but it doesn't seem to be installed on this system.]))
   AC_SUBST(LIBXML2_CFLAGS)
@@ -330,8 +328,8 @@ fi
 #   --enable-geopackage
 #
 AC_ARG_ENABLE(geopackage, [AS_HELP_STRING(
-  [--enable-geopackage], [enables experimental GeoPackage raster function support [default=no]])],
-  [], [enable_geopackage=no])
+  [--enable-geopackage], [enables GeoPackage support [default=yes]])],
+  [], [enable_geopackage=yes])
 if test x"$enable_geopackage" != "xno"; then
   AC_DEFINE(ENABLE_GEOPACKAGE)
 fi
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 778661c..3cb7144 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,7 +81,7 @@ host_triplet = @host@
 noinst_PROGRAMS = demo1$(EXEEXT) demo2$(EXEEXT) demo3$(EXEEXT) \
 	demo4$(EXEEXT) demo5$(EXEEXT)
 subdir = examples
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -71,6 +99,10 @@ demo1_SOURCES = demo1.c
 demo1_OBJECTS = demo1.$(OBJEXT)
 demo1_LDADD = $(LDADD)
 demo1_DEPENDENCIES =
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
 demo2_SOURCES = demo2.c
 demo2_OBJECTS = demo2.$(OBJEXT)
 demo2_LDADD = $(LDADD)
@@ -87,19 +119,40 @@ demo5_SOURCES = demo5.c
 demo5_OBJECTS = demo5.$(OBJEXT)
 demo5_LDADD = $(LDADD)
 demo5_DEPENDENCIES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c
 DIST_SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c
 am__can_run_installinfo = \
@@ -107,11 +160,29 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -286,21 +357,26 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 demo1$(EXEEXT): $(demo1_OBJECTS) $(demo1_DEPENDENCIES) $(EXTRA_demo1_DEPENDENCIES) 
 	@rm -f demo1$(EXEEXT)
-	$(LINK) $(demo1_OBJECTS) $(demo1_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(demo1_OBJECTS) $(demo1_LDADD) $(LIBS)
+
 demo2$(EXEEXT): $(demo2_OBJECTS) $(demo2_DEPENDENCIES) $(EXTRA_demo2_DEPENDENCIES) 
 	@rm -f demo2$(EXEEXT)
-	$(LINK) $(demo2_OBJECTS) $(demo2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(demo2_OBJECTS) $(demo2_LDADD) $(LIBS)
+
 demo3$(EXEEXT): $(demo3_OBJECTS) $(demo3_DEPENDENCIES) $(EXTRA_demo3_DEPENDENCIES) 
 	@rm -f demo3$(EXEEXT)
-	$(LINK) $(demo3_OBJECTS) $(demo3_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(demo3_OBJECTS) $(demo3_LDADD) $(LIBS)
+
 demo4$(EXEEXT): $(demo4_OBJECTS) $(demo4_DEPENDENCIES) $(EXTRA_demo4_DEPENDENCIES) 
 	@rm -f demo4$(EXEEXT)
-	$(LINK) $(demo4_OBJECTS) $(demo4_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(demo4_OBJECTS) $(demo4_LDADD) $(LIBS)
+
 demo5$(EXEEXT): $(demo5_OBJECTS) $(demo5_DEPENDENCIES) $(EXTRA_demo5_DEPENDENCIES) 
 	@rm -f demo5$(EXEEXT)
-	$(LINK) $(demo5_OBJECTS) $(demo5_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(demo5_OBJECTS) $(demo5_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -315,25 +391,25 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/demo5.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -341,26 +417,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -372,15 +437,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -389,9 +450,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -545,18 +607,19 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/examples/demo1.c b/examples/demo1.c
index 111cbe9..7e731a2 100644
--- a/examples/demo1.c
+++ b/examples/demo1.c
@@ -362,6 +362,7 @@ for each column we'll then get:
 	  free (p_geotables[i]);
       }
     free (p_geotables);
+    spatialite_shutdown();
     return 0;
 
   abort:
@@ -380,5 +381,6 @@ for each column we'll then get:
 	    }
 	  free (p_geotables);
       }
+    spatialite_shutdown();
     return -1;
 }
diff --git a/examples/demo2.c b/examples/demo2.c
index 682bd78..ebc6e94 100644
--- a/examples/demo2.c
+++ b/examples/demo2.c
@@ -202,6 +202,8 @@ main (int argc, char *argv[])
     sqlite3 *handle;
     void *cache;
 
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
 
 /*
 
@@ -540,5 +542,6 @@ we have to destroy each object using temporary storage before exit
 	gaiaFreeGeomColl (geo_coll);
     sqlite3_close (handle);
     spatialite_cleanup_ex (cache);
+    spatialite_shutdown();
     return 0;
 }
diff --git a/examples/demo3.c b/examples/demo3.c
index c6a13ed..bc63f45 100644
--- a/examples/demo3.c
+++ b/examples/demo3.c
@@ -361,5 +361,6 @@ the idea is simply to simulate exactly the same conditions as above
   abort:
     sqlite3_close (handle);
     spatialite_cleanup_ex (cache);
+    spatialite_shutdown();
     return -1;
 }
diff --git a/examples/demo4.c b/examples/demo4.c
index 8ba75c2..110137f 100644
--- a/examples/demo4.c
+++ b/examples/demo4.c
@@ -358,5 +358,6 @@ the idea is simply to simulate exactly the same conditions as above
   abort:
     sqlite3_close (handle);
     spatialite_cleanup_ex (cache);
+    spatialite_shutdown();
     return -1;
 }
diff --git a/examples/demo5.c b/examples/demo5.c
index 32ee3e7..85839d5 100644
--- a/examples/demo5.c
+++ b/examples/demo5.c
@@ -180,7 +180,6 @@ do_help ()
     fprintf (stderr,
 	     "-g or --geometry  column_name  geometry column [optional]\n\n");
     fprintf (stderr, "you can specify one of the following modes:\n");
-    fprintf (stderr, "-f or --fast                    FAST mode [default]\n");
     fprintf (stderr, "-o or --optimistic              OPTIMISTIC mode\n");
     fprintf (stderr, "-p or --pessimistic             PESSIMISTIC mode\n");
 }
@@ -193,7 +192,7 @@ main (int argc, char *argv[])
     sqlite3 *handle;
     int i;
     int next_arg = ARG_NONE;
-    int mode = GAIA_VECTORS_LIST_FAST;
+    int mode = GAIA_VECTORS_LIST_OPTIMISTIC;
     int error = 0;
     const char *db_path = NULL;
     const char *table = NULL;
@@ -201,6 +200,9 @@ main (int argc, char *argv[])
     gaiaVectorLayersListPtr list;
     void *cache;
 
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
     for (i = 1; i < argc; i++)
       {
 	  /* parsing the invocation arguments */
@@ -252,13 +254,6 @@ main (int argc, char *argv[])
 		next_arg = ARG_NONE;
 		continue;
 	    }
-	  if (strcasecmp (argv[i], "-f") == 0
-	      || strcmp (argv[i], "--fast") == 0)
-	    {
-		mode = GAIA_VECTORS_LIST_FAST;
-		next_arg = ARG_NONE;
-		continue;
-	    }
 	  if (strcasecmp (argv[i], "-o") == 0
 	      || strcmp (argv[i], "--optimistic") == 0)
 	    {
@@ -326,5 +321,6 @@ trying to connect the test DB:
       }
     spatialite_cleanup_ex (cache);
     printf ("\n\nsample successfully terminated\n");
+    spatialite_shutdown();
     return 0;
 }
diff --git a/spatialite-sql-latest.html b/spatialite-sql-latest.html
index 5e4179e..fb028e7 100644
--- a/spatialite-sql-latest.html
+++ b/spatialite-sql-latest.html
@@ -2,7 +2,7 @@
 <html><head>
 
 	
-		<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+		<meta content="text/html; charset=UTF-8" http-equiv="content-type">
 		<title>SpatiaLite SQL functions reference list</title>
 		<style type="text/css">
 			h2 {color:navy; text-align:center;} 
@@ -11,13 +11,15 @@
 			i {color:navy;}
 		</style>
 	</head><body bgcolor="#fffff0">
-		<h2>SpatiaLite 4.1.0          SQL functions reference list</h2>
+		<h2>SpatiaLite 4.2.0          SQL functions reference list</h2>
 		<a href="https://www.gaia-gis.it/fossil/libspatialite">back</a>
 		<ul>
 			<li><a href="#version">SQL Version Info [and build options testing] functions</a></li>
 			<li><a href="#generic">Generic SQL utility functions</a></li>
 			<li><a href="#math">SQL math functions</a></li>
+			<li><a href="#error">SQL functions reporting GEOS / LWGEOM errors and warnings</a></li>
 			<li><a href="#length_cvt">SQL length/distance unit-conversion functions</a></li>
+			<li><a href="#dms_cvt">SQL conversion functions from DD/DMS notations (longitude/latitude)</a></li>
 			<li><a href="#blob">SQL utility functions for BLOB objects</a></li>
 			<li><a href="#p0">SQL utility functions [non-standard] for geometric objects</a></li>
 			<li><a href="#p1">SQL functions for constructing a geometric object given its Well-known Text Representation</a></li>
@@ -39,14 +41,16 @@
 			<li><a href="#p12">SQL functions that test spatial relationships</a></li>
 			<li><a href="#p13">SQL functions for distance relationships</a></li>
 			<li><a href="#p14">SQL functions that implement spatial operators</a></li>
-			<li><a href="#p14b">SQL functions that implement spatial operators [GEOS advanced features]</a></li>
-			<li><a href="#p14c">SQL functions that implement spatial operators [GEOS experimental features]</a></li>
+			<li><a href="#p14b">SQL functions that implement spatial operators [GEOS specific features]</a></li>
+			<li><a href="#p14c">SQL functions that implement spatial operators [GEOS advanced features]</a></li>
 			<li><a href="#p14d">SQL functions that implement spatial operators [LWGEOM features]</a></li>
 			<li><a href="#p15">SQL functions for coordinate transformations</a></li>
 			<li><a href="#p16">SQL functions for Spatial-MetaData and Spatial-Index handling</a></li>
-			<li><a href="#p16style">SQL functions supporting SLDE/SE Styled Layers</a></li>
+			<li><a href="#p16metacatalog">SQL functions supporting the MetaCatalog and related Statistics</a></li>
+			<li><a href="#p16style">SQL functions supporting SLD/SE Styled Layers</a></li>
 			<li><a href="#p16isometa">SQL functions supporting ISO Metadata</a></li>
 			<li><a href="#p16fdo">SQL functions implementing FDO/OGR compatibility</a></li>
+			<li><a href="#p16gpkg">SQL functions implementing OGC GeoPackage compatibility</a></li>
 			<li><a href="#p17">SQL functions for MbrCache-based queries</a></li>
 			<li><a href="#p18">SQL functions for R*Tree-based queries (Geometry Callbacks)</a></li>
 			<li><a href="#xmlBlob">SQL functions supporting XmlBLOB</a></li>
@@ -60,6 +64,9 @@
 			<tr><td><b>spatialite_version</b></td>
 				<td>spatialite_version( void ) : <i>String</i></td>
 				<td colspan="3">returns the current <b>SpatiaLite</b> version as a text string</td></tr>
+			<tr><td><b>spatialite_target_cpu</b></td>
+				<td>spatialite_target_cpu( void ) : <i>String</i></td>
+				<td colspan="3">returns the current <b>SpatiaLite</b> Target CPU as a text string</td></tr>
 			<tr><td><b>proj4_version</b></td>
 				<td>proj4_version( void ) : <i>String</i></td>
 				<td colspan="3">returns the current <b>PROJ.4</b> version as a text string<br>
@@ -109,6 +116,9 @@
 			<tr><td><b>HasFreeXL</b></td>
 				<td>HasFreeXL( void ) : <i>Boolean</i></td>
 				<td colspan="3">TRUE if the underlaying library was built enabling <b>FREEXL</b></td></tr>
+			<tr><td><b>HasGeoPackage</b></td>
+				<td>HasGeoPackage( void ) : <i>Boolean</i></td>
+				<td colspan="3">TRUE if the underlaying library was built enabling <b>GeoPackage</b> support (<b>GPKG</b>)</b>)</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0e0c0">
 				<h3><a name="generic">Generic SQL functions</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
@@ -211,9 +221,6 @@
 			<tr><td><b>Radians</b></td>
 				<td>Radians( x <i>Double precision</i> ) : <i>Double precision</i></td>
 				<td colspan="3">returns the argument <b>x</b>, converted from degrees to radians</td></tr>
-			<tr><td><b>Round</b></td>
-				<td>Round( x <i>Double precision</i> ) : <i>Double precision</i></td>
-				<td colspan="3">returns the integer value nearest to <b>x</b></td></tr>
 			<tr><td><b>Sign</b></td>
 				<td>Sign( x <i>Double precision</i> ) : <i>Double precision</i></td>
 				<td colspan="3">returns the sign of the argument as -1, 0, or 1, 
@@ -242,6 +249,44 @@
 				<td colspan="3">returns the sample variance of the input values (<i>square of the sample standard deviation</i>)<br>
 				<b><u>aggregate function</u></b></td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0e0c0">
+				<h3><a name="error">SQL functions reporting GEOS / LWGEOM errors and warnings</a></h3></td></tr>
+			<tr><th bgcolor="#d0d0d0">Function</th>
+				<th bgcolor="#d0d0d0">Syntax</th>
+				<th colspan="3" bgcolor="#d0d0d0">Summary</th></tr>
+			<tr><td><b>GEOS_GetLastWarningMsg</b></td>
+				<td>GEOS_GetLastWarningMsg( <i>void</i> ) : <i>String</i></td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
+				<td colspan="2">Will return the most recent warning message returned by GEOS (if any).<hr>
+				<b>NULL</b> will be returned if there is no pending GEOS warning.</td></tr>
+			<tr><td><b>GEOS_GetLastErrorMsg</b></td>
+				<td>GEOS_GetLastErrorMsg( <i>void</i> ) : <i>String</i></td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
+				<td colspan="2">Will return the most recent error message returned by GEOS (if any).<hr>
+				<b>NULL</b> will be returned if there is no pending GEOS error.</td></tr>
+			<tr><td><b>GEOS_GetLastAuxErrorMsg</b></td>
+				<td>GEOS_GetLastAuxErrorMsg( <i>void</i> ) : <i>String</i></td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
+				<td colspan="2">Will return the most recent error message (auxiliary) returned by GEOS (if any).<hr>
+				<b>NULL</b> will be returned if there is no pending GEOS (auxiliary) error.</td></tr>
+			<tr><td><b>GEOS_GetCriticalPointFromMsg</b></td>
+				<td>GEOS_GetCriticalPointFromMsg( <i>void</i> ) : <i>Point</i><hr>
+				GEOS_GetCriticalPointFromMsg( SRID <i>Integer</i> ) : <i>Point</i></td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
+				<td colspan="2">Will (possibly) return a Point Geometry extracted from the latest error / warning
+				message returned by GEOS.<hr>
+				<b>NULL</b> will be returned if there is no pending GEOS message, or if the current GEOS message
+				doesn't contain a critical Point.</td></tr>
+			<tr><td><b>LWGEOM_GetLastWarningMsg</b></td>
+				<td>LWGEOM_GetLastWarningMsg( <i>void</i> ) : <i>String</i></td>
+				<td align="center" bgcolor="#f0d0f0">LWGEOM</td>
+				<td colspan="2">Will return the most recent warning message returned by LWGEOM (if any).<hr>
+				<b>NULL</b> will be returned if there is no pending LWGEOM warning.</td></tr>
+			<tr><td><b>LWGEOM_GetLastErrorMsg</b></td>
+				<td>LWGEOM_GetLastErrorMsg( <i>void</i> ) : <i>String</i></td>
+				<td align="center" bgcolor="#f0d0f0">LWGEOM</td>
+				<td colspan="2">Will return the most recent error message returned by LWGEOM (if any).<hr>
+				<b>NULL</b> will be returned if there is no pending LWGEOM error.</td></tr>
+			<tr><td colspan="5" align="center" bgcolor="#f0e0c0">
 				<h3><a name="length_cvt">SQL length/distance unit-conversion functions</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
 				<th bgcolor="#d0d0d0">Syntax</th>
@@ -327,6 +372,20 @@
 					CvtFromIndCh( x <i>Double precision</i> ) : <i>Double precision</i></td>
 				<td colspan="3"><b>meters</b> / <b>indian chains</b></td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0e0c0">
+				<h3><a name="dms_cvt">SQL conversion functions from DD/DMS notations (longitude/latitude)</a></h3></td></tr>
+			<tr><th bgcolor="#d0d0d0">Function</th>
+				<th bgcolor="#d0d0d0">Syntax</th>
+				<th colspan="3" bgcolor="#d0d0d0">Summary</th></tr>
+			<tr><td><b>DD to DMS</b></td>
+				<td>LongLatToDMS( longitude <i>Double precision</i> , latitude <i>Double precision</i> ) : <i>String</i></td>
+				<td colspan="3">will return a DMS string (Degrees, Minutes and Seconds) starting from DD (Decimal Degrees) input coordinates<hr>
+                                <b>NULL</b> will be returned on invalid input.</tr>
+			<tr><td><b>DMS to DD</b></td>
+				<td>LongitudeFromDMS( dms_expression <i>Sting</i> ) : <i>Double precision</i><hr>
+                                    LatitudeFromDMS( dms_expression <i>Sting</i> ) : <i>Double precision</i></td>
+				<td colspan="3">will return the DD coordinates from within a DMS expression<hr>
+                                <b>NULL</b> will be returned on invalid input.</tr>
+			<tr><td colspan="5" align="center" bgcolor="#f0e0c0">
 				<h3><a name="blob">SQL utility functions for BLOB objects</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
 				<th bgcolor="#d0d0d0">Syntax</th>
@@ -392,7 +451,7 @@
 					Otherwise NULL will be returned.<br>
 					<u>Please note:</u> SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).<hr>
                                         <u>Please note well</u>: this SQL function open the doors to many potential security issues, and thus is always <i>disabled by default</i>.<br>
-                                        Explicitly setting the environmente variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.</td></tr>
+                                        Explicitly setting the environment variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.</td></tr>
 			<tr><td><b>BlobToFile</b></td>
 				<td>BlobToFile( payload <i>BLOB</i> , filepath <i>String</i> ) : <i>Integer</i></td>
 				<td colspan="3">If <i>payload</i> is of the BLOB-type, and if <i>filepath</i> corresponds to some valid pathname 
@@ -400,7 +459,7 @@
 					contain the <i>payload</i>.<br>
 					The return type is Integer, with a return value of 1 for success, 0 for failure.<hr>
                                         <u>Please note well</u>: this SQL function open the doors to many potential security issues, and thus is always <i>disabled by default</i>.<br>
-                                        Explicitly setting the environmente variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.</td></tr>
+                                        Explicitly setting the environment variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.</td></tr>
 			<tr><td><b>CountUnsafeTriggers</b></td>
 				<td>CountUnsafeTriggers( ) : <i>Integer</i></td>
 				<td colspan="3">This SQL function checks if the currently connected DB does contain any potentially malicious Trigger;
@@ -543,7 +602,7 @@
 				<td>SquareGrid( geom <i>ArealGeometry</i> , size <i>Double precision</i> [ , edges_only <i>Boolean</i> , [ origing <i>PointGeometry</i> ] ] ) : <i>Geometry</i><hr>
                                     ST_SquareGrid( geom <i>ArealGeometry</i> , size <i>Double precision</i> [ , edges_only <i>Boolean</i> , [ origing <i>PointGeometry</i> ] ] ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a grid of square cells (having the edge length of <i>size</i>) precisely covering the input Geometry.<br>
                                 The returned Geometry will usually be of the <b>MultiPolygon</b> type (a collection of Squares), but will be a <b>MultiLinestring</b> if the optional <b>edges_only</b> argument is set to <b>TRUE</b><br>
                                 If the optional <b>origin</b> argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.<hr>
@@ -552,7 +611,7 @@
 				<td>TriangularGrid( geom <i>ArealGeometry</i> , size <i>Double precision</i> [ , edges_only <i>Boolean</i> , [ origing <i>PointGeometry</i> ] ] ) : <i>Geometry</i><hr>
                                     ST_TriangularGrid( geom <i>ArealGeometry</i> , size <i>Double precision</i> [ , edges_only <i>Boolean</i> , [ origing <i>PointGeometry</i> ] ] ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a grid of triangular cells (having the edge length of <i>size</i>) precisely covering the input Geometry.<br>
                                 The returned Geometry will usually be of the <b>MultiPolygon</b> type (a collection of Squares), but will be a <b>MultiLinestring</b> if the optional <b>edges_only</b> argument is set to <b>TRUE</b><br>
                                 If the optional <b>origin</b> argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.<hr>
@@ -561,7 +620,7 @@
 				<td>HexagonalGrid( geom <i>ArealGeometry</i> , size <i>Double precision</i> [ , edges_only <i>Boolean</i> , [ origing <i>PointGeometry</i> ] ] ) : <i>Geometry</i><hr>
                                     ST_HexagonalGrid( geom <i>ArealGeometry</i> , size <i>Double precision</i> [ , edges_only <i>Boolean</i> , [ origing <i>PointGeometry</i> ] ] ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a grid of hexagonal cells (having the edge length of <i>size</i>) precisely covering the input Geometry.<br>
                                 The returned Geometry will usually be of the <b>MultiPolygon</b> type (a collection of Squares), but will be a <b>MultiLinestring</b> if the optional <b>edges_only</b> argument is set to <b>TRUE</b><br>
                                 If the optional <b>origin</b> argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.<hr>
@@ -632,8 +691,8 @@ a Geometry will be returned representing the MBR for the corresponding GARS area
 				<td align="center" bgcolor="#d0f0d0">base</td>
 				<td>return the y-coordinate for <i>geom</i> MBR's <u>uppermost side</u> as a double precision number.<hr>
                                 NULL will be returned if <i>geom</i> isn't a valid Geometry.</td></tr>
-			<tr><td><b>ST_MinZ</b></td>
-				<td>MinZ( geom <i>Geometry</i>) : <i>Double precision</i></td>
+			<tr><td><b>MinZ</b></td>
+				<td>ST_MinZ( geom <i>Geometry</i>) : <i>Double precision</i></td>
 				<td></td>
 				<td align="center" bgcolor="#d0f0d0">base</td>
 				<td>return the minimum Z-coordinate value for <i>geom</i> as a double precision number.<hr>
@@ -954,7 +1013,7 @@ a Geometry will be returned representing the MBR for the corresponding GARS area
 					</ul>
 					Will return <b>0</b> (i.e. <b>FALSE</b>) on failure, any other value (i.e. <b>TRUE</b>) on success.<hr>
                                         <u>Please note well</u>: this SQL function open the doors to many potential security issues, and thus is always <i>disabled by default</i>.<br>
-                                        Explicitly setting the environmente variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.</td></tr>	
+                                        Explicitly setting the environment variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.</td></tr>	
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
 				<h3><a name="p4">SQL functions on type Geometry</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
@@ -1280,7 +1339,7 @@ Starting since v.4.0.0 this function will simply consider Linestrings and MultiL
 					ST_Length( c <i>Curve</i> , use_ellipsoid <i>Boolean</i> ) : <i>Double precision</i>
 				</td>
 				<td align="center" bgcolor="#d0f0d0">X</td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return the length of c (measured in meters).<br>
 If the <b>use_ellipsoid</b> argument is set to <b>TRUE</b> the precise (but slower) length will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).<hr>
 This function only supports Long/Lat coordinates, and will return NULL for any planar CRS<hr>
@@ -1297,7 +1356,7 @@ Starting since v.4.0.0 this function will simply consider Polygons and MultiPoly
 					ST_Perimeter( s <i>Surface</i> , use_ellipsoid <i>Boolean</i> ) : <i>Double precision</i>
 				</td>
 				<td align="center" bgcolor="#d0f0d0">X</td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return the perimeter of s (measured in meters).<br>
 If the <b>use_ellipsoid</b> argument is set to <b>TRUE</b> the precise (but slower) perimeter will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).<hr>
 This function only supports Long/Lat coordinates, and will return NULL for any planar CRS<hr>
@@ -1466,7 +1525,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 					ST_NumGeometries( geom <i>GeomCollection</i> ) : <i>Integer</i></td>
 				<td align="center" bgcolor="#d0f0d0">X</td>
 				<td align="center" bgcolor="#d0f0d0">base</td>
-				<td>return the number of interiorRings</td></tr>
+				<td>return the number of individual Geometries</td></tr>
 			<tr><td><b>GeometryN</b></td>
 				<td>GeometryN( geom <i>GeomCollection</i> , n <i>Integer</i> ) : <i>Geometry</i><hr>
 					ST_GeometryN( geom <i>GeomCollection</i> , n <i>Integer</i> ) : <i>Geometry</i></td>
@@ -1620,7 +1679,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>Covers( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Integer</i><hr>
 					ST_Covers( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Integer</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, 
 					and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;<hr>
 					convenience predicate: TRUE if g1 completely covers g2</td></tr>
@@ -1628,7 +1687,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>CoveredBy( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Integer</i><hr>
 					ST_CoveredBy( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Integer</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, 
 					and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;<hr>
 					convenience predicate: TRUE if g1 is completely covered by g2</td></tr>
@@ -1656,7 +1715,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 			<tr><td>Distance( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> , use_ellipsoid <i>Boolean</i> ) : <i>Double precision</i><hr>
 					ST_Distance( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> , use_ellipsoid <i>Boolean</i> ) : <i>Double precision</i></td>
 				<td align="center" bgcolor="#d0f0d0">X</td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return the distance between geom1 and geom2 (measured in meters).<br>
 If the <b>use_ellipsoid</b> argument is set to <b>TRUE</b> the precise (but slower) distance will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).<hr>
 This function only supports Long/Lat coordinates, and will return NULL for any planar CRS</td></tr>
@@ -1729,19 +1788,19 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a geometric object that is the convex hull of geom</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
-				<h3><a name="p14b">SQL functions that implement spatial operators<br>[GEOS advanced features]</a></h3></td></tr>
+				<h3><a name="p14b">SQL functions that implement spatial operators<br>[GEOS specific features]</a></h3></td></tr>
 			<tr><td><b>HausdorffDistance</b></td>
 				<td>HausdorffDistance( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Double precision</i><hr>
 					ST_HausdorffDistance( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Double precision</i></td>
-				<td>X</td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td></td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return the Hausdorff distance between geom1 and geom2<br>
 <a href="http://en.wikipedia.org/wiki/Hausdorff_distance">learn more</a></td></tr>
 			<tr><td><b>OffestCurve</b></td>
 				<td>OffsetCurve( geom <i>Curve</i> , radius <i>Double precision</i> , left_or_right <i>Integer</i> ) : <i>Curve</i><hr>
 					ST_OffsetCurve( geom <i>Curve</i> , radius <i>Double precision</i> , left_or_right <i>Integer</i> ) : <i>Curve</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a geometric object representing the corresponding <i>left-</i> (or <i>right-sided</i>) offset curve<br>
 					NULL is returned whenever is not possible deriving an offset curve from the original geometry<br>
 					[a single not-closed LINESTRING is expected as input]</td></tr>
@@ -1749,7 +1808,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>SingleSidedBuffer( geom <i>Curve</i> , radius <i>Double precision</i> , left_or_right <i>Integer</i> ) : <i>Curve</i><hr>
 					ST_SingleSidedBuffer( geom <i>Curve</i> , radius <i>Double precision</i> , left_or_right <i>Integer</i> ) : <i>Curve</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a geometric object representing the corresponding <i>left-</i> (or <i>right-sided</i>) single-sided buffer<br>
 					NULL is returned whenever is not possible deriving a single-sided buffer from the original geometry<br>
 					[a single not-closed LINESTRING is expected as input]</td></tr>
@@ -1757,14 +1816,14 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>SharedPaths( geom1 <i>Geometry</i> , geom2 <i>Geomety</i> ) : <i>Geometry</i><hr>
 					ST_SharedPaths( geom1 <i>Geometry</i> , geom2 <i>Geomety</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a geometric object (of the MULTILINESTRING type) representing any <i>common lines</i> shared by both geometries<br>
 					NULL is returned is no common line exists</td></tr>
 			<tr><td><b>Line_Interpolate_Point</b></td>
 				<td>Line_Interpolate_Point( line <i>Curve</i> , fraction <i>Double precision</i> ) : <i>Point</i><hr>
 					ST_Line_Interpolate_Point( line <i>Curve</i> , fraction <i>Double precision</i> ) : <i>Point</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a point interpolated along a line.<br>
 					Second argument (between <b>0.0</b> and <b>1.0</b>) representing fraction of total length of linestring 
 					the point has to be located.<br>
@@ -1773,7 +1832,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>Line_Interpolate_Equidistant_Points( line <i>Curve</i> , distance <i>Double precision</i>) : <i>MultiPoint</i><hr>
 					ST_Line_Interpolate_Equidistant_Points( line <i>Curve</i> , distance <i>Double precision</i> ) : <i>MultiPoint</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a set of equidistant points interpolated along a line; the returned geometry
 					always corresponds to a MULTIPOINT supporting the M coordinate (representing the
                                         progressive distance for each interpolated Point).<br>
@@ -1783,7 +1842,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>Line_Locate_Point( line <i>Curve</i> , point <i>Point</i> ) : <i>Double precision</i><hr>
 					ST_Line_Locate_Point( line <i>Curve</i> , point <i>Point</i> ) : <i>Double precision</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>return a number (between <b>0.0</b> and <b>1.0</b>) representing the location of the closest 
 					point on LineString to the given Point, as a fraction of total 2d line length.<br>
 					NULL is returned for invalid arguments</td></tr>
@@ -1793,7 +1852,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 					ST_Line_Substring( line <i>Curve</i> , start_fraction <i>Double precision</i> , 
 					end_fraction <i>Double precision</i> ) : <i>Curve</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>Return a Linestring being a substring of the input one starting and ending at the given fractions of total 2d length.<br>
 					Second and third arguments are expected to be in the range between <b>0.0</b> and <b>1.0</b>.<br>
 					NULL is returned for invalid arguments</td></tr>
@@ -1801,21 +1860,21 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>ClosesetPoint( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Point</i><hr>
 					ST_ClosesetPoint( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Point</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>Returns the Point on geom1 that is closest to geom2.<br>
 					NULL is returned for invalid arguments (or if distance is ZERO)</td></tr>
 			<tr><td><b>ShortestLine</b></td>
 				<td>ShortestLine( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Curve</i><hr>
 					ST_ShortestLine( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Curve</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>Returns the shortest line between two geometries.<br>
 					NULL is returned for invalid arguments (or if distance is ZERO)</td></tr>
 			<tr><td><b>Snap</b></td>
 				<td>Snap( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> , tolerance <i>Double precision</i> ) : <i>Geometry</i><hr>
 					ST_Snap( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> , tolerance <i>Double precision</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>Returns a new Geometry representing a modified <b>geom1</b>, so to "snap" vertices and segments to <b>geom2</b> vertices;
 					a snap distance tolerance is used to control where snapping is performed.<br>
 					NULL is returned for invalid arguments</td></tr>
@@ -1823,14 +1882,14 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>Collect( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Geometry</i><hr>
 					ST_Collect( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging <b>geom1</b> and <b>geom2</b><hr>
 				NULL will be returned if any error is encountered</td></tr>
 			<tr><td><b>Collect</b></td>
 				<td>Collect( geom <i>Geometry</i> ) : <i>Geometry</i><hr>
 					ST_Collect( geom <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging input Geometries all together<br>
 				<b><u>aggregate function</u></b><hr>
 				NULL will be returned if any error is encountered</td></tr>
@@ -1838,7 +1897,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>LineMerge( geom <i>Geometry</i> ) : <i>Geometry</i><hr>
 					ST_LineMerge( geom <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>a Geometry (actually corresponding to a <i>LINESTRING</i> or <i>MULTILINESTRING</i>) will be returned.<br>
 				The input Geometry is expected to represent a <i>LINESTRING</i> or a <i>MULTILINESTRING</i>.<br> 
 				The input Geometry can be an arbitrary collection of sparse line fragments: this
@@ -1848,7 +1907,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>BuildArea( geom <i>Geometry</i> ) : <i>Geometry</i><hr>
 					ST_BuildArea( geom <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>a Geometry (actually corresponding to a <i>POLYGON</i> or <i>MULTIPOLYGON</i>) will be returned.<br>
 				The input Geometry is expected to represent a <i>LINESTRING</i> or a <i>MULTILINESTRING</i>.<br> 
 				The input Geometry can be an arbitrary collection of sparse Linestrings: this
@@ -1858,14 +1917,23 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>Polygonize( geom <i>Geometry</i> ) : <i>Geometry</i><hr>
 					ST_Polygonize( geom <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>Exactly the same as <b>ST_BuildArea</b>, but implemented as an <b><u>aggregate function</u></b>.<hr>
 				NULL will be returned if any error is encountered</td></tr>
+			<tr><td><b>MakePolygon</b></td>
+				<td>MakePolygon( geom1 <i>Geometry</i> [ , geom2 <i>Geometry</i> ] ) : <i>Geometry</i><hr>
+					ST_MakePolygon( geom1 <i>Geometry</i> [ , geom2 <i>Geometry</i> ] ) : <i>Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0d0">base</td>
+				<td>Kind of lightweight/simplified <b>ST_BuildArea</b>: the first input Geometry is always expected to represent a closed <i>LINESTRING</i> assumed to identify the output polygon's Exterior Ring.<br>
+                                The second input Geometry (if any) is expected to be a <i>LINESTRING</i> or <i>MULTILINESTRING</i> identifying any polygon's Interior Ring (and all them are expected to be correctly closed).<br>
+                                <b><u>Please note well</u></b>: this function doesn't perform any internal topology check, so it could possibly return an invalid polygon on invalid input.<hr>
+				NULL will be returned if any error is encountered</td></tr>
 			<tr><td><b>UnaryUnion</b></td>
 				<td>UnaryUnion( geom <i>Geometry</i> ) : <i>Geometry</i><hr>
 					ST_UnaryUnion( geom <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
+				<td align="center" bgcolor="#f0d0d0">GEOS</td>
 				<td>Exactely the same as <b><u>ST_Union</u></b>, but applied to a single Geometry.<br>
 					(<i>set union of elementary Geometries within a MULTI- or GEOMETRYCOLLECTION complex Geometry</i>)<hr>
 				NULL will be returned if any error is encountered</td></tr>
@@ -1901,7 +1969,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				NULL will be returned if any error is encountered</td></tr>
 			<tr><td><b>LinesCutAtNodes</b></td>
 				<td>LinesCutAtNodes( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Geometry</i><hr>
-					ST_LinesCutAtNodess( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Geometry</i></td>
+					ST_LinesCutAtNodes( geom1 <i>Geometry</i> , geom2 <i>Geometry</i> ) : <i>Geometry</i></td>
 				<td></td>
 				<td align="center" bgcolor="#d0f0d0">base</td>
 				<td>a Geometry (actually corresponding to a <i>LINESTRING</i> or <i>MULTILINESTRING</i>) 
@@ -1951,7 +2019,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				NULL will be returned if any error is encountered (or when no element corresponding to the given range of measures is found).<br>
                                 <u>Please note</u>: NULL will be returned if geom doesn't contain M-dimension, or if geom contains a Polygon, or if geom is a GeometryCollection.</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
-				<h3><a name="p14c">SQL functions that implement spatial operators<br>[GEOS trunk features]</a></h3></td></tr>
+				<h3><a name="p14c">SQL functions that implement spatial operators<br>[GEOS advanced features]</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
 				<th bgcolor="#d0d0d0">Syntax</th>
 				<th bgcolor="#d0d0d0">OGC<br>defined</th>
@@ -1961,7 +2029,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>DelaunayTriangulation( geom <i>Geometry</i> [ , edges_only <i>Boolean</i> [ , tolerance <i>Double precision</i> ] ] ) : <i>Geometry</i><hr>
 					ST_DelaunayTriangulation( geom <i>Geometry</i> [ , edges_only <i>Boolean</i> [ , tolerance <i>Double precision</i> ] ] ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f07070">GEOS-trunk</td>
+				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
 				<td>return a geometric object representing the Delaunay Triangulation corresponding to the input Geometry<hr>
 					The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.<br>
 					The returned Geometry will usually be of the <b>MultiPolygon</b> type (a collection of Triangles), but will be a <b>MultiLinestring</b> if the optional <b>edges_only</b> argument is set to <b>TRUE</b><br>
@@ -1971,7 +2039,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>VoronojDiagram( geom <i>Geometry</i> [ , edges_only <i>Boolean</i> [ , frame_extra_size <i>Double precision</i> [ , tolerance <i>Double precision</i> ] ] ] ) : <i>Geometry</i><hr>
 					ST_VoronojDiagram( geom <i>Geometry</i> [ , edges_only <i>Boolean</i>  [ , frame_extra_size <i>Double precision</i> [ , tolerance <i>Double precision</i> ] ] ] ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f07070">GEOS-trunk</td>
+				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
 				<td>return a geometric object representing the Voronoj Diagram corresponding to the input Geometry<hr>
 					The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.<br>
 					The returned Geometry will usually be of the <b>MultiPolygon</b> type, but will be a <b>MultiLinestring</b> if the optional <b>edges_only</b> argument is set to <b>TRUE</b><br>
@@ -1982,7 +2050,7 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td>ConcaveHull( geom <i>Geometry</i> [ , factor <i>Double precision</i> [ , allow_holes <i>Boolean</i> [ , tolerance <i>Double precision</i> ] ] ] ) : <i>Geometry</i><hr>
 					ST_ConcaveHull( geom <i>Geometry</i> [ , factor <i>Double precision</i> [ , allow_holes <i>Boolean</i> [ , tolerance <i>Double precision</i> ] ] ] ) : <i>Geometry</i></td>
 				<td></td>
-				<td align="center" bgcolor="#f07070">GEOS-trunk</td>
+				<td align="center" bgcolor="#f0d0b0">GEOS-advanced</td>
 				<td>return a geometric object representing the ConcaveHull corresponding to the input Geometry<hr>
 					The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.<br>
 					The returned Geometry will always be of the <b>Polygon</b> or <b>MultiPolygon</b> type.<br>
@@ -2113,6 +2181,20 @@ This function only supports Long/Lat coordinates, and will return NULL for any p
 				<td></td>
 				<td align="center" bgcolor="#f0d0f0">LWGEOM</td>
 				<td>return the max 3D-distance between geom1 and geom2 (Z coordinates will be considered)</td></tr>
+			<tr><td><b>ST_Node</b></td>
+				<td>ST_Node( geom <i>Geometry</i> ) : <i>Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#f0d0f0">LWGEOM</td>
+				<td>Fully nodes a set of linestrings using the least possible number of nodes while preserving all of the input ones.<br>
+                                <b>NULL</b> will be returned if the input Geometry isn't a set of linestrings or if any other error occurs.</td></tr>
+			<tr><td><b>SelfIntersections</b></td>
+				<td>SelfIntersections( geom <i>Geometry</i> ) : <i>Geometry</i><hr>
+                                	ST_SelfIntersections( geom <i>Geometry</i> ) : <i>Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#f0d0f0">LWGEOM</td>
+				<td>Returns a MultiPoint Geometry representing any self-intersection found within the input geometry
+					[expected to be of the Linestring or MultiLinestring type].<br>
+                                <b>NULL</b> will be returned for invalid arguments, or when no self-intersections were found.</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
 				<h3><a name="p15">SQL functions for coordinate transformations</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
@@ -2281,7 +2363,8 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
 				<td align="center" bgcolor="#d0f0d0">base</td>
 				<td>Builds an RTree <b>Spatial Index</b> on a <u>geometry column</u>, creating any required <u>trigger</u>
 required in order to enforce full data coherency between the main table and Spatial Index<hr>
-the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
+the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<hr>
+-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.</td></tr>
 			<tr><td><b>CreateMbrCache</b></td>
 				<td>CreateMbrCache( table <i>String</i> , column <i>String</i> ) : <i>Integer</i></td>
 				<td></td>
@@ -2295,6 +2378,13 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
 				<td align="center" bgcolor="#d0f0d0">base</td>
 				<td>Disables an RTree <b>Spatial Index</b> or <b>MbrCache</b>, removing any related <u>trigger</u><hr>
 the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
+		<tr><td><b>CheckShadowedRowid</b></td>
+				<td>CheckShadowedRowid( table <i>String</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0d0">base</td>
+				<td>Checks if some table has a physical column named "rowid" (caseless) shadowing the real ROWID.<hr>
+the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<br>
+NULL will be returned if the requested table doesn't exist.</td></tr>
 		<tr><td><b>CheckSpatialIndex</b></td>
 				<td>CheckSpatialIndex( void ) : <i>Integer</i><hr>
 					CheckSpatialIndex( table <i>String</i> , column <i>String</i> ) : <i>Integer</i></td>
@@ -2306,7 +2396,8 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
 					<li>otherwise only the RTree corresponding to <b>table</b> and <b>column</b> will be checked</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<br>
-NULL will be returned if the requested RTree doesn't exists</td></tr>
+NULL will be returned if the requested RTree doesn't exist<hr>
+-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.</td></tr>
 		<tr><td><b>RecoverSpatialIndex</b></td>
 				<td>RecoverSpatialIndex( [ no_check : <i>Integer</i> ] ) : <i>Integer</i><hr>
 					RecoverSpatialIndex( table <i>String</i> , column <i>String</i> [ , no_check : <i>Integer</i> ] ) : <i>Integer</i></td>
@@ -2324,7 +2415,22 @@ NULL will be returned if the requested RTree doesn't exists</td></tr>
 						</ul></li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<br>
-NULL will be returned if the requested RTree doesn't exists</td></tr>
+NULL will be returned if the requested RTree doesn't exist<hr>
+-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.</td></tr>
+		<tr><td><b>InvalidateLayerStatistics</b></td>
+				<td>InvalidateLayerStatistics( [ void ) : <i>Integer</i><hr>
+					InvalidateLayerStatistics( table <i>String</i> [ , column <i>String</i> ] ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0d0">base</td>
+				<td>Immediately and unconditionally invalidates the internal Layer Statistics<ul>
+					<li>if no arguments are passed, then internal statistics will be invalidated 
+						for any possible Geometry Column defined in the current DB</li>
+					<li>otherwise statistics will be updated only for Geometry Columns
+						corresponding to the given table</li>
+					</ul><hr>
+the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<hr>
+				<u>Please note</u>: will effectively work only on behalf DB-files supporting the more recent metatables layout introduced 
+				starting since version <b>4.x</b>; in any other case will always return an error and no action will happen.</td></tr>
 		<tr><td><b>UpdateLayerStatistics</b></td>
 				<td>UpdateLayerStatistics( [ void ) : <i>Integer</i><hr>
 					UpdateLayerStatistics( table <i>String</i> [ , column <i>String</i> ] ) : <i>Integer</i></td>
@@ -2370,6 +2476,37 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 				<td>Creates the <b>raster_coverages</b> table required by <b>RasterLite-2</b><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
+				<h3><a name="p16metacatalog">SQL functions supporting the MetaCatalog and related Statistics</a></h3></td></tr>
+			<tr><th bgcolor="#d0d0d0">Function</th>
+				<th bgcolor="#d0d0d0">Syntax</th>
+				<th bgcolor="#d0d0d0">OGC<br>defined</th>
+				<th bgcolor="#d0d0d0">required<br>module</th>
+				<th bgcolor="#d0d0d0">Summary</th></tr>
+			<tr><td><b>CreateMetaCatalogTables</b></td>
+				<td>CreateMetaCatalogTables( transaction <i>Integer</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0d0">base</td>
+				<td>Creates both <b>splite_metacatalog</b> and <b>splite_metacatalog_statistics</b> tables;
+                                <i>splite_metacatalog</i> will be populated so to describe every table/column currently defined within the DB.<br>
+                                if the first argument <b>transaction</b> is set to <b>TRUE</b> the whole operation will be
+                                handled as a single <i>Transaction</i> (faster): the default setting is <b>transaction=FALSE</b> (slower, but safer).<br>
+                                the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
+			<tr><td><b>UpdateMetaCatalogStatistics</b></td>
+				<td>UpdateMetaCatalogStatistics( transaction <i>Integer</i> , table_name <i>String</i> , column_name <i>String</i> ) : <i>Integer</i><hr>
+                                UpdateMetaCatalogStatistics( transaction <i>Integer</i> , master_table <i>String</i> , table_name <i>String</i> , column_name <i>String</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0d0">base</td>
+				<td>Updates the <b>splite_metacatalog_statistics</b> table by computing the statistic summary for the required table/column.<br>
+                                if the first argument <b>transaction</b> is set to <b>TRUE</b> the whole operation will be
+                                handled as a single <i>Transaction</i> (faster): the default setting is <b>transaction=FALSE</b> (slower, but safer).<hr>
+                                the first form (using <i>three</i> arguments) will simply attempt to update the statistic summary for a single 
+                                table/column as identified by their names: a matching row is expected to be found in <i>splite_metacatalog</i>.<hr>
+                                the second form (using <i>four</i> arguments) allows to update the statistic summary for many table/columns in a single pass.<br>
+                                in this case <i>master_table</i> should identify an existing table: <i>table_name</i> and <i>column_name</i> should identify two columns belonging to this tables.<br>
+                                the statistic summary for every table/columns fetched from the master table will then be updated:
+                                any mismatching table/column will be simply ignored.<hr>
+                                the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
+			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
 				<h3><a name="p16style">SQL functions supporting SLD/SE Styled Layers</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
 				<th bgcolor="#d0d0d0">Syntax</th>
@@ -2387,7 +2524,7 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					a <i>relaxed</i> version of the validating Triggers will be installed.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.<hr>
+				returned on invalid arguments.<hr>
 <i>Please note</i>: will implicitly invoke <b>CreateRasterCoverages()</b> if the <b>raster_coverages</b> table has not yet been created.</td></tr>
 		<tr><td><b>RegisterExternalGraphic</b></td>
 				<td>RegisterExternalGraphic( xlink_href <i>String</i> , resource <i>BLOB</i> ) : <i>Integer</i><hr>
@@ -2401,7 +2538,7 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					<li>the optional arguments <b>title</b>, <b>abstract</b> and <b>file_name</b> could be eventually specified for better human readability.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
 		<tr><td><b>RegisterVectorStyledLayer</b></td>
 				<td>RegisterVectorStyledLayer( f_table_name <i>String</i> , f_geometry_column <i>String</i> , style <i>BLOB</i> ) : <i>Integer</i><hr>
 					RegisterVectorStyledLayer( f_table_name <i>String</i> , f_geometry_column <i>String</i> , style_id <i>Integer</i>  , style <i>BLOB</i> ) : <i>Integer</i></td>
@@ -2417,7 +2554,7 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					If no <b>style_id</b> argument is specified then a new Styled Layer will be created, and the <b>style_id</b> value will be automatically set so to ensure univocity.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
 		<tr><td><b>RegisterRasterStyledLayer</b></td>
 				<td>RegisterRasterStyledLayer( coverage_name <i>String</i> , style <i>BLOB</i> ) : <i>Integer</i><hr>
 					RegisterRasterStyledLayer( coverage_name <i>String</i> , style_id <i>Integer</i>  , style <i>BLOB</i> ) : <i>Integer</i></td>
@@ -2433,24 +2570,24 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					If no <b>style_id</b> argument is specified then a new Styled Layer will be created, and the <b>style_id</b> value will be automatically set so to ensure univocity.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
 		<tr><td><b>RegisterStyledGroup</b></td>
-				<td>RegisterStyledGroup( group_name <i>String</i> , f_table_name <i>String</i> , f_geometry_column <i>String</i> , style_id <i>Integer</i> [ , paint_order <i>Integer</i> ] ) : <i>Integer</i><hr>
-					RegisterStyledGroup( group_name <i>String</i> , coverage_name <i>String</i> , style_id <i>Integer</i>  [ , paint_order <i>Integer</i> ] ) : <i>Integer</i></td>
+				<td>RegisterStyledGroup( group_name <i>String</i> , f_table_name <i>String</i> , f_geometry_column <i>String</i> [ , paint_order <i>Integer</i> ] ) : <i>Integer</i><hr>
+					RegisterStyledGroup( group_name <i>String</i> , coverage_name <i>String</i> [ , paint_order <i>Integer</i> ] ) : <i>Integer</i></td>
 				<td></td>
 				<td align="center" bgcolor="#99d099">libxml2</td>
 				<td>Inserts (or updates) a <b>Styled Group</b> definition.
 				<ul>
 					<li><b>group_name</b> must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.</li>
-					<li><b>f_table_name</b>, <b>f_geometry_column</b> and <b>style_id</b> must identify an existing Vectore Styled Layer.</li>
-					<li>or alternatively: <b>coverage_name</b> and <b>style_id</b> must identify an existing Raster Styled Layer.</li>
+					<li><b>f_table_name</b> and <b>f_geometry_column</b> must identify an existing Vector Layer.</li>
+					<li>or alternatively: <b>coverage_name</b> must identify an existing Raster Layer.</li>
 					<li>the optional <b>paint_order</b> argument could be used to explicitly reference an already defined group item (this implying <u>updating</u> the previous registration)<br>
 					If <b>paint_order</b> is not specified or if a <i>negative</i> value is passed 
 					then the next available order position will be automatically assigned (this always implying <u>inserting</u> a new registration).<br>
 					<u>Please note</u>: the painting order will follow the <b>Painter rule</b>, i.e. a lower paint-order value will always be painted before painting any higher value.
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
 		<tr><td><b>SetStyledGroupInfos</b></td>
 				<td>SetStyledGroupInfos( group_name <i>String</i> , title <i>String</i> , abstract <i>String</i> ) : <i>Integer</i></td>
 				<td></td>
@@ -2461,7 +2598,23 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					<li><b>title</b> and <b>abstract</b> represent the descriptive infos to be set.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
+		<tr><td><b>RegisterGroupStyle</b></td>
+				<td>RegisterGroupStyle( group_name <i>String</i> , style <i>BLOB</i> ) : <i>Integer</i><hr>
+					RegisterGroupStyle( group_name <i>String</i> , style_id <i>Integer</i>  , style <i>BLOB</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#99d099">libxml2</td>
+				<td>Inserts (or updates) a <b>Group Style</b> definition.
+				<ul>
+					<li><b>group_name</b> must identify an existing Styled Group.</li>
+					<li><b>style</b> is expected to be an XmlBLOB containing a valid SLD Style.<br>
+					If <b>CreatedStylingTables()</b> was invoked without specifying the <i>relaxed</i> option this XmlBLOB is expected to have succesfully passed a formal XML Schema Validation.</li>
+					<li>The same Styled Group could eventually support more than a single Style; in this case 
+					the optional argument <b>style_id</b> can be explicitly set in order to identify an individual Style.<br>
+					If no <b>style_id</b> argument is specified then a new Style will be created, and the <b>style_id</b> value will be automatically set so to ensure univocity.</li>
+				</ul><hr>
+the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
+				returned on invalid arguments.</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
 				<h3><a name="p16isometa">SQL functions supporting ISO Metadata</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
@@ -2480,7 +2633,7 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					a <i>relaxed</i> version of the validating Triggers will be installed.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
 		<tr><td><b>RegisterIsoMetadata</b></td>
 				<td>RegisterIsoMetadata( scope <i>String</i> , metadata <i>BLOB</i> ) : <i>Integer</i><hr>
 				RegisterIsoMetadata( scope <i>String</i> , metadata <i>BLOB</i> , id Integer ) : <i>Integer</i><hr>
@@ -2497,7 +2650,7 @@ the return type is Integer, with a return value of 1 for TRUE (success) or 0 for
 					<li>the first form (two arguments only) always performs an <i>INSERT</i>; if one the optional arguments <b>id</b> or <b>fileIdentifier</b> an <i>UPDATE</i> could be eventually performed if a corresponding metadata row is already defined.</li>
 				</ul><hr>
 the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
-				returned on invalid argumentes.</td></tr>
+				returned on invalid arguments.</td></tr>
 		<tr><td><b>GetIsoMetadataId</b></td>
 				<td>GetIsoMetadataId( fileIdentifier <i>String</i> ) : <i>Integer</i></td>
 				<td></td>
@@ -2579,6 +2732,201 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
 the column itself still continues to exist untouched as an ordinary column<hr>
 the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
 			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
+				<h3><a name="p16gpkg">SQL functions implementing OGC GeoPackage compatibility</a></h3></td></tr>
+			<tr><th bgcolor="#d0d0d0">Function</th>
+				<th bgcolor="#d0d0d0">Syntax</th>
+				<th bgcolor="#d0d0d0">OGC<br>defined</th>
+				<th bgcolor="#d0d0d0">required<br>module</th>
+				<th bgcolor="#d0d0d0">Summary</th></tr>
+			<tr><td><b>CheckGeoPackageMetaData</b></td>
+				<td>CheckGeoPackageMetaData( void ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0d0">base</td>
+				<td>This function will inspect the DB layout checking if it corresponds to the GPKG own style<hr>
+the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE</td></tr>
+			<tr><td><b>AutoGPKGStart</b></td>
+				<td>AutoGPKGStart( void ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will inspect the DB layout, then automatically creating/refreshing a <b>VirtualGPKG</b>
+				wrapper for each GPKG geometry table<hr>
+the return type is Integer [how many VirtualGPKG tables have been created]</td></tr>
+			<tr><td><b>AutoGPKGStop</b></td>
+				<td>AutoGPKGStop( void ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will inspect the DB layout, then automatically destroying any <b>VirtualGPKG</b>
+				wrapper found<hr>
+the return type is Integer [how many VirtualGPKG tables have been destroyed]</td></tr>
+			<tr><td><b>gpkgCreateBaseTables</b></td>
+				<td>gpkgCreateBaseTables( void ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will create base tables for an "empty" GeoPackage<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgInsertEpsgSRID</b></td>
+				<td>gpkgInsertEpsgSRID( srid <i>Integer</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will add a spatial reference system entry for the specified EPSG identifier;
+				it is an error to try to add the entry if it already exists<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgCreateTilesTable</b></td>
+				<td>gpkgCreateTilesTable( tile_table_name <i>String</i> , srid <i>Integer</i> , min_x <i>Double precision</i> ,
+				min_y <i>Double precision</i> , max_x <i>Double precision</i> , max_y <i>Double precision</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will create a new (empty) Tiles table and the triggers for that table;
+				It also adds in the matching entries into gpkg_contents and gpkg_tile_matrix_set.<br>
+				This function assumes usual tile conventions, including that the tiles are power-of-two-zoom.<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgCreateTilesZoomLevel</b></td>
+				<td>gpkgCreateTilesZoomLevel( tile_table_name <i>String</i>, zoom_level <i>Integer</i> , extent_width <i>Double precision</i> ,
+				extent_height <i>Double precision</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will add a zoom level for the specified table.<br>
+				This function assumes usual tile conventions, including that the tiles are power-of-two-zoom,
+				256x256 pixels, 1 tile at the top level (zoom level 0).<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgAddTileTriggers</b></td>
+				<td>gpkgAddTileTriggers( tile_table_name <i>String</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will add Geopackage tile table triggers for the named table.<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgGetNormalZoom</b></td>
+				<td>gpkgGetNormalZoom( tile_table_name <i>String</i> , inverted_zoom_level <i>Integer</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will return the normal integer zoom level for data stored in the specified table.<br>
+				Note that this function can also be used to convert from a normal zoom level
+				to an inverted zoom level - this conversion is symmetric.<hr>
+				Raises a SQL exception if inverted zoom level is outside the range of
+				tile_matrix_metadata table normal zoom levels defined for the tile_table</td></tr>
+			<tr><td><b>gpkgGetNormalRow</b></td>
+				<td>gpkgGetNormalRow( tile_table_name <i>String</i> , normal_zoom_level <i>Integer</i> , inverted_row_number <i>Integer</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will return the normal integer row number for the specified table, normal zoom level
+				and inverted row number.<br>
+				Note that this function can also be used to convert from a normal row number
+				to an inverted row number - this conversion is symmetric.<hr>
+				Raises a SQL exception if no zoom level row record in tile_matrix_metadata</td></tr>
+			<tr><td><b>gpkgGetImageType</b></td>
+				<td>gpkgGetImageType( image <i>Blob</i> ) : <i>String</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will return the image type (as a string) of the blob argument, or "unknown" if
+				the image type is not one of the PNG, JPEG, TIFF or WebP format types that are supported in GeoPackage.
+				The result will be one of:
+				<ul>
+				<li><b>"png"</b> for PNG</li>
+				<li><b>"jpeg"</b> for JPEG</li>
+				<li><b>"tiff"</b> for TIFF</li>
+				<li><b>"x-webp"</b> for WebP</li>
+				</ul>
+				These are the mime type for the image format (without the "image/" prefix).<hr>
+				This function raises exception on error (e.g. wrong argument type).</td></tr>
+			<tr><td><b>gpkgAddGeometryColumn</b></td>
+				<td>gpkgAddGeomtryColumn( table_name <i>Sting</i>, geometry_column_name <i>String</i> , geometry_type <i>String</i> , 
+					with_z <i>Integer</i> , with_m <i>Integer</i> , srs_id <i>Integer</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>Adds a geometry column to the specified table:
+				<ul>
+					<li><b>geometry_type</b> is a normal WKT name:
+						<ul>
+							<li><b>"GEOMETRY"</b></li>
+							<li><b>"POINT"</b></li>
+							<li><b>"LINESTRING"</b></li>
+							<li><b>"POLYGON"</b></li>
+							<li><b>"MULTIPOINT"</b></li>
+							<li><b>"MULTILINESTRING"</b></li>
+							<li><b>"MULTIPOLYGON"</b></li>
+							<li><b>"GEOMETRYCOLLECTION"</b></li>
+						</ul></li>
+					<li><b>with_z</b> is a flag (0 for no z values, 1 for mandatory z values, 2 for optional z values)</li>
+					<li><b>with_m</b> is a flag (0 for no m values, 1 for mandatory m values, 2 for optional m values)</li>
+				</ul><hr>
+				returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgAddGeometryTriggers</b></td>
+				<td>gpkgAddGeometryTriggers( table_name <i>String</i> , geometry_column_name <i>String</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will add Geopackage geometry table triggers for the named table.<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgAddSpatialIndex</b></td>
+				<td>gpkgAddSpatialIndex( table_name <i>String</i> , geometry_column_name <i>String</i> ) : <i>void</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will add Geopackage Spatial Index support for the named table.<hr>
+returns nothing on success, raises exception on error</td></tr>
+			<tr><td><b>gpkgMakePoint</b></td>
+				<td>gpkgMakePoint (x <i>Double precision</i> , y <i>Double precision</i> ) : <i>GPKG Blob Geometry</i><hr>
+				gpkgMakePoint (x <i>Double precision</i> , y <i>Double precision</i> , srid <i>Integer</i> ) : <i>GPKG Blob Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will create a GeoPackage geometry POINT.<hr>
+				Raises a SQL exception on error</td></tr>
+			<tr><td><b>gpkgMakePointZ</b></td>
+				<td>gpkgMakePointZ (x <i>Double precision</i> , y <i>Double precision</i> , z <i>Double precision</i> ) : <i>GPKG Blob Geometry</i><hr>
+				gpkgMakePointZ (x <i>Double precision</i> , y <i>Double precision</i> , z <i>Double precision</i> , srid <i>Integer</i> ) : <i>GPKG Blob Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will create a GeoPackage geometry POINT Z.<hr>
+				Raises a SQL exception on error</td></tr>
+			<tr><td><b>gpkgMakePointM</b></td>
+				<td>gpkgMakePointM (x <i>Double precision</i> , y <i>Double precision</i> , m <i>Double precision</i> ) : <i>GPKG Blob Geometry</i><hr>
+				gpkgMakePointM (x <i>Double precision</i> , y <i>Double precision</i> , m <i>Double precision</i> , srid <i>Integer</i> ) : <i>GPKG Blob Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will create a GeoPackage geometry POINT M.<hr>
+				Raises a SQL exception on error</td></tr>
+			<tr><td><b>gpkgMakePointZM</b></td>
+				<td>gpkgMakePointZM (x <i>Double precision</i> , y <i>Double precision</i> , z <i>Double precision</i> , m <i>Double precision</i> ) : <i>GPKG Blob Geometry</i><hr>
+				gpkgMakePointZM (x <i>Double precision</i> , y <i>Double precision</i> , z <i>Double precision</i> , m <i>Double precision</i> , srid <i>Integer</i> ) : <i>GPKG Blob Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will create a GeoPackage geometry POINT ZM.<hr>
+				Raises a SQL exception on error</td></tr>
+			<tr><td><b>IsValidGPB</b></td>
+				<td>IsValidGPB( geom <i>Blob</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will inspect a BLOB then checking if it really corresponds to a GPKG own Geometry<hr>
+the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE</td></tr>
+			<tr><td><b>AsGPB</b></td>
+				<td>AsGPB( geom <i>BLOB encoded geometry</i> ) : <i>GPKG Blob Geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will convert a SpatiaLite geometry blob into a GeoPackage format geometry blob.<hr>
+				Will return NULL if any error is encountered</td></tr>
+			<tr><td><b>GeomFromGPB</b></td>
+				<td>GeomFromGPB( geom <i>GPKG Blob Geometry</i> ) : <i>BLOB encoded geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will convert a GeoPackage format geometry blob into a SpatiaLite geometry blob.<hr>
+				Will return NULL if any error is encountered</td></tr>
+			<tr><td><b>CastAutomagic</b></td>
+				<td>CastAutomagic( geom <i>Blob</i> ) : <i>BLOB encoded geometry</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will indifferently accept on input:
+				<ul>
+					<li>a SpatiaLite own BLOB Geometry</li>
+					<li>a GPKG own BLOB Geometry</li>
+				</ul>
+				then returning a SpatiaLite own BLOB geometry.<hr>
+				Will return NULL if any error is encountered or on invalid / mismatching argument</td></tr>	
+			<tr><td><b>GPKG_IsAssignable</b></td>
+				<td>GPKG_IsAssignable( expected_type_name <i>String</i> , actual_type_name <i>String</i> ) : <i>Integer</i></td>
+				<td></td>
+				<td align="center" bgcolor="#d0f0ff">GeoPackage</td>
+				<td>This function will check if <b>expected_type</b> is the same or is a super-type of <b>actual_type</b>;
+				this function is required by the standard implementation of GPKG Geometry validation Triggers.<hr>
+the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE</td></tr>					
+			<tr><td colspan="5" align="center" bgcolor="#f0f0c0">
 				<h3><a name="p17">SQL functions for MbrCache-based queries</a></h3></td></tr>
 			<tr><th bgcolor="#d0d0d0">Function</th>
 				<th bgcolor="#d0d0d0">Syntax</th>
@@ -2653,6 +3001,11 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
 				the square circumscribed on the given circle (<b>x y</b> center, <b>radius)</b></td></tr>
                         <tr><td colspan="5" align="center" bgcolor="#f0f0c0">
 				<h3><a name="xmlBlob">SQL functions supporting XmlBLOB</a></h3></td></tr>
+			<tr><th bgcolor="#d0d0d0">Function</th>
+				<th bgcolor="#d0d0d0">Syntax</th>
+				<th bgcolor="#d0d0d0">OGC<br>defined</th>
+				<th bgcolor="#d0d0d0">required<br>module</th>
+				<th bgcolor="#d0d0d0">Summary</th></tr>
 			<tr><td><b>XB_Create</b></td>
 				<td>XB_Create(  xmlPayload <i>BLOB</i> ) : <i>XmlBLOB</i><hr>
 				XB_Create(  xmlPayload <i>BLOB</i> , compressed <i>Boolean</i> ) : <i>XmlBLOB</i><hr>
@@ -2878,7 +3231,7 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
 					Otherwise NULL will be returned.<br>
 					<u>Please note:</u> SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).<hr>
                                         <u>Please note well</u>: this SQL function open the doors to many potential security issues, and thus is always <i>disabled by default</i>.<br>
-                                        Explicitly setting the environmente variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.<br>
+                                        Explicitly setting the environment variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.<br>
 					Please see: <b>CountUnsafeTriggers()</b></td></tr>
 			<tr><td><b>XB_StoreXML</b></td>
 				<td>XB_StoreXML( XmlObject <i>XmlBLOB</i> , filepath <i>String</i> ) : <i>Integer</i><hr>
@@ -2893,7 +3246,7 @@ the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td
                                 XmlDocument to be returned as a single line. (default setting is <i>negative</i> indenting, i.e. not reformatting at all).<hr>
 					The return type is Integer, with a return value of 1 for success, 0 for failure and -1 for invalid arguments.<hr>
                                         <u>Please note well</u>: this SQL function open the doors to many potential security issues, and thus is always <i>disabled by default</i>.<br>
-                                        Explicitly setting the environmente variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.<br>
+                                        Explicitly setting the environment variable <b>SPATIALITE_SECURITY=relaxed</b> is absolutely required in order to effectively enable this function.<br>
 					Please see: <b>CountUnsafeTriggers()</b></td></tr>
 		</tbody></table>
 		<a href="https://www.gaia-gis.it/fossil/libspatialite">back</a>
diff --git a/src/Makefile.am b/src/Makefile.am
index 328b1e0..b1d70ed 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,16 +7,17 @@ SUBDIRS = headers \
 	spatialite \
 	shapefiles \
 	srsinit \
+	connection_cache \
 	virtualtext \
 	wfs \
 	dxf \
 	md5
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
-INCLUDES += -I$(top_srcdir)
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS += -I$(top_srcdir)
 
-lib_LTLIBRARIES = libspatialite.la
+lib_LTLIBRARIES = libspatialite.la mod_spatialite.la
 
 libspatialite_la_SOURCES = versioninfo/version.c
 
@@ -29,19 +30,52 @@ libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \
 	./dxf/libdxf.la \
 	./md5/libmd5.la \
 	./srsinit/libsrsinit.la \
+	./connection_cache/libconnection_cache.la \
 	./virtualtext/libvirtualtext.la \
 	./wfs/libwfs.la @LIBXML2_LIBS@
 
 if MINGW
-libspatialite_la_LDFLAGS = -version-info 4:1:0 -no-undefined
+libspatialite_la_LDFLAGS = -version-info 4:2:0 -no-undefined
 else 
 if ANDROID
-libspatialite_la_LDFLAGS = -version-info 6:0:1
+libspatialite_la_LDFLAGS = -version-info 6:0:2
 libspatialite_la_LIBADD += -ldl
 else
-libspatialite_la_LDFLAGS = -version-info 6:0:1
+libspatialite_la_LDFLAGS = -version-info 6:0:2
 libspatialite_la_LIBADD += -lpthread -ldl
 endif
 endif
 
+mod_spatialite_la_SOURCES = versioninfo/version.c
+
+mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la \
+	./gaiaexif/gaiaexif.la \
+	./gaiageo/gaiageo.la \
+	./geopackage/geopackage.la \
+	./spatialite/splite.la \
+	./shapefiles/shapefiles.la \
+	./dxf/dxf.la \
+	./md5/md5.la \
+	./srsinit/srsinit.la \
+	./connection_cache/connection_cache.la \
+	./virtualtext/virtualtext.la \
+	./wfs/wfs.la @LIBXML2_LIBS@
+
+mod_spatialite_la_CPPFLAGS = @CFLAGS@
+mod_spatialite_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+mod_spatialite_la_CPPFLAGS += -DLOADABLE_EXTENSION
+mod_spatialite_la_LIBTOOLFLAGS = --tag=disable-static
+
+if MINGW
+mod_spatialite_la_LDFLAGS = -module -avoid-version -no-undefined
+else 
+if ANDROID
+mod_spatialite_la_LDFLAGS = -module -version-info 6:0:2
+mod_spatialite_la_LIBADD += -ldl
+else
+mod_spatialite_la_LDFLAGS = -module -version-info 6:0:2
+mod_spatialite_la_LIBADD += -lpthread -ldl
+endif
+endif
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/Makefile.in b/src/Makefile.in
index e969604..ac27fcd 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,8 +80,10 @@ build_triplet = @build@
 host_triplet = @host@
 @ANDROID_TRUE@@MINGW_FALSE at am__append_1 = -ldl
 @ANDROID_FALSE@@MINGW_FALSE at am__append_2 = -lpthread -ldl
+ at ANDROID_TRUE@@MINGW_FALSE at am__append_3 = -ldl
+ at ANDROID_FALSE@@MINGW_FALSE at am__append_4 = -lpthread -ldl
 subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -100,35 +130,78 @@ libspatialite_la_DEPENDENCIES = ./gaiaaux/libgaiaaux.la \
 	./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \
 	./geopackage/libgeopackage.la ./spatialite/libsplite.la \
 	./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \
-	./srsinit/libsrsinit.la ./virtualtext/libvirtualtext.la \
-	./wfs/libwfs.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	./srsinit/libsrsinit.la \
+	./connection_cache/libconnection_cache.la \
+	./virtualtext/libvirtualtext.la ./wfs/libwfs.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libspatialite_la_OBJECTS = version.lo
 libspatialite_la_OBJECTS = $(am_libspatialite_la_OBJECTS)
-libspatialite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(libspatialite_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libspatialite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(libspatialite_la_LDFLAGS) $(LDFLAGS) \
+	-o $@
+mod_spatialite_la_DEPENDENCIES = ./gaiaaux/gaiaaux.la \
+	./gaiaexif/gaiaexif.la ./gaiageo/gaiageo.la \
+	./geopackage/geopackage.la ./spatialite/splite.la \
+	./shapefiles/shapefiles.la ./dxf/dxf.la ./md5/md5.la \
+	./srsinit/srsinit.la ./connection_cache/connection_cache.la \
+	./virtualtext/virtualtext.la ./wfs/wfs.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am_mod_spatialite_la_OBJECTS = mod_spatialite_la-version.lo
+mod_spatialite_la_OBJECTS = $(am_mod_spatialite_la_OBJECTS)
+mod_spatialite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(mod_spatialite_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libspatialite_la_SOURCES)
-DIST_SOURCES = $(libspatialite_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libspatialite_la_SOURCES) $(mod_spatialite_la_SOURCES)
+DIST_SOURCES = $(libspatialite_la_SOURCES) \
+	$(mod_spatialite_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -136,9 +209,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -170,6 +263,7 @@ am__relativize = \
   reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -304,23 +398,40 @@ SUBDIRS = headers \
 	spatialite \
 	shapefiles \
 	srsinit \
+	connection_cache \
 	virtualtext \
 	wfs \
 	dxf \
 	md5
 
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I$(top_srcdir)
-lib_LTLIBRARIES = libspatialite.la
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I$(top_srcdir)
+lib_LTLIBRARIES = libspatialite.la mod_spatialite.la
 libspatialite_la_SOURCES = versioninfo/version.c
 libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \
 	./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \
 	./geopackage/libgeopackage.la ./spatialite/libsplite.la \
 	./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \
-	./srsinit/libsrsinit.la ./virtualtext/libvirtualtext.la \
-	./wfs/libwfs.la @LIBXML2_LIBS@ $(am__append_1) $(am__append_2)
- at ANDROID_FALSE@@MINGW_FALSE at libspatialite_la_LDFLAGS = -version-info 6:0:1
- at ANDROID_TRUE@@MINGW_FALSE at libspatialite_la_LDFLAGS = -version-info 6:0:1
- at MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:1:0 -no-undefined
+	./srsinit/libsrsinit.la \
+	./connection_cache/libconnection_cache.la \
+	./virtualtext/libvirtualtext.la ./wfs/libwfs.la @LIBXML2_LIBS@ \
+	$(am__append_1) $(am__append_2)
+ at ANDROID_FALSE@@MINGW_FALSE at libspatialite_la_LDFLAGS = -version-info 6:0:2
+ at ANDROID_TRUE@@MINGW_FALSE at libspatialite_la_LDFLAGS = -version-info 6:0:2
+ at MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:2:0 -no-undefined
+mod_spatialite_la_SOURCES = versioninfo/version.c
+mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la ./gaiaexif/gaiaexif.la \
+	./gaiageo/gaiageo.la ./geopackage/geopackage.la \
+	./spatialite/splite.la ./shapefiles/shapefiles.la ./dxf/dxf.la \
+	./md5/md5.la ./srsinit/srsinit.la \
+	./connection_cache/connection_cache.la \
+	./virtualtext/virtualtext.la ./wfs/wfs.la @LIBXML2_LIBS@ \
+	$(am__append_3) $(am__append_4)
+mod_spatialite_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+mod_spatialite_la_LIBTOOLFLAGS = --tag=disable-static
+ at ANDROID_FALSE@@MINGW_FALSE at mod_spatialite_la_LDFLAGS = -module -version-info 6:0:2
+ at ANDROID_TRUE@@MINGW_FALSE at mod_spatialite_la_LDFLAGS = -module -version-info 6:0:2
+ at MINGW_TRUE@mod_spatialite_la_LDFLAGS = -module -avoid-version -no-undefined
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-recursive
 
@@ -356,6 +467,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -390,8 +502,12 @@ clean-libLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libspatialite.la: $(libspatialite_la_OBJECTS) $(libspatialite_la_DEPENDENCIES) $(EXTRA_libspatialite_la_DEPENDENCIES) 
-	$(libspatialite_la_LINK) -rpath $(libdir) $(libspatialite_la_OBJECTS) $(libspatialite_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(libspatialite_la_LINK) -rpath $(libdir) $(libspatialite_la_OBJECTS) $(libspatialite_la_LIBADD) $(LIBS)
+
+mod_spatialite.la: $(mod_spatialite_la_OBJECTS) $(mod_spatialite_la_DEPENDENCIES) $(EXTRA_mod_spatialite_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(mod_spatialite_la_LINK) -rpath $(libdir) $(mod_spatialite_la_OBJECTS) $(mod_spatialite_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -399,35 +515,43 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mod_spatialite_la-version.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/version.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 version.lo: versioninfo/version.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT version.lo -MD -MP -MF $(DEPDIR)/version.Tpo -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/version.Tpo $(DEPDIR)/version.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='versioninfo/version.c' object='version.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT version.lo -MD -MP -MF $(DEPDIR)/version.Tpo -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/version.Tpo $(DEPDIR)/version.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='versioninfo/version.c' object='version.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c
+
+mod_spatialite_la-version.lo: versioninfo/version.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mod_spatialite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mod_spatialite_la-version.lo -MD -MP -MF $(DEPDIR)/mod_spatialite_la-version.Tpo -c -o mod_spatialite_la-version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mod_spatialite_la-version.Tpo $(DEPDIR)/mod_spatialite_la-version.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='versioninfo/version.c' object='mod_spatialite_la-version.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mod_spatialite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mod_spatialite_la-version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -441,14 +565,13 @@ clean-libtool:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -469,31 +592,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -509,12 +614,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -526,15 +626,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -543,9 +639,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
 
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -726,14 +823,11 @@ ps-am:
 
 uninstall-am: uninstall-libLTLIBRARIES
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool cscopelist \
-	cscopelist-recursive ctags ctags-recursive distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libLTLIBRARIES \
+	clean-libtool cscopelist-am ctags ctags-am distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
@@ -744,8 +838,7 @@ uninstall-am: uninstall-libLTLIBRARIES
 	installcheck-am installdirs installdirs-am maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am \
-	uninstall-libLTLIBRARIES
+	tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/connection_cache/Makefile.am b/src/connection_cache/Makefile.am
new file mode 100644
index 0000000..3e2c3bc
--- /dev/null
+++ b/src/connection_cache/Makefile.am
@@ -0,0 +1,22 @@
+
+SUBDIRS = generator
+
+AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
+
+noinst_HEADERS = cache_aux_1.h cache_aux_2.h cache_aux_3.h
+noinst_LTLIBRARIES = libconnection_cache.la connection_cache.la
+
+libconnection_cache_la_SOURCES = alloc_cache.c 
+
+connection_cache_la_SOURCES = alloc_cache.c 
+
+connection_cache_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@
+connection_cache_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+connection_cache_la_CPPFLAGS += -DLOADABLE_EXTENSION
+connection_cache_la_LDFLAGS = -module
+connection_cache_la_LIBTOOLFLAGS = --tag=disable-static
+
+MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
+
+
diff --git a/src/connection_cache/Makefile.in b/src/connection_cache/Makefile.in
new file mode 100644
index 0000000..b55519c
--- /dev/null
+++ b/src/connection_cache/Makefile.in
@@ -0,0 +1,733 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = src/connection_cache
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+connection_cache_la_LIBADD =
+am_connection_cache_la_OBJECTS = connection_cache_la-alloc_cache.lo
+connection_cache_la_OBJECTS = $(am_connection_cache_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+connection_cache_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(connection_cache_la_LDFLAGS) $(LDFLAGS) -o $@
+libconnection_cache_la_LIBADD =
+am_libconnection_cache_la_OBJECTS = alloc_cache.lo
+libconnection_cache_la_OBJECTS = $(am_libconnection_cache_la_OBJECTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(connection_cache_la_SOURCES) \
+	$(libconnection_cache_la_SOURCES)
+DIST_SOURCES = $(connection_cache_la_SOURCES) \
+	$(libconnection_cache_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+HEADERS = $(noinst_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GEOSCONFIG = @GEOSCONFIG@
+GEOS_CFLAGS = @GEOS_CFLAGS@
+GEOS_LDFLAGS = @GEOS_LDFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = generator
+AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_HEADERS = cache_aux_1.h cache_aux_2.h cache_aux_3.h
+noinst_LTLIBRARIES = libconnection_cache.la connection_cache.la
+libconnection_cache_la_SOURCES = alloc_cache.c 
+connection_cache_la_SOURCES = alloc_cache.c 
+connection_cache_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ \
+	-I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION
+connection_cache_la_LDFLAGS = -module
+connection_cache_la_LIBTOOLFLAGS = --tag=disable-static
+MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/connection_cache/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign src/connection_cache/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
+connection_cache.la: $(connection_cache_la_OBJECTS) $(connection_cache_la_DEPENDENCIES) $(EXTRA_connection_cache_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(connection_cache_la_LINK)  $(connection_cache_la_OBJECTS) $(connection_cache_la_LIBADD) $(LIBS)
+
+libconnection_cache.la: $(libconnection_cache_la_OBJECTS) $(libconnection_cache_la_DEPENDENCIES) $(EXTRA_libconnection_cache_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK)  $(libconnection_cache_la_OBJECTS) $(libconnection_cache_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/alloc_cache.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/connection_cache_la-alloc_cache.Plo at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+connection_cache_la-alloc_cache.lo: alloc_cache.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connection_cache_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connection_cache_la-alloc_cache.lo -MD -MP -MF $(DEPDIR)/connection_cache_la-alloc_cache.Tpo -c -o connection_cache_la-alloc_cache.lo `test -f 'alloc_cache.c' || echo '$(srcdir)/'`alloc_cache.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connection_cache_la-alloc_cache.Tpo $(DEPDIR)/connection_cache_la-alloc_cache.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='alloc_cache.c' object='connection_cache_la-alloc_cache.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connection_cache_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connection_cache_la-alloc_cache.lo `test -f 'alloc_cache.c' || echo '$(srcdir)/'`alloc_cache.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+		am__skip_mode_fix=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/connection_cache/alloc_cache.c b/src/connection_cache/alloc_cache.c
new file mode 100644
index 0000000..2249013
--- /dev/null
+++ b/src/connection_cache/alloc_cache.c
@@ -0,0 +1,759 @@
+/*
+ alloc_cache.c -- Gaia spatial support for SQLite
+
+ version 4.1, 2013 May 8
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+
+#ifdef _WIN32
+#include <windows.h>
+#else
+#include <pthread.h>
+#endif
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#include "config-msvc.h"
+#else
+#include "config.h"
+#endif
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+#include <libxml/parser.h>
+#endif /* end LIBXML2 conditional */
+
+#include <spatialite/sqlite.h>
+#include <spatialite/debug.h>
+
+#include <spatialite.h>
+#include <spatialite_private.h>
+#include <spatialite/gg_advanced.h>
+
+#ifndef OMIT_GEOS		/* including GEOS */
+#include <geos_c.h>
+#endif
+
+#ifndef OMIT_PROJ		/* including PROJ.4 */
+#include <proj_api.h>
+#endif
+
+#include "cache_aux_1.h"
+
+/* GLOBAL variables */
+extern char *gaia_geos_error_msg;
+extern char *gaia_geos_warning_msg;
+
+/* GLOBAL semaphores */
+int gaia_already_initialized = 0;
+#ifdef _WIN32
+static CRITICAL_SECTION gaia_cache_semaphore;
+static CRITICAL_SECTION gaia_lwgeom_semaphore;
+#else
+static pthread_mutex_t gaia_cache_semaphore = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t gaia_lwgeom_semaphore = PTHREAD_MUTEX_INITIALIZER;
+#endif
+
+#define GAIA_CONN_RESERVED	(char *)1
+
+static void
+setGeosErrorMsg (int pool_index, const char *msg)
+{
+/* setting the latest GEOS error message */
+    struct splite_connection *p = &(splite_connection_pool[pool_index]);
+    int len;
+    if (p->gaia_geos_error_msg != NULL)
+	free (p->gaia_geos_error_msg);
+    p->gaia_geos_error_msg = NULL;
+    if (msg == NULL)
+	return;
+    len = strlen (msg);
+    p->gaia_geos_error_msg = malloc (len + 1);
+    strcpy (p->gaia_geos_error_msg, msg);
+}
+
+static void
+setGeosWarningMsg (int pool_index, const char *msg)
+{
+/* setting the latest GEOS error message */
+    struct splite_connection *p = &(splite_connection_pool[pool_index]);
+    int len;
+    if (p->gaia_geos_warning_msg != NULL)
+	free (p->gaia_geos_warning_msg);
+    p->gaia_geos_warning_msg = NULL;
+    if (msg == NULL)
+	return;
+    len = strlen (msg);
+    p->gaia_geos_warning_msg = malloc (len + 1);
+    strcpy (p->gaia_geos_warning_msg, msg);
+}
+
+static void
+setGeosAuxErrorMsg (int pool_index, const char *msg)
+{
+/* setting the latest GEOS (auxiliary) error message */
+    struct splite_connection *p = &(splite_connection_pool[pool_index]);
+    int len;
+    if (p->gaia_geosaux_error_msg != NULL)
+	free (p->gaia_geosaux_error_msg);
+    p->gaia_geosaux_error_msg = NULL;
+    if (msg == NULL)
+	return;
+    len = strlen (msg);
+    p->gaia_geosaux_error_msg = malloc (len + 1);
+    strcpy (p->gaia_geosaux_error_msg, msg);
+}
+
+static void
+geos_error_r (int pool_index, const char *fmt, va_list ap)
+{
+/* reporting some GEOS error - thread safe */
+    char *msg;
+    msg = sqlite3_vmprintf (fmt, ap);
+    if (msg)
+      {
+	  spatialite_e ("GEOS error: %s\n", msg);
+	  setGeosErrorMsg (pool_index, msg);
+	  sqlite3_free (msg);
+      }
+    else
+	setGeosErrorMsg (pool_index, NULL);
+}
+
+static void
+geos_warning_r (int pool_index, const char *fmt, va_list ap)
+{
+/* reporting some GEOS warning - thread safe */
+    char *msg;
+    msg = sqlite3_vmprintf (fmt, ap);
+    if (msg)
+      {
+	  spatialite_e ("GEOS warning: %s\n", msg);
+	  setGeosWarningMsg (pool_index, msg);
+	  sqlite3_free (msg);
+      }
+    else
+	setGeosWarningMsg (pool_index, NULL);
+}
+
+#include "cache_aux_2.h"
+
+static int
+find_free_connection ()
+{
+    int i;
+    for (i = 0; i < SPATIALITE_MAX_CONNECTIONS; i++)
+      {
+	  struct splite_connection *p = &(splite_connection_pool[i]);
+	  if (p->conn_ptr == NULL)
+	    {
+		p->conn_ptr = GAIA_CONN_RESERVED;
+		return i;
+	    }
+      }
+    spatialite_e ("ERROR: Too much connections: max %d\n",
+		  SPATIALITE_MAX_CONNECTIONS);
+    return -1;
+}
+
+static void
+confirm (int i, void *cache)
+{
+/* marking the slot as definitely reserved */
+    struct splite_connection *p = &(splite_connection_pool[i]);
+    p->conn_ptr = cache;
+}
+
+static void
+invalidate (int i)
+{
+/* definitely releasing the slot */
+    struct splite_connection *p = &(splite_connection_pool[i]);
+    if (p->gaia_geos_error_msg != NULL)
+	free (p->gaia_geos_error_msg);
+    if (p->gaia_geos_warning_msg != NULL)
+	free (p->gaia_geos_warning_msg);
+    if (p->gaia_geosaux_error_msg != NULL)
+	free (p->gaia_geosaux_error_msg);
+    p->gaia_geos_error_msg = NULL;
+    p->gaia_geos_warning_msg = NULL;
+    p->gaia_geosaux_error_msg = NULL;
+    p->conn_ptr = NULL;
+}
+
+SPATIALITE_DECLARE void *
+spatialite_alloc_connection ()
+{
+/* allocating and initializing an empty internal cache */
+    gaiaOutBufferPtr out;
+    int i;
+    struct splite_internal_cache *cache = NULL;
+    struct splite_geos_cache_item *p;
+    struct splite_xmlSchema_cache_item *p_xmlSchema;
+    int pool_index;
+
+/* attempting to implicitly initialize the library */
+    spatialite_initialize ();
+
+/* locking the semaphore */
+    splite_cache_semaphore_lock ();
+
+    pool_index = find_free_connection ();
+
+    if (pool_index < 0)
+	goto done;
+
+    cache = malloc (sizeof (struct splite_internal_cache));
+    if (cache == NULL)
+      {
+	  invalidate (pool_index);
+	  goto done;
+      }
+    cache->magic1 = SPATIALITE_CACHE_MAGIC1;
+    cache->magic2 = SPATIALITE_CACHE_MAGIC2;
+    cache->GEOS_handle = NULL;
+    cache->PROJ_handle = NULL;
+    cache->pool_index = pool_index;
+    confirm (pool_index, cache);
+/* initializing the XML error buffers */
+    out = malloc (sizeof (gaiaOutBuffer));
+    gaiaOutBufferInitialize (out);
+    cache->xmlParsingErrors = out;
+    out = malloc (sizeof (gaiaOutBuffer));
+    gaiaOutBufferInitialize (out);
+    cache->xmlSchemaValidationErrors = out;
+    out = malloc (sizeof (gaiaOutBuffer));
+    gaiaOutBufferInitialize (out);
+    cache->xmlXPathErrors = out;
+/* initializing the GEOS cache */
+    p = &(cache->cacheItem1);
+    memset (p->gaiaBlob, '\0', 64);
+    p->gaiaBlobSize = 0;
+    p->crc32 = 0;
+    p->geosGeom = NULL;
+    p->preparedGeosGeom = NULL;
+    p = &(cache->cacheItem2);
+    memset (p->gaiaBlob, '\0', 64);
+    p->gaiaBlobSize = 0;
+    p->crc32 = 0;
+    p->geosGeom = NULL;
+    p->preparedGeosGeom = NULL;
+    for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++)
+      {
+	  /* initializing the XmlSchema cache */
+	  p_xmlSchema = &(cache->xmlSchemaCache[i]);
+	  p_xmlSchema->timestamp = 0;
+	  p_xmlSchema->schemaURI = NULL;
+	  p_xmlSchema->schemaDoc = NULL;
+	  p_xmlSchema->parserCtxt = NULL;
+	  p_xmlSchema->schema = NULL;
+      }
+
+#include "cache_aux_3.h"
+
+/* initializing GEOS and PROJ.4 handles */
+
+#ifndef OMIT_GEOS		/* initializing GEOS */
+    cache->GEOS_handle = initGEOS_r (cache->geos_warning, cache->geos_error);
+#endif /* end GEOS  */
+
+#ifndef OMIT_PROJ		/* initializing the PROJ.4 context */
+    cache->PROJ_handle = pj_ctx_alloc ();
+#endif /* end PROJ.4  */
+
+  done:
+/* unlocking the semaphore */
+    splite_cache_semaphore_unlock ();
+    return cache;
+}
+
+SPATIALITE_PRIVATE void
+free_internal_cache (struct splite_internal_cache *cache)
+{
+/* freeing an internal cache */
+    struct splite_geos_cache_item *p;
+#ifndef OMIT_GEOS
+    GEOSContextHandle_t handle = NULL;
+#endif
+
+#ifdef ENABLE_LIBXML2
+    int i;
+    struct splite_xmlSchema_cache_item *p_xmlSchema;
+#endif
+
+    if (cache == NULL)
+	return;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return;
+
+#ifndef OMIT_GEOS
+    handle = cache->GEOS_handle;
+    if (handle != NULL)
+	finishGEOS_r (handle);
+    cache->GEOS_handle = NULL;
+    finishGEOS ();
+    gaiaResetGeosMsg_r (cache);
+#endif
+
+#ifndef OMIT_PROJ
+    if (cache->PROJ_handle != NULL)
+	pj_ctx_free (cache->PROJ_handle);
+    cache->PROJ_handle = NULL;
+#endif
+
+/* freeing the XML error buffers */
+    gaiaOutBufferReset (cache->xmlParsingErrors);
+    gaiaOutBufferReset (cache->xmlSchemaValidationErrors);
+    gaiaOutBufferReset (cache->xmlXPathErrors);
+    free (cache->xmlParsingErrors);
+    free (cache->xmlSchemaValidationErrors);
+    free (cache->xmlXPathErrors);
+
+/* freeing the GEOS cache */
+    p = &(cache->cacheItem1);
+    splite_free_geos_cache_item_r (cache, p);
+    p = &(cache->cacheItem2);
+    splite_free_geos_cache_item_r (cache, p);
+#ifdef ENABLE_LIBXML2
+    for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++)
+      {
+	  /* freeing the XmlSchema cache */
+	  p_xmlSchema = &(cache->xmlSchemaCache[i]);
+	  splite_free_xml_schema_cache_item (p_xmlSchema);
+      }
+#endif
+
+/* releasing the connection pool object */
+    invalidate (cache->pool_index);
+
+/* freeing the cache itself */
+    free (cache);
+}
+
+GAIAGEO_DECLARE void
+gaiaResetGeosMsg_r (const void *p_cache)
+{
+/* resets the GEOS error and warning messages */
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return;
+    if (p->gaia_geos_error_msg != NULL)
+	free (p->gaia_geos_error_msg);
+    if (p->gaia_geos_warning_msg != NULL)
+	free (p->gaia_geos_warning_msg);
+    if (p->gaia_geosaux_error_msg != NULL)
+	free (p->gaia_geosaux_error_msg);
+    p->gaia_geos_error_msg = NULL;
+    p->gaia_geos_warning_msg = NULL;
+    p->gaia_geosaux_error_msg = NULL;
+}
+
+GAIAGEO_DECLARE const char *
+gaiaGetGeosErrorMsg_r (const void *p_cache)
+{
+/* return the latest GEOS error message */
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return NULL;
+    return p->gaia_geos_error_msg;
+}
+
+GAIAGEO_DECLARE const char *
+gaiaGetGeosWarningMsg_r (const void *p_cache)
+{
+/* return the latest GEOS error message */
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return NULL;
+    return p->gaia_geos_warning_msg;
+}
+
+GAIAGEO_DECLARE const char *
+gaiaGetGeosAuxErrorMsg_r (const void *p_cache)
+{
+/* return the latest GEOS (auxialiary) error message */
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return NULL;
+    return p->gaia_geosaux_error_msg;
+}
+
+GAIAGEO_DECLARE void
+gaiaSetGeosErrorMsg_r (const void *p_cache, const char *msg)
+{
+/* setting the latest GEOS error message */
+    int len;
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return;
+    if (p->gaia_geos_error_msg != NULL)
+	free (p->gaia_geos_error_msg);
+    p->gaia_geos_error_msg = NULL;
+    if (msg == NULL)
+	return;
+    len = strlen (msg);
+    p->gaia_geos_error_msg = malloc (len + 1);
+    strcpy (p->gaia_geos_error_msg, msg);
+}
+
+GAIAGEO_DECLARE void
+gaiaSetGeosWarningMsg_r (const void *p_cache, const char *msg)
+{
+/* setting the latest GEOS error message */
+    int len;
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return;
+    if (p->gaia_geos_warning_msg != NULL)
+	free (p->gaia_geos_warning_msg);
+    p->gaia_geos_warning_msg = NULL;
+    if (msg == NULL)
+	return;
+    len = strlen (msg);
+    p->gaia_geos_warning_msg = malloc (len + 1);
+    strcpy (p->gaia_geos_warning_msg, msg);
+}
+
+GAIAGEO_DECLARE void
+gaiaSetGeosAuxErrorMsg_r (const void *p_cache, const char *msg)
+{
+/* setting the latest GEOS (auxiliary) error message */
+    int len;
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return;
+    if (p->gaia_geosaux_error_msg != NULL)
+	free (p->gaia_geosaux_error_msg);
+    p->gaia_geosaux_error_msg = NULL;
+    if (msg == NULL)
+	return;
+    len = strlen (msg);
+    p->gaia_geosaux_error_msg = malloc (len + 1);
+    strcpy (p->gaia_geosaux_error_msg, msg);
+}
+
+static char *
+parse_number_from_msg (const char *str)
+{
+/* attempting to parse a number from a string */
+    int sign = 0;
+    int point = 0;
+    int digit = 0;
+    int err = 0;
+    int len;
+    char *res;
+    const char *p = str;
+    while (1)
+      {
+	  if (*p == '+' || *p == '-')
+	    {
+		sign++;
+		p++;
+		continue;
+	    }
+	  if (*p == '.')
+	    {
+		point++;
+		p++;
+		continue;
+	    }
+	  if (*p >= '0' && *p <= '9')
+	    {
+		p++;
+		digit++;
+		continue;
+	    }
+	  break;
+      }
+    if (sign > 1)
+	err = 1;
+    if (sign == 1 && *str != '+' && *str != '-')
+	err = 1;
+    if (point > 1)
+	err = 1;
+    if (!digit)
+	err = 1;
+    if (err)
+	return NULL;
+    len = p - str;
+    res = malloc (len + 1);
+    memcpy (res, str, len);
+    *(res + len) = '\0';
+    return res;
+}
+
+static int
+check_geos_critical_point (const char *msg, double *x, double *y)
+{
+/* attempts to extract an [X,Y] Point coords from within a string */
+    char *px;
+    char *py;
+    const char *ref = " at or near point ";
+    const char *ref2 = " conflict at ";
+    const char *p = strstr (msg, ref);
+    if (p != NULL)
+	goto ok_ref;
+    p = strstr (msg, ref2);
+    if (p == NULL)
+	return 0;
+    p += strlen (ref2);
+    goto ok_ref2;
+  ok_ref:
+    p += strlen (ref);
+  ok_ref2:
+    px = parse_number_from_msg (p);
+    if (px == NULL)
+	return 0;
+    p += strlen (px) + 1;
+    py = parse_number_from_msg (p);
+    if (py == NULL)
+      {
+	  free (px);
+	  return 0;
+      }
+    *x = atof (px);
+    *y = atof (py);
+    free (px);
+    free (py);
+    return 1;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaCriticalPointFromGEOSmsg (void)
+{
+/*
+/ Attempts to return a Point Geometry extracted from the latest GEOS 
+/ error / warning message
+*/
+    double x;
+    double y;
+    gaiaGeomCollPtr geom;
+    const char *msg = gaia_geos_error_msg;
+    if (msg == NULL)
+	msg = gaia_geos_warning_msg;
+    if (msg == NULL)
+	return NULL;
+    if (!check_geos_critical_point (msg, &x, &y))
+	return NULL;
+    geom = gaiaAllocGeomColl ();
+    gaiaAddPointToGeomColl (geom, x, y);
+    return geom;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaCriticalPointFromGEOSmsg_r (const void *p_cache)
+{
+/*
+/ Attempts to return a Point Geometry extracted from the latest GEOS 
+/ error / warning message
+*/
+    double x;
+    double y;
+    gaiaGeomCollPtr geom;
+    const char *msg;
+    struct splite_connection *p = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 == SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 == SPATIALITE_CACHE_MAGIC2)
+	      p = &(splite_connection_pool[cache->pool_index]);
+      }
+    if (p == NULL)
+	return NULL;
+    msg = p->gaia_geos_error_msg;
+    if (msg == NULL)
+	msg = p->gaia_geos_warning_msg;
+    if (msg == NULL)
+	return NULL;
+    if (!check_geos_critical_point (msg, &x, &y))
+	return NULL;
+    geom = gaiaAllocGeomColl ();
+    gaiaAddPointToGeomColl (geom, x, y);
+    return geom;
+}
+
+SPATIALITE_PRIVATE void
+splite_cache_semaphore_lock (void)
+{
+#ifdef _WIN32
+    EnterCriticalSection (&gaia_cache_semaphore);
+#else
+    pthread_mutex_lock (&gaia_cache_semaphore);
+#endif
+}
+
+SPATIALITE_PRIVATE void
+splite_cache_semaphore_unlock (void)
+{
+#ifdef _WIN32
+    LeaveCriticalSection (&gaia_cache_semaphore);
+#else
+    pthread_mutex_unlock (&gaia_cache_semaphore);
+#endif
+}
+
+SPATIALITE_PRIVATE void
+splite_lwgeom_semaphore_lock (void)
+{
+#ifdef _WIN32
+    EnterCriticalSection (&gaia_lwgeom_semaphore);
+#else
+    pthread_mutex_lock (&gaia_lwgeom_semaphore);
+#endif
+}
+
+SPATIALITE_PRIVATE void
+splite_lwgeom_semaphore_unlock (void)
+{
+#ifdef _WIN32
+    LeaveCriticalSection (&gaia_lwgeom_semaphore);
+#else
+    pthread_mutex_unlock (&gaia_lwgeom_semaphore);
+#endif
+}
+
+SPATIALITE_DECLARE void
+spatialite_initialize (void)
+{
+/* initializes the library */
+    if (gaia_already_initialized)
+	return;
+    sqlite3_initialize ();
+
+#ifdef _WIN32
+    InitializeCriticalSection (&gaia_cache_semaphore);
+    InitializeCriticalSection (&gaia_lwgeom_semaphore);
+#endif
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+    xmlInitParser ();
+#endif /* end LIBXML2 conditional */
+
+    gaia_already_initialized = 1;
+}
+
+SPATIALITE_DECLARE void
+spatialite_shutdown (void)
+{
+/* finalizes the library */
+    int i;
+    if (!gaia_already_initialized)
+	return;
+    sqlite3_shutdown ();
+
+#ifdef _WIN32
+    DeleteCriticalSection (&gaia_cache_semaphore);
+    DeleteCriticalSection (&gaia_lwgeom_semaphore);
+#endif
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+    xmlCleanupParser ();
+#endif /* end LIBXML2 conditional */
+
+    for (i = 0; i < SPATIALITE_MAX_CONNECTIONS; i++)
+      {
+	  struct splite_connection *p = &(splite_connection_pool[i]);
+	  if (p->conn_ptr != NULL && p->conn_ptr != GAIA_CONN_RESERVED)
+	      free_internal_cache (p->conn_ptr);
+      }
+    gaia_already_initialized = 0;
+}
diff --git a/src/connection_cache/cache_aux_1.h b/src/connection_cache/cache_aux_1.h
new file mode 100644
index 0000000..fb2060f
--- /dev/null
+++ b/src/connection_cache/cache_aux_1.h
@@ -0,0 +1,76 @@
+#define SPATIALITE_MAX_CONNECTIONS	64
+
+struct splite_connection
+{
+/* connections pool */
+	void *conn_ptr;
+	char *gaia_geos_error_msg;
+	char *gaia_geos_warning_msg;
+	char *gaia_geosaux_error_msg;
+} splite_connection_pool[SPATIALITE_MAX_CONNECTIONS] =
+{
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL},
+	{NULL, NULL, NULL, NULL}
+};
diff --git a/src/connection_cache/cache_aux_2.h b/src/connection_cache/cache_aux_2.h
new file mode 100644
index 0000000..b64cc11
--- /dev/null
+++ b/src/connection_cache/cache_aux_2.h
@@ -0,0 +1,1152 @@
+static void
+geos_error_0 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (0, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_1 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (1, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_2 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (2, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_3 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (3, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_4 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (4, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_5 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (5, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_6 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (6, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_7 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (7, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_8 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (8, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_9 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (9, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_10 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (10, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_11 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (11, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_12 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (12, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_13 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (13, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_14 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (14, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_15 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (15, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_16 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (16, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_17 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (17, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_18 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (18, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_19 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (19, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_20 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (20, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_21 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (21, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_22 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (22, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_23 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (23, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_24 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (24, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_25 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (25, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_26 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (26, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_27 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (27, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_28 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (28, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_29 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (29, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_30 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (30, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_31 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (31, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_32 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (32, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_33 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (33, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_34 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (34, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_35 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (35, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_36 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (36, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_37 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (37, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_38 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (38, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_39 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (39, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_40 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (40, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_41 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (41, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_42 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (42, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_43 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (43, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_44 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (44, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_45 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (45, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_46 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (46, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_47 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (47, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_48 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (48, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_49 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (49, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_50 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (50, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_51 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (51, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_52 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (52, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_53 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (53, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_54 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (54, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_55 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (55, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_56 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (56, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_57 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (57, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_58 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (58, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_59 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (59, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_60 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (60, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_61 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (61, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_62 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (62, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_error_63 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_error_r (63, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_0 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (0, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_1 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (1, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_2 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (2, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_3 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (3, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_4 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (4, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_5 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (5, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_6 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (6, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_7 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (7, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_8 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (8, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_9 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (9, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_10 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (10, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_11 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (11, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_12 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (12, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_13 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (13, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_14 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (14, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_15 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (15, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_16 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (16, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_17 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (17, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_18 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (18, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_19 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (19, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_20 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (20, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_21 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (21, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_22 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (22, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_23 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (23, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_24 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (24, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_25 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (25, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_26 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (26, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_27 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (27, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_28 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (28, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_29 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (29, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_30 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (30, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_31 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (31, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_32 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (32, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_33 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (33, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_34 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (34, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_35 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (35, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_36 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (36, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_37 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (37, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_38 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (38, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_39 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (39, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_40 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (40, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_41 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (41, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_42 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (42, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_43 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (43, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_44 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (44, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_45 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (45, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_46 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (46, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_47 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (47, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_48 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (48, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_49 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (49, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_50 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (50, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_51 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (51, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_52 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (52, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_53 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (53, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_54 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (54, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_55 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (55, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_56 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (56, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_57 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (57, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_58 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (58, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_59 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (59, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_60 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (60, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_61 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (61, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_62 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (62, fmt, ap);
+	va_end (ap);
+}
+
+static void
+geos_warning_63 (const char *fmt, ...)
+{
+	va_list ap;
+	va_start (ap, fmt);
+	geos_warning_r (63, fmt, ap);
+	va_end (ap);
+}
+
diff --git a/src/connection_cache/cache_aux_3.h b/src/connection_cache/cache_aux_3.h
new file mode 100644
index 0000000..2e13c4f
--- /dev/null
+++ b/src/connection_cache/cache_aux_3.h
@@ -0,0 +1,261 @@
+/* initializing all function pointers */
+	switch (cache->pool_index)
+	{
+	case 0:
+		cache->geos_warning = geos_warning_0;
+		cache->geos_error = geos_error_0;
+		break;
+	case 1:
+		cache->geos_warning = geos_warning_1;
+		cache->geos_error = geos_error_1;
+		break;
+	case 2:
+		cache->geos_warning = geos_warning_2;
+		cache->geos_error = geos_error_2;
+		break;
+	case 3:
+		cache->geos_warning = geos_warning_3;
+		cache->geos_error = geos_error_3;
+		break;
+	case 4:
+		cache->geos_warning = geos_warning_4;
+		cache->geos_error = geos_error_4;
+		break;
+	case 5:
+		cache->geos_warning = geos_warning_5;
+		cache->geos_error = geos_error_5;
+		break;
+	case 6:
+		cache->geos_warning = geos_warning_6;
+		cache->geos_error = geos_error_6;
+		break;
+	case 7:
+		cache->geos_warning = geos_warning_7;
+		cache->geos_error = geos_error_7;
+		break;
+	case 8:
+		cache->geos_warning = geos_warning_8;
+		cache->geos_error = geos_error_8;
+		break;
+	case 9:
+		cache->geos_warning = geos_warning_9;
+		cache->geos_error = geos_error_9;
+		break;
+	case 10:
+		cache->geos_warning = geos_warning_10;
+		cache->geos_error = geos_error_10;
+		break;
+	case 11:
+		cache->geos_warning = geos_warning_11;
+		cache->geos_error = geos_error_11;
+		break;
+	case 12:
+		cache->geos_warning = geos_warning_12;
+		cache->geos_error = geos_error_12;
+		break;
+	case 13:
+		cache->geos_warning = geos_warning_13;
+		cache->geos_error = geos_error_13;
+		break;
+	case 14:
+		cache->geos_warning = geos_warning_14;
+		cache->geos_error = geos_error_14;
+		break;
+	case 15:
+		cache->geos_warning = geos_warning_15;
+		cache->geos_error = geos_error_15;
+		break;
+	case 16:
+		cache->geos_warning = geos_warning_16;
+		cache->geos_error = geos_error_16;
+		break;
+	case 17:
+		cache->geos_warning = geos_warning_17;
+		cache->geos_error = geos_error_17;
+		break;
+	case 18:
+		cache->geos_warning = geos_warning_18;
+		cache->geos_error = geos_error_18;
+		break;
+	case 19:
+		cache->geos_warning = geos_warning_19;
+		cache->geos_error = geos_error_19;
+		break;
+	case 20:
+		cache->geos_warning = geos_warning_20;
+		cache->geos_error = geos_error_20;
+		break;
+	case 21:
+		cache->geos_warning = geos_warning_21;
+		cache->geos_error = geos_error_21;
+		break;
+	case 22:
+		cache->geos_warning = geos_warning_22;
+		cache->geos_error = geos_error_22;
+		break;
+	case 23:
+		cache->geos_warning = geos_warning_23;
+		cache->geos_error = geos_error_23;
+		break;
+	case 24:
+		cache->geos_warning = geos_warning_24;
+		cache->geos_error = geos_error_24;
+		break;
+	case 25:
+		cache->geos_warning = geos_warning_25;
+		cache->geos_error = geos_error_25;
+		break;
+	case 26:
+		cache->geos_warning = geos_warning_26;
+		cache->geos_error = geos_error_26;
+		break;
+	case 27:
+		cache->geos_warning = geos_warning_27;
+		cache->geos_error = geos_error_27;
+		break;
+	case 28:
+		cache->geos_warning = geos_warning_28;
+		cache->geos_error = geos_error_28;
+		break;
+	case 29:
+		cache->geos_warning = geos_warning_29;
+		cache->geos_error = geos_error_29;
+		break;
+	case 30:
+		cache->geos_warning = geos_warning_30;
+		cache->geos_error = geos_error_30;
+		break;
+	case 31:
+		cache->geos_warning = geos_warning_31;
+		cache->geos_error = geos_error_31;
+		break;
+	case 32:
+		cache->geos_warning = geos_warning_32;
+		cache->geos_error = geos_error_32;
+		break;
+	case 33:
+		cache->geos_warning = geos_warning_33;
+		cache->geos_error = geos_error_33;
+		break;
+	case 34:
+		cache->geos_warning = geos_warning_34;
+		cache->geos_error = geos_error_34;
+		break;
+	case 35:
+		cache->geos_warning = geos_warning_35;
+		cache->geos_error = geos_error_35;
+		break;
+	case 36:
+		cache->geos_warning = geos_warning_36;
+		cache->geos_error = geos_error_36;
+		break;
+	case 37:
+		cache->geos_warning = geos_warning_37;
+		cache->geos_error = geos_error_37;
+		break;
+	case 38:
+		cache->geos_warning = geos_warning_38;
+		cache->geos_error = geos_error_38;
+		break;
+	case 39:
+		cache->geos_warning = geos_warning_39;
+		cache->geos_error = geos_error_39;
+		break;
+	case 40:
+		cache->geos_warning = geos_warning_40;
+		cache->geos_error = geos_error_40;
+		break;
+	case 41:
+		cache->geos_warning = geos_warning_41;
+		cache->geos_error = geos_error_41;
+		break;
+	case 42:
+		cache->geos_warning = geos_warning_42;
+		cache->geos_error = geos_error_42;
+		break;
+	case 43:
+		cache->geos_warning = geos_warning_43;
+		cache->geos_error = geos_error_43;
+		break;
+	case 44:
+		cache->geos_warning = geos_warning_44;
+		cache->geos_error = geos_error_44;
+		break;
+	case 45:
+		cache->geos_warning = geos_warning_45;
+		cache->geos_error = geos_error_45;
+		break;
+	case 46:
+		cache->geos_warning = geos_warning_46;
+		cache->geos_error = geos_error_46;
+		break;
+	case 47:
+		cache->geos_warning = geos_warning_47;
+		cache->geos_error = geos_error_47;
+		break;
+	case 48:
+		cache->geos_warning = geos_warning_48;
+		cache->geos_error = geos_error_48;
+		break;
+	case 49:
+		cache->geos_warning = geos_warning_49;
+		cache->geos_error = geos_error_49;
+		break;
+	case 50:
+		cache->geos_warning = geos_warning_50;
+		cache->geos_error = geos_error_50;
+		break;
+	case 51:
+		cache->geos_warning = geos_warning_51;
+		cache->geos_error = geos_error_51;
+		break;
+	case 52:
+		cache->geos_warning = geos_warning_52;
+		cache->geos_error = geos_error_52;
+		break;
+	case 53:
+		cache->geos_warning = geos_warning_53;
+		cache->geos_error = geos_error_53;
+		break;
+	case 54:
+		cache->geos_warning = geos_warning_54;
+		cache->geos_error = geos_error_54;
+		break;
+	case 55:
+		cache->geos_warning = geos_warning_55;
+		cache->geos_error = geos_error_55;
+		break;
+	case 56:
+		cache->geos_warning = geos_warning_56;
+		cache->geos_error = geos_error_56;
+		break;
+	case 57:
+		cache->geos_warning = geos_warning_57;
+		cache->geos_error = geos_error_57;
+		break;
+	case 58:
+		cache->geos_warning = geos_warning_58;
+		cache->geos_error = geos_error_58;
+		break;
+	case 59:
+		cache->geos_warning = geos_warning_59;
+		cache->geos_error = geos_error_59;
+		break;
+	case 60:
+		cache->geos_warning = geos_warning_60;
+		cache->geos_error = geos_error_60;
+		break;
+	case 61:
+		cache->geos_warning = geos_warning_61;
+		cache->geos_error = geos_error_61;
+		break;
+	case 62:
+		cache->geos_warning = geos_warning_62;
+		cache->geos_error = geos_error_62;
+		break;
+	case 63:
+		cache->geos_warning = geos_warning_63;
+		cache->geos_error = geos_error_63;
+		break;
+	};
+
diff --git a/src/connection_cache/generator/Makefile.am b/src/connection_cache/generator/Makefile.am
new file mode 100644
index 0000000..9bfe34e
--- /dev/null
+++ b/src/connection_cache/generator/Makefile.am
@@ -0,0 +1,3 @@
+
+EXTRA_DIST = README.txt code_generator.c
+
diff --git a/src/connection_cache/generator/Makefile.in b/src/connection_cache/generator/Makefile.in
new file mode 100644
index 0000000..2c5e61c
--- /dev/null
+++ b/src/connection_cache/generator/Makefile.in
@@ -0,0 +1,437 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = src/connection_cache/generator
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GEOSCONFIG = @GEOSCONFIG@
+GEOS_CFLAGS = @GEOS_CFLAGS@
+GEOS_LDFLAGS = @GEOS_LDFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = README.txt code_generator.c
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/connection_cache/generator/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign src/connection_cache/generator/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/connection_cache/generator/README.txt b/src/connection_cache/generator/README.txt
new file mode 100644
index 0000000..b527f78
--- /dev/null
+++ b/src/connection_cache/generator/README.txt
@@ -0,0 +1,35 @@
+HOW-TO: UPDATE connection_cache.c auto-generated C CODE
+============================================================================
+When updating is required: 
+every time you wish to change the max number of concurrent connections.
+the basic default setting supported by any standard distribution always
+is 64; anyway you could eventually change this to any other valure
+in the range 4 - 1024
+============================================================================
+
+STEP #1: compiling the C generator tool
+--------
+# cd {libspatialite-source}/src/connection_cache/generator
+
+Linux:
+# gcc code_generator.c -o code_generator
+
+Windows [MinGW]:
+# gcc code_generator.c -o code_generator.exe
+
+
+
+STEP #3: generating the C code (#include snippets)
+--------
+# rm cache_aux_*.h
+# ./code_generator MAX
+
+at the end of this step several "cache_aux_*.h" files will be generated
+
+
+
+STEP #4: final setup
+--------
+- copy the generated file into the parent dir:
+  rm ../cache_aux_*.h
+  cp cache_aux_*.h ..
diff --git a/src/connection_cache/generator/code_generator.c b/src/connection_cache/generator/code_generator.c
new file mode 100644
index 0000000..717836e
--- /dev/null
+++ b/src/connection_cache/generator/code_generator.c
@@ -0,0 +1,140 @@
+/* 
+/ code_generator
+/
+/ a tool autogenerating C code for SpatiaLite
+/ [#include snippets for alloc_cache.c]
+/
+/ version 1.0, 2013 October 30
+/
+/ Author: Sandro Furieri a.furieri at lqt.it
+/
+/ Copyright (C) 2013  Alessandro Furieri
+/
+/    This program is free software: you can redistribute it and/or modify
+/    it under the terms of the GNU General Public License as published by
+/    the Free Software Foundation, either version 3 of the License, or
+/    (at your option) any later version.
+/
+/    This program is distributed in the hope that it will be useful,
+/    but WITHOUT ANY WARRANTY; without even the implied warranty of
+/    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+/    GNU General Public License for more details.
+/
+/    You should have received a copy of the GNU General Public License
+/    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+/
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+main (int argc, char *argv[])
+{
+/*
+    this tool autogenerates few #include code snippets
+    required by ../cache_alloc.c
+
+    the MAX argument corresponds to the max number of
+    concurrent connections supported by libspatialite
+    at runtime.
+    this value is required to be in the range between
+    4 and 1024
+*/
+    int i;
+    int max;
+    FILE *out;
+
+/* checking the MAX arg for validity */
+    if (argc != 2)
+      {
+	  fprintf (stderr, "usage: code_generator MAX\n");
+	  return -1;
+      }
+    max = atoi (argv[1]);
+    if (max < 4)
+      {
+	  fprintf (stderr, "error: MAX has to be >= 4 !!!!\n");
+	  return -1;
+      }
+    if (max > 1024)
+      {
+	  fprintf (stderr, "error: MAX has to be <= 1024 !!!!\n");
+	  return -1;
+      }
+
+/* generating "cache_aux_1.h" */
+    out = fopen ("cache_aux_1.h", "w");
+    if (out == NULL)
+      {
+	  fprintf (stderr, "Unable to create/open \"cache_aux_1.h\"\n");
+	  return -1;
+      }
+    fprintf (out, "#define SPATIALITE_MAX_CONNECTIONS\t%d\n\n", max);
+    fprintf (out, "struct splite_connection\n{\n");
+    fprintf (out, "/* connections pool */\n");
+    fprintf (out, "\tvoid *conn_ptr;\n");
+    fprintf (out, "\tchar *gaia_geos_error_msg;\n");
+    fprintf (out, "\tchar *gaia_geos_warning_msg;\n");
+    fprintf (out, "\tchar *gaia_geosaux_error_msg;\n");
+    fprintf (out,
+	     "} splite_connection_pool[" "SPATIALITE_MAX_CONNECTIONS] =\n{\n");
+    for (i = 0; i < max; i++)
+      {
+	  if (i == (max - 1))
+	      fprintf (out, "\t{NULL, NULL, NULL, NULL}\n");
+	  else
+	      fprintf (out, "\t{NULL, NULL, NULL, NULL},\n");
+      }
+    fprintf (out, "};\n");
+    fclose (out);
+
+/* generating "cache_aux_2.h" */
+    out = fopen ("cache_aux_2.h", "w");
+    if (out == NULL)
+      {
+	  fprintf (stderr, "Unable to create/open \"cache_aux_2.h\"\n");
+	  return -1;
+      }
+    for (i = 0; i < max; i++)
+      {
+	  fprintf (out, "static void\n");
+	  fprintf (out, "geos_error_%d (const char *fmt, ...)\n{\n", i);
+	  fprintf (out, "\tva_list ap;\n");
+	  fprintf (out, "\tva_start (ap, fmt);\n");
+	  fprintf (out, "\tgeos_error_r (%d, fmt, ap);\n", i);
+	  fprintf (out, "\tva_end (ap);\n}\n\n");
+      }
+    for (i = 0; i < max; i++)
+      {
+	  fprintf (out, "static void\n");
+	  fprintf (out, "geos_warning_%d (const char *fmt, ...)\n{\n", i);
+	  fprintf (out, "\tva_list ap;\n");
+	  fprintf (out, "\tva_start (ap, fmt);\n");
+	  fprintf (out, "\tgeos_warning_r (%d, fmt, ap);\n", i);
+	  fprintf (out, "\tva_end (ap);\n}\n\n");
+      }
+    fclose (out);
+
+/* generating "cache_aux_3.h" */
+    out = fopen ("cache_aux_3.h", "w");
+    if (out == NULL)
+      {
+	  fprintf (stderr, "Unable to create/open \"cache_aux_3.h\"\n");
+	  return -1;
+      }
+    fprintf (out, "/* initializing all function pointers */\n");
+    fprintf (out, "\tswitch (cache->pool_index)\n\t{\n");
+    for (i = 0; i < max; i++)
+      {
+	  fprintf (out, "\tcase %d:\n", i);
+	  fprintf (out, "\t\tcache->geos_warning = geos_warning_%d;\n", i);
+	  fprintf (out, "\t\tcache->geos_error = geos_error_%d;\n", i);
+	  fprintf (out, "\t\tbreak;\n");
+      }
+    fprintf (out, "\t};\n\n");
+    fclose (out);
+
+    return 0;
+}
diff --git a/src/dxf/Makefile.am b/src/dxf/Makefile.am
index ccc382a..9d6a7af 100644
--- a/src/dxf/Makefile.am
+++ b/src/dxf/Makefile.am
@@ -1,12 +1,22 @@
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers -I.
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
 
 noinst_HEADERS = dxf_private.h
-noinst_LTLIBRARIES = libdxf.la
+noinst_LTLIBRARIES = libdxf.la dxf.la
 
-libdxf_la_SOURCES = dxf_parser.c dxf_loader.c \
+DXF_COMMON_SOURCES = dxf_parser.c dxf_loader.c \
 	dxf_load_distinct.c dxf_load_mixed.c \
 	dxf_writer.c
 
+libdxf_la_SOURCES = $(DXF_COMMON_SOURCES)
+
+dxf_la_SOURCES = $(DXF_COMMON_SOURCES)
+
+dxf_la_CPPFLAGS = @CFLAGS@
+dxf_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+dxf_la_CPPFLAGS += -DLOADABLE_EXTENSION
+dxf_la_LDFLAGS = -module
+dxf_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/dxf/Makefile.in b/src/dxf/Makefile.in
index a0cbdbc..9e53e7e 100644
--- a/src/dxf/Makefile.in
+++ b/src/dxf/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,8 +80,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/dxf
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -66,36 +94,89 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
+dxf_la_LIBADD =
+am__objects_1 = dxf_la-dxf_parser.lo dxf_la-dxf_loader.lo \
+	dxf_la-dxf_load_distinct.lo dxf_la-dxf_load_mixed.lo \
+	dxf_la-dxf_writer.lo
+am_dxf_la_OBJECTS = $(am__objects_1)
+dxf_la_OBJECTS = $(am_dxf_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+dxf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(dxf_la_LDFLAGS) $(LDFLAGS) -o $@
 libdxf_la_LIBADD =
-am_libdxf_la_OBJECTS = dxf_parser.lo dxf_loader.lo \
-	dxf_load_distinct.lo dxf_load_mixed.lo dxf_writer.lo
+am__objects_2 = dxf_parser.lo dxf_loader.lo dxf_load_distinct.lo \
+	dxf_load_mixed.lo dxf_writer.lo
+am_libdxf_la_OBJECTS = $(am__objects_2)
 libdxf_la_OBJECTS = $(am_libdxf_la_OBJECTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libdxf_la_SOURCES)
-DIST_SOURCES = $(libdxf_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(dxf_la_SOURCES) $(libdxf_la_SOURCES)
+DIST_SOURCES = $(dxf_la_SOURCES) $(libdxf_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -222,13 +303,19 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I.
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I.
 noinst_HEADERS = dxf_private.h
-noinst_LTLIBRARIES = libdxf.la
-libdxf_la_SOURCES = dxf_parser.c dxf_loader.c \
+noinst_LTLIBRARIES = libdxf.la dxf.la
+DXF_COMMON_SOURCES = dxf_parser.c dxf_loader.c \
 	dxf_load_distinct.c dxf_load_mixed.c \
 	dxf_writer.c
 
+libdxf_la_SOURCES = $(DXF_COMMON_SOURCES)
+dxf_la_SOURCES = $(DXF_COMMON_SOURCES)
+dxf_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+dxf_la_LDFLAGS = -module
+dxf_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -275,8 +362,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
+dxf.la: $(dxf_la_OBJECTS) $(dxf_la_DEPENDENCIES) $(EXTRA_dxf_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(dxf_la_LINK)  $(dxf_la_OBJECTS) $(dxf_la_LIBADD) $(LIBS)
+
 libdxf.la: $(libdxf_la_OBJECTS) $(libdxf_la_DEPENDENCIES) $(EXTRA_libdxf_la_DEPENDENCIES) 
-	$(LINK)  $(libdxf_la_OBJECTS) $(libdxf_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libdxf_la_OBJECTS) $(libdxf_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -284,6 +375,11 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_la-dxf_load_distinct.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_la-dxf_load_mixed.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_la-dxf_loader.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_la-dxf_parser.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_la-dxf_writer.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_load_distinct.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_load_mixed.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_loader.Plo at am__quote@
@@ -291,25 +387,60 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dxf_writer.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+dxf_la-dxf_parser.lo: dxf_parser.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_parser.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_parser.Tpo -c -o dxf_la-dxf_parser.lo `test -f 'dxf_parser.c' || echo '$(srcdir)/'`dxf_parser.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_parser.Tpo $(DEPDIR)/dxf_la-dxf_parser.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dxf_parser.c' object='dxf_la-dxf_parser.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_parser.lo `test -f 'dxf_parser.c' || echo '$(srcdir)/'`dxf_parser.c
+
+dxf_la-dxf_loader.lo: dxf_loader.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_loader.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_loader.Tpo -c -o dxf_la-dxf_loader.lo `test -f 'dxf_loader.c' || echo '$(srcdir)/'`dxf_loader.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_loader.Tpo $(DEPDIR)/dxf_la-dxf_loader.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dxf_loader.c' object='dxf_la-dxf_loader.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_loader.lo `test -f 'dxf_loader.c' || echo '$(srcdir)/'`dxf_loader.c
+
+dxf_la-dxf_load_distinct.lo: dxf_load_distinct.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_load_distinct.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_load_distinct.Tpo -c -o dxf_la-dxf_load_distinct.lo `test -f 'dxf_load_distinct.c' || echo '$(srcdir)/'`dxf_load_distinct.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_load_distinct.Tpo $(DEPDIR)/dxf_la-dxf_load_distinct.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dxf_load_distinct.c' object='dxf_la-dxf_load_distinct.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_load_distinct.lo `test -f 'dxf_load_distinct.c' || echo '$(srcdir)/'`dxf_load_distinct.c
+
+dxf_la-dxf_load_mixed.lo: dxf_load_mixed.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_load_mixed.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_load_mixed.Tpo -c -o dxf_la-dxf_load_mixed.lo `test -f 'dxf_load_mixed.c' || echo '$(srcdir)/'`dxf_load_mixed.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_load_mixed.Tpo $(DEPDIR)/dxf_la-dxf_load_mixed.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dxf_load_mixed.c' object='dxf_la-dxf_load_mixed.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_load_mixed.lo `test -f 'dxf_load_mixed.c' || echo '$(srcdir)/'`dxf_load_mixed.c
+
+dxf_la-dxf_writer.lo: dxf_writer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_writer.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_writer.Tpo -c -o dxf_la-dxf_writer.lo `test -f 'dxf_writer.c' || echo '$(srcdir)/'`dxf_writer.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_writer.Tpo $(DEPDIR)/dxf_la-dxf_writer.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dxf_writer.c' object='dxf_la-dxf_writer.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_writer.lo `test -f 'dxf_writer.c' || echo '$(srcdir)/'`dxf_writer.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -317,26 +448,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -348,15 +468,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -365,9 +481,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -521,9 +638,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -533,7 +650,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/dxf/dxf_load_distinct.c b/src/dxf/dxf_load_distinct.c
index efd8528..7d1c351 100644
--- a/src/dxf/dxf_load_distinct.c
+++ b/src/dxf/dxf_load_distinct.c
@@ -1361,6 +1361,7 @@ import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 		pg = lyr->first_polyg;
 		while (pg != NULL)
 		  {
+		      int unclosed = check_unclosed_polyg (pg, lyr->is3Dpolyg);
 		      int num_holes;
 		      gaiaDxfHolePtr hole;
 		      sqlite3_reset (stmt);
@@ -1382,7 +1383,8 @@ import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 			    num_holes++;
 			    hole = hole->next;
 			}
-		      gaiaAddPolygonToGeomColl (geom, pg->points, num_holes);
+		      gaiaAddPolygonToGeomColl (geom, pg->points + unclosed,
+						num_holes);
 		      p_pg = geom->FirstPolygon;
 		      p_rng = p_pg->Exterior;
 		      for (iv = 0; iv < pg->points; iv++)
@@ -1399,13 +1401,30 @@ import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 						*(pg->x + iv), *(pg->y + iv));
 			      }
 			}
+		      if (unclosed)
+			{
+			    /* forcing the Ring to be closed */
+			    if (lyr->is3Dpolyg)
+			      {
+				  gaiaSetPointXYZ (p_rng->Coords, pg->points,
+						   *(pg->x + 0), *(pg->y + 0),
+						   *(pg->z + 0));
+			      }
+			    else
+			      {
+				  gaiaSetPoint (p_rng->Coords, pg->points,
+						*(pg->x + 0), *(pg->y + 0));
+			      }
+			}
 		      num_holes = 0;
 		      hole = pg->first_hole;
 		      while (hole != NULL)
 			{
+			    int unclosed =
+				check_unclosed_hole (hole, lyr->is3Dpolyg);
 			    p_rng =
 				gaiaAddInteriorRing (p_pg, num_holes,
-						     hole->points);
+						     hole->points + unclosed);
 			    for (iv = 0; iv < hole->points; iv++)
 			      {
 				  if (lyr->is3Dpolyg)
@@ -1422,6 +1441,25 @@ import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 						      *(hole->y + iv));
 				    }
 			      }
+			    if (unclosed)
+			      {
+				  /* forcing the Ring to be closed */
+				  if (lyr->is3Dpolyg)
+				    {
+					gaiaSetPointXYZ (p_rng->Coords,
+							 hole->points,
+							 *(hole->x + 0),
+							 *(hole->y + 0),
+							 *(hole->z + 0));
+				    }
+				  else
+				    {
+					gaiaSetPoint (p_rng->Coords,
+						      hole->points,
+						      *(hole->x + 0),
+						      *(hole->y + 0));
+				    }
+			      }
 			    num_holes++;
 			    hole = hole->next;
 			}
diff --git a/src/dxf/dxf_load_mixed.c b/src/dxf/dxf_load_mixed.c
index 0108e31..658d955 100644
--- a/src/dxf/dxf_load_mixed.c
+++ b/src/dxf/dxf_load_mixed.c
@@ -1376,6 +1376,7 @@ import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 		gaiaDxfPolylinePtr pg = lyr->first_polyg;
 		while (pg != NULL)
 		  {
+		      int unclosed = check_unclosed_polyg (pg, lyr->is3Dpolyg);
 		      gaiaDxfHolePtr hole;
 		      int num_holes;
 		      int iv;
@@ -1400,7 +1401,8 @@ import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 			    num_holes++;
 			    hole = hole->next;
 			}
-		      gaiaAddPolygonToGeomColl (geom, pg->points, num_holes);
+		      gaiaAddPolygonToGeomColl (geom, pg->points + unclosed,
+						num_holes);
 		      p_pg = geom->FirstPolygon;
 		      p_rng = p_pg->Exterior;
 		      for (iv = 0; iv < pg->points; iv++)
@@ -1417,13 +1419,30 @@ import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 						*(pg->x + iv), *(pg->y + iv));
 			      }
 			}
+		      if (unclosed)
+			{
+			    /* forcing the Ring to be closed */
+			    if (lyr->is3Dpolyg)
+			      {
+				  gaiaSetPointXYZ (p_rng->Coords, pg->points,
+						   *(pg->x + 0), *(pg->y + 0),
+						   *(pg->z + 0));
+			      }
+			    else
+			      {
+				  gaiaSetPoint (p_rng->Coords, pg->points,
+						*(pg->x + 0), *(pg->y + 0));
+			      }
+			}
 		      num_holes = 0;
 		      hole = pg->first_hole;
 		      while (hole != NULL)
 			{
+			    int unclosed =
+				check_unclosed_hole (hole, lyr->is3Dpolyg);
 			    p_rng =
 				gaiaAddInteriorRing (p_pg, num_holes,
-						     hole->points);
+						     hole->points + unclosed);
 			    for (iv = 0; iv < hole->points; iv++)
 			      {
 				  if (lyr->is3Dpolyg)
@@ -1440,6 +1459,25 @@ import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 						      *(hole->y + iv));
 				    }
 			      }
+			    if (unclosed)
+			      {
+				  /* forcing the Ring to be closed */
+				  if (lyr->is3Dpolyg)
+				    {
+					gaiaSetPointXYZ (p_rng->Coords,
+							 hole->points,
+							 *(hole->x + 0),
+							 *(hole->y + 0),
+							 *(hole->z + 0));
+				    }
+				  else
+				    {
+					gaiaSetPoint (p_rng->Coords,
+						      hole->points,
+						      *(hole->x + 0),
+						      *(hole->y + 0));
+				    }
+			      }
 			    num_holes++;
 			    hole = hole->next;
 			}
diff --git a/src/dxf/dxf_loader.c b/src/dxf/dxf_loader.c
index b962b56..41f44bd 100644
--- a/src/dxf/dxf_loader.c
+++ b/src/dxf/dxf_loader.c
@@ -3187,6 +3187,47 @@ create_block_hatch_tables (sqlite3 * handle, const char *name, int srid,
     return 1;
 }
 
+DXF_PRIVATE int
+check_unclosed_polyg (gaiaDxfPolylinePtr pg, int is3d)
+{
+/* checking for unclosed Rings (exterior) */
+    int last = pg->points - 1;
+    if (is3d)
+      {
+	  if (*(pg->x + 0) == *(pg->x + last) && *(pg->y + 0) == *(pg->y + last)
+	      && *(pg->z + 0) == *(pg->z + last))
+	      return 0;
+      }
+    else
+      {
+	  if (*(pg->x + 0) == *(pg->x + last)
+	      && *(pg->y + 0) == *(pg->y + last))
+	      return 0;
+      }
+    return 1;
+}
+
+DXF_PRIVATE int
+check_unclosed_hole (gaiaDxfHolePtr hole, int is3d)
+{
+/* checking for unclosed Rings (interior) */
+    int last = hole->points - 1;
+    if (is3d)
+      {
+	  if (*(hole->x + 0) == *(hole->x + last)
+	      && *(hole->y + 0) == *(hole->y + last)
+	      && *(hole->z + 0) == *(hole->z + last))
+	      return 0;
+      }
+    else
+      {
+	  if (*(hole->x + 0) == *(hole->x + last)
+	      && *(hole->y + 0) == *(hole->y + last))
+	      return 0;
+      }
+    return 1;
+}
+
 static int
 import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 {
@@ -3639,6 +3680,7 @@ import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 	  pg = blk->first_polyg;
 	  while (pg)
 	    {
+		int unclosed = check_unclosed_polyg (pg, blk->is3Dpolyg);
 		if (blk->is3Dpolyg)
 		    stmt = stmt_polyg_3d;
 		else
@@ -3663,7 +3705,8 @@ import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 		      num_holes++;
 		      hole = hole->next;
 		  }
-		gaiaAddPolygonToGeomColl (geom, pg->points, num_holes);
+		gaiaAddPolygonToGeomColl (geom, pg->points + unclosed,
+					  num_holes);
 		p_pg = geom->FirstPolygon;
 		p_rng = p_pg->Exterior;
 		for (iv = 0; iv < pg->points; iv++)
@@ -3680,12 +3723,29 @@ import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 					  *(pg->x + iv), *(pg->y + iv));
 			}
 		  }
+		if (unclosed)
+		  {
+		      /* forcing the Ring to be closed */
+		      if (blk->is3Dpolyg)
+			{
+			    gaiaSetPointXYZ (p_rng->Coords, pg->points,
+					     *(pg->x + 0), *(pg->y + 0),
+					     *(pg->z + 0));
+			}
+		      else
+			{
+			    gaiaSetPoint (p_rng->Coords, pg->points,
+					  *(pg->x + 0), *(pg->y + 0));
+			}
+		  }
 		num_holes = 0;
 		hole = pg->first_hole;
 		while (hole != NULL)
 		  {
+		      int unclosed = check_unclosed_hole (hole, polyg3D);
 		      p_rng =
-			  gaiaAddInteriorRing (p_pg, num_holes, hole->points);
+			  gaiaAddInteriorRing (p_pg, num_holes,
+					       hole->points + unclosed);
 		      for (iv = 0; iv < hole->points; iv++)
 			{
 			    if (polyg3D)
@@ -3702,6 +3762,22 @@ import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append)
 						*(hole->y + iv));
 			      }
 			}
+		      if (unclosed)
+			{
+			    /* forcing the Ring to be closed */
+			    if (polyg3D)
+			      {
+				  gaiaSetPointXYZ (p_rng->Coords, hole->points,
+						   *(hole->x + 0),
+						   *(hole->y + 0),
+						   *(hole->z + 0));
+			      }
+			    else
+			      {
+				  gaiaSetPoint (p_rng->Coords, hole->points,
+						*(hole->x + 0), *(hole->y + 0));
+			      }
+			}
 		      num_holes++;
 		      hole = hole->next;
 		  }
diff --git a/src/dxf/dxf_parser.c b/src/dxf/dxf_parser.c
index 1350ae5..77b0339 100644
--- a/src/dxf/dxf_parser.c
+++ b/src/dxf/dxf_parser.c
@@ -61,6 +61,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <spatialite/gg_dxf.h>
 #include <spatialite.h>
 
+#ifndef OMIT_GEOS		/* only if GEOS is enabled */
+
 typedef struct dxf_segment
 {
 /* a DXF segment */
@@ -90,8 +92,6 @@ typedef struct dxf_rings_collection
 } dxfRingsCollection;
 typedef dxfRingsCollection *dxfRingsCollectionPtr;
 
-
-
 static gaiaDxfHatchSegmPtr
 alloc_dxf_hatch_segm (double x0, double y0, double x1, double y1)
 {
@@ -336,7 +336,7 @@ apply_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double angle,
 }
 
 static void
-create_dxf_hatch_lines (gaiaDxfHatchPtr hatch, int srid)
+create_dxf_hatch_lines (const void *p_cache, gaiaDxfHatchPtr hatch, int srid)
 {
 /* creating Pattern Hatch lines */
     gaiaDxfBoundaryPathPtr path;
@@ -386,8 +386,10 @@ create_dxf_hatch_lines (gaiaDxfHatchPtr hatch, int srid)
 	  path = path->next;
       }
 /* attempting to reassemble the Boundary */
-
-    result = gaiaPolygonize (geom, 0);
+    if (p_cache != NULL)
+	result = gaiaPolygonize_r (p_cache, geom, 0);
+    else
+	result = gaiaPolygonize (geom, 0);
     gaiaFreeGeomColl (geom);
     if (result == NULL)
 	return;
@@ -416,7 +418,10 @@ create_dxf_hatch_lines (gaiaDxfHatchPtr hatch, int srid)
 	apply_hatch (result, geom, angle, hatch->spacing, hatch->base_x,
 		     hatch->base_y);
     gaiaMbrGeometry (geom);
-    clipped = gaiaGeometryIntersection (geom, result);
+    if (p_cache != NULL)
+	clipped = gaiaGeometryIntersection_r (p_cache, geom, result);
+    else
+	clipped = gaiaGeometryIntersection (geom, result);
     gaiaFreeGeomColl (geom);
     if (clipped == NULL)
 	return;
@@ -482,7 +487,7 @@ destroy_dxf_hole (gaiaDxfHolePtr hole)
 }
 
 static void
-linked_rings (gaiaDxfPolylinePtr line)
+linked_rings (const void *p_cache, gaiaDxfPolylinePtr line)
 {
 /* attempt to identify linked Polygon rings */
     int i;
@@ -581,7 +586,10 @@ linked_rings (gaiaDxfPolylinePtr line)
     free (coll);
 
 /* attempting to reassemble a polygon */
-    result = gaiaPolygonize (geom, 0);
+    if (p_cache != NULL)
+	result = gaiaPolygonize_r (p_cache, geom, 0);
+    else
+	result = gaiaPolygonize (geom, 0);
     gaiaFreeGeomColl (geom);
     if (result == NULL)
 	return;
@@ -1246,7 +1254,7 @@ insert_dxf_ring (dxfRingsCollectionPtr coll, gaiaDxfPolylinePtr line, int start,
 }
 
 static void
-unlinked_rings (gaiaDxfPolylinePtr line)
+unlinked_rings (const void *p_cache, gaiaDxfPolylinePtr line)
 {
 /* attempt to identify unlinked Polygon rings */
     int invalid;
@@ -1331,7 +1339,10 @@ unlinked_rings (gaiaDxfPolylinePtr line)
     destroy_dxf_rings (coll);
 
 /* attempting to reassemble a polygon */
-    result = gaiaPolygonize (geom, 0);
+    if (p_cache != NULL)
+	result = gaiaPolygonize_r (p_cache, geom, 0);
+    else
+	result = gaiaPolygonize (geom, 0);
     gaiaFreeGeomColl (geom);
     if (result == NULL)
 	return;
@@ -1390,8 +1401,8 @@ unlinked_rings (gaiaDxfPolylinePtr line)
 }
 
 static void
-insert_dxf_polyline (gaiaDxfParserPtr dxf, const char *layer_name,
-		     gaiaDxfPolylinePtr ln)
+insert_dxf_polyline (const void *p_cache, gaiaDxfParserPtr dxf,
+		     const char *layer_name, gaiaDxfPolylinePtr ln)
 {
 /* inserting a POLYLINE object into the appropriate Layer */
     gaiaDxfLayerPtr lyr = dxf->first_layer;
@@ -1401,9 +1412,9 @@ insert_dxf_polyline (gaiaDxfParserPtr dxf, const char *layer_name,
 	    {
 		/* found the matching Layer */
 		if (dxf->linked_rings)
-		    linked_rings (ln);
+		    linked_rings (p_cache, ln);
 		if (dxf->unlinked_rings)
-		    unlinked_rings (ln);
+		    unlinked_rings (p_cache, ln);
 		if (ln->is_closed)
 		  {
 		      /* it's a Ring */
@@ -1454,13 +1465,14 @@ insert_dxf_polyline (gaiaDxfParserPtr dxf, const char *layer_name,
 }
 
 static void
-insert_dxf_block_polyline (gaiaDxfParserPtr dxf, gaiaDxfPolylinePtr ln)
+insert_dxf_block_polyline (const void *p_cache, gaiaDxfParserPtr dxf,
+			   gaiaDxfPolylinePtr ln)
 {
 /* inserting a POLYLINE object into the current Block */
     if (dxf->linked_rings)
-	linked_rings (ln);
+	linked_rings (p_cache, ln);
     if (dxf->unlinked_rings)
-	unlinked_rings (ln);
+	unlinked_rings (p_cache, ln);
     if (ln->is_closed)
       {
 	  /* it's a Ring */
@@ -1860,7 +1872,7 @@ set_dxf_vertex (gaiaDxfParserPtr dxf)
 }
 
 static void
-save_current_polyline (gaiaDxfParserPtr dxf)
+save_current_polyline (const void *p_cache, gaiaDxfParserPtr dxf)
 {
 /* saving the current Polyline */
     int points = 0;
@@ -1889,11 +1901,11 @@ save_current_polyline (gaiaDxfParserPtr dxf)
 	  pt = pt->next;
       }
     if (dxf->is_block)
-	insert_dxf_block_polyline (dxf, ln);
+	insert_dxf_block_polyline (p_cache, dxf, ln);
     else
       {
 	  force_missing_layer (dxf);
-	  insert_dxf_polyline (dxf, dxf->curr_layer_name, ln);
+	  insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln);
       }
     /* resetting the current polyline */
   clear:
@@ -1913,13 +1925,13 @@ save_current_polyline (gaiaDxfParserPtr dxf)
 }
 
 static void
-reset_dxf_polyline (gaiaDxfParserPtr dxf)
+reset_dxf_polyline (const void *p_cache, gaiaDxfParserPtr dxf)
 {
 /* resetting the current DXF polyline */
     if (dxf->is_polyline)
       {
 	  if (dxf->first_pt != NULL)
-	      save_current_polyline (dxf);
+	      save_current_polyline (p_cache, dxf);
 	  dxf->is_polyline = 0;
       }
 }
@@ -2016,7 +2028,7 @@ find_dxf_block (gaiaDxfParserPtr dxf, const char *layer_name,
 }
 
 static void
-save_current_circle (gaiaDxfParserPtr dxf)
+save_current_circle (const void *p_cache, gaiaDxfParserPtr dxf)
 {
 /* saving the current Circle */
     int iv;
@@ -2045,11 +2057,11 @@ save_current_circle (gaiaDxfParserPtr dxf)
 	  *(ln->z + iv) = dxf->curr_circle.cz;
       }
     if (dxf->is_block)
-	insert_dxf_block_polyline (dxf, ln);
+	insert_dxf_block_polyline (p_cache, dxf, ln);
     else
       {
 	  force_missing_layer (dxf);
-	  insert_dxf_polyline (dxf, dxf->curr_layer_name, ln);
+	  insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln);
       }
   stop:
     /* resetting curr_layer */
@@ -2061,7 +2073,7 @@ save_current_circle (gaiaDxfParserPtr dxf)
 }
 
 static void
-save_current_arc (gaiaDxfParserPtr dxf)
+save_current_arc (const void *p_cache, gaiaDxfParserPtr dxf)
 {
 /* saving the current Arc */
     int iv;
@@ -2090,11 +2102,11 @@ save_current_arc (gaiaDxfParserPtr dxf)
 	  *(ln->z + iv) = dxf->curr_arc.cz;
       }
     if (dxf->is_block)
-	insert_dxf_block_polyline (dxf, ln);
+	insert_dxf_block_polyline (p_cache, dxf, ln);
     else
       {
 	  force_missing_layer (dxf);
-	  insert_dxf_polyline (dxf, dxf->curr_layer_name, ln);
+	  insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln);
       }
   stop:
     /* resetting curr_layer */
@@ -2106,7 +2118,7 @@ save_current_arc (gaiaDxfParserPtr dxf)
 }
 
 static void
-reset_dxf_entity (gaiaDxfParserPtr dxf)
+reset_dxf_entity (const void *p_cache, gaiaDxfParserPtr dxf)
 {
 /* resetting the current DXF entity */
     gaiaDxfExtraAttrPtr ext;
@@ -2218,11 +2230,11 @@ reset_dxf_entity (gaiaDxfParserPtr dxf)
 			      dxf->curr_end_point.x, dxf->curr_end_point.y,
 			      dxf->curr_end_point.z);
 	  if (dxf->is_block)
-	      insert_dxf_block_polyline (dxf, ln);
+	      insert_dxf_block_polyline (p_cache, dxf, ln);
 	  else
 	    {
 		force_missing_layer (dxf);
-		insert_dxf_polyline (dxf, dxf->curr_layer_name, ln);
+		insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln);
 	    }
 	  /* resetting curr_line */
 	  dxf->curr_point.x = 0.0;
@@ -2244,7 +2256,8 @@ reset_dxf_entity (gaiaDxfParserPtr dxf)
 	    {
 		if (is_valid_dxf_hatch (dxf->curr_hatch))
 		  {
-		      create_dxf_hatch_lines (dxf->curr_hatch, dxf->srid);
+		      create_dxf_hatch_lines (p_cache, dxf->curr_hatch,
+					      dxf->srid);
 		      if (dxf->is_block)
 			  insert_dxf_block_hatch (dxf, dxf->curr_hatch);
 		      else
@@ -2316,13 +2329,13 @@ reset_dxf_entity (gaiaDxfParserPtr dxf)
     if (dxf->is_lwpolyline)
       {
 	  /* saving the current Polyline */
-	  save_current_polyline (dxf);
+	  save_current_polyline (p_cache, dxf);
 	  dxf->is_lwpolyline = 0;
       }
     if (dxf->is_circle)
       {
 	  /* saving the current Circle */
-	  save_current_circle (dxf);
+	  save_current_circle (p_cache, dxf);
 	  /* resetting curr_circle */
 	  dxf->curr_circle.cx = 0.0;
 	  dxf->curr_circle.cy = 0.0;
@@ -2337,7 +2350,7 @@ reset_dxf_entity (gaiaDxfParserPtr dxf)
     if (dxf->is_arc)
       {
 	  /* saving the current Arc */
-	  save_current_arc (dxf);
+	  save_current_arc (p_cache, dxf);
 	  /* resetting curr_arc */
 	  dxf->curr_arc.cx = 0.0;
 	  dxf->curr_arc.cy = 0.0;
@@ -2604,7 +2617,7 @@ op_code_line (const char *line)
 }
 
 static int
-parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
+parse_dxf_line (const void *p_cache, gaiaDxfParserPtr dxf, const char *line)
 {
 /* parsing a DXF line */
     dxf->line_no += 1;
@@ -2624,7 +2637,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
 		  }
 		dxf->op_code = atoi (line);
 		if (dxf->op_code == 0)
-		    reset_dxf_entity (dxf);
+		    reset_dxf_entity (p_cache, dxf);
 		dxf->op_code_line = 0;
 		return 1;
 	    }
@@ -2640,7 +2653,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "SECTION") == 0)
       {
 	  /* start SECTION tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->section)
 	    {
 		spatialite_e ("ERROR on line %d: unexpected SECTION\n",
@@ -2654,7 +2667,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "ENDSEC") == 0)
       {
 	  /* end SECTION tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (!dxf->section)
 	    {
 		spatialite_e ("ERROR on line %d: unexpected ENDSEC\n",
@@ -2672,7 +2685,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "TABLES") == 0)
       {
 	  /* start TABLES tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->section)
 	    {
 		dxf->tables = 1;
@@ -2683,7 +2696,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "BLOCKS") == 0)
       {
 	  /* start BLOCKS tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->section)
 	    {
 		dxf->blocks = 1;
@@ -2694,7 +2707,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "BLOCK") == 0)
       {
 	  /* start BLOCK tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->blocks)
 	    {
 		dxf->is_block = 1;
@@ -2705,7 +2718,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "ENDBLK") == 0)
       {
 	  /* end BLOCK tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->is_block)
 	    {
 		insert_dxf_block (dxf);
@@ -2717,7 +2730,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "ENTITIES") == 0)
       {
 	  /* start ENTITIES tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->section)
 	    {
 		dxf->entities = 1;
@@ -2728,7 +2741,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "LAYER") == 0)
       {
 	  /* start LAYER tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->tables && dxf->op_code == 0)
 	    {
 		dxf->is_layer = 1;
@@ -2738,7 +2751,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "INSERT") == 0)
       {
 	  /* start INSERT tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_insert = 1;
@@ -2748,7 +2761,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "INSERT") == 0)
       {
 	  /* start INSERT tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_insert = 1;
@@ -2758,7 +2771,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "TEXT") == 0)
       {
 	  /* start TEXT tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_text = 1;
@@ -2773,7 +2786,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "POINT") == 0)
       {
 	  /* start POINT tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_point = 1;
@@ -2788,7 +2801,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "POLYLINE") == 0)
       {
 	  /* start POLYLINE tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_polyline = 1;
@@ -2803,7 +2816,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "LWPOLYLINE") == 0)
       {
 	  /* start LWPOLYLINE tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_lwpolyline = 1;
@@ -2818,7 +2831,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "LINE") == 0)
       {
 	  /* start LINE tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_line = 1;
@@ -2833,7 +2846,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "CIRCLE") == 0)
       {
 	  /* start CIRCLE tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_circle = 1;
@@ -2848,7 +2861,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "ARC") == 0)
       {
 	  /* start ARC tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  if (dxf->entities && dxf->op_code == 0)
 	    {
 		dxf->is_arc = 1;
@@ -2886,7 +2899,7 @@ parse_dxf_line (gaiaDxfParserPtr dxf, const char *line)
     if (strcmp (line, "EOF") == 0)
       {
 	  /* end of file marker tag */
-	  reset_dxf_polyline (dxf);
+	  reset_dxf_polyline (p_cache, dxf);
 	  dxf->eof = 1;
 	  return 1;
       }
@@ -3419,8 +3432,9 @@ save_dxf_filename (gaiaDxfParserPtr dxf, const char *path)
       }
 }
 
-GAIAGEO_DECLARE int
-gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path)
+static int
+gaiaParseDxfFileCommon (const void *p_cache, gaiaDxfParserPtr dxf,
+			const char *path)
 {
 /* parsing the whole DXF file */
     int c;
@@ -3451,7 +3465,7 @@ gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path)
 	    {
 		/* end line found */
 		*p = '\0';
-		if (!parse_dxf_line (dxf, line))
+		if (!parse_dxf_line (p_cache, dxf, line))
 		    goto stop;
 		if (dxf->eof)
 		  {
@@ -3474,3 +3488,17 @@ gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path)
     fclose (fl);
     return 0;
 }
+
+GAIAGEO_DECLARE int
+gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path)
+{
+    return gaiaParseDxfFileCommon (NULL, dxf, path);
+}
+
+GAIAGEO_DECLARE int
+gaiaParseDxfFile_r (const void *p_cache, gaiaDxfParserPtr dxf, const char *path)
+{
+    return gaiaParseDxfFileCommon (p_cache, dxf, path);
+}
+
+#endif /* GEOS enabled */
diff --git a/src/dxf/dxf_private.h b/src/dxf/dxf_private.h
index 41c586e..515f2c6 100644
--- a/src/dxf/dxf_private.h
+++ b/src/dxf/dxf_private.h
@@ -185,6 +185,10 @@ extern "C"
 					char *extra_name,
 					sqlite3_stmt ** xstmt_ext);
 
+    DXF_PRIVATE int check_unclosed_polyg (gaiaDxfPolylinePtr pg, int is3d);
+
+    DXF_PRIVATE int check_unclosed_hole (gaiaDxfHolePtr hole, int is3d);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/dxf/dxf_writer.c b/src/dxf/dxf_writer.c
index f30aa91..4567d86 100644
--- a/src/dxf/dxf_writer.c
+++ b/src/dxf/dxf_writer.c
@@ -310,9 +310,14 @@ gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer, gaiaRingPtr ring)
     fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8,
 	     layer, 66, 1);
     fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 1);
-    for (iv = 0; iv < ring->Points; iv++)
+    for (iv = 0; iv < ring->Points - 1; iv++)
       {
-	  /* exporting all vertices */
+	  /* sandro 2013-10-19 
+	     exporting all vertices except the last one 
+	     because accordingly to DXF specifications the
+	     Ring closure is always implicitly assumed, so 
+	     there is no need at all to explicitly export
+	     a last vertex identical to the first one */
 	  if (ring->DimensionModel == GAIA_XY_Z)
 	    {
 		gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z);
diff --git a/src/gaiaaux/Makefile.am b/src/gaiaaux/Makefile.am
index acab16b..40e44dd 100644
--- a/src/gaiaaux/Makefile.am
+++ b/src/gaiaaux/Makefile.am
@@ -1,10 +1,19 @@
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libgaiaaux.la
+noinst_LTLIBRARIES = libgaiaaux.la gaiaaux.la
 
-libgaiaaux_la_SOURCES = gg_sqlaux.c \
-	gg_utf8.c
+GAIAAUX_COMMON_SOURCES = gg_sqlaux.c gg_utf8.c
+
+libgaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES)
+
+gaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES)
+
+gaiaaux_la_CPPFLAGS = @CFLAGS@
+gaiaaux_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+gaiaaux_la_CPPFLAGS += -DLOADABLE_EXTENSION
+gaiaaux_la_LDFLAGS = -module
+gaiaaux_la_LIBTOOLFLAGS = --tag=disable-static
 
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/gaiaaux/Makefile.in b/src/gaiaaux/Makefile.in
index a5840fa..3234ae0 100644
--- a/src/gaiaaux/Makefile.in
+++ b/src/gaiaaux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/gaiaaux
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -65,34 +93,85 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
+gaiaaux_la_LIBADD =
+am__objects_1 = gaiaaux_la-gg_sqlaux.lo gaiaaux_la-gg_utf8.lo
+am_gaiaaux_la_OBJECTS = $(am__objects_1)
+gaiaaux_la_OBJECTS = $(am_gaiaaux_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+gaiaaux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(gaiaaux_la_LDFLAGS) $(LDFLAGS) -o $@
 libgaiaaux_la_LIBADD =
-am_libgaiaaux_la_OBJECTS = gg_sqlaux.lo gg_utf8.lo
+am__objects_2 = gg_sqlaux.lo gg_utf8.lo
+am_libgaiaaux_la_OBJECTS = $(am__objects_2)
 libgaiaaux_la_OBJECTS = $(am_libgaiaaux_la_OBJECTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libgaiaaux_la_SOURCES)
-DIST_SOURCES = $(libgaiaaux_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(gaiaaux_la_SOURCES) $(libgaiaaux_la_SOURCES)
+DIST_SOURCES = $(gaiaaux_la_SOURCES) $(libgaiaaux_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -219,11 +298,15 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libgaiaaux.la
-libgaiaaux_la_SOURCES = gg_sqlaux.c \
-	gg_utf8.c
-
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libgaiaaux.la gaiaaux.la
+GAIAAUX_COMMON_SOURCES = gg_sqlaux.c gg_utf8.c
+libgaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES)
+gaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES)
+gaiaaux_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+gaiaaux_la_LDFLAGS = -module
+gaiaaux_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -270,8 +353,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
+gaiaaux.la: $(gaiaaux_la_OBJECTS) $(gaiaaux_la_DEPENDENCIES) $(EXTRA_gaiaaux_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(gaiaaux_la_LINK)  $(gaiaaux_la_OBJECTS) $(gaiaaux_la_LIBADD) $(LIBS)
+
 libgaiaaux.la: $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_DEPENDENCIES) $(EXTRA_libgaiaaux_la_DEPENDENCIES) 
-	$(LINK)  $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -279,29 +366,45 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiaaux_la-gg_sqlaux.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiaaux_la-gg_utf8.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_sqlaux.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_utf8.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+gaiaaux_la-gg_sqlaux.lo: gg_sqlaux.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaaux_la-gg_sqlaux.lo -MD -MP -MF $(DEPDIR)/gaiaaux_la-gg_sqlaux.Tpo -c -o gaiaaux_la-gg_sqlaux.lo `test -f 'gg_sqlaux.c' || echo '$(srcdir)/'`gg_sqlaux.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiaaux_la-gg_sqlaux.Tpo $(DEPDIR)/gaiaaux_la-gg_sqlaux.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_sqlaux.c' object='gaiaaux_la-gg_sqlaux.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaaux_la-gg_sqlaux.lo `test -f 'gg_sqlaux.c' || echo '$(srcdir)/'`gg_sqlaux.c
+
+gaiaaux_la-gg_utf8.lo: gg_utf8.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaaux_la-gg_utf8.lo -MD -MP -MF $(DEPDIR)/gaiaaux_la-gg_utf8.Tpo -c -o gaiaaux_la-gg_utf8.lo `test -f 'gg_utf8.c' || echo '$(srcdir)/'`gg_utf8.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiaaux_la-gg_utf8.Tpo $(DEPDIR)/gaiaaux_la-gg_utf8.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_utf8.c' object='gaiaaux_la-gg_utf8.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaaux_la-gg_utf8.lo `test -f 'gg_utf8.c' || echo '$(srcdir)/'`gg_utf8.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -309,26 +412,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -340,15 +432,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -357,9 +445,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -513,9 +602,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -525,7 +614,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/gaiaaux/gg_sqlaux.c b/src/gaiaaux/gg_sqlaux.c
index ea4d09d..471d237 100644
--- a/src/gaiaaux/gg_sqlaux.c
+++ b/src/gaiaaux/gg_sqlaux.c
@@ -47,6 +47,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <math.h>
 
 #if defined(_WIN32) && !defined(__MINGW32__)
 #include "config-msvc.h"
@@ -801,3 +802,399 @@ gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success,
     sqlite3_exec (sqlite, sql_statement, NULL, 0, NULL);
     sqlite3_free (sql_statement);
 }
+
+static void
+consume_blank (const char *p_start, const char **p_end)
+{
+/* consuming blanks */
+    const char *p = p_start;
+    while (1)
+      {
+	  if (*p == ' ' || *p == '\t')
+	    {
+		p++;
+		continue;
+	    }
+	  else
+	    {
+		*p_end = p;
+		return;
+	    }
+      }
+}
+
+static int
+check_deg_delimiter (const char *p_start, const char **p_end)
+{
+/* testing a "degrees" delimiter/qualifier */
+    unsigned char ctrl1;
+    unsigned char ctrl2;
+    if (*p_start == 'd')
+      {
+	  *p_end = p_start + 1;
+	  return 1;
+      }
+    ctrl1 = *(p_start + 0);
+    ctrl2 = *(p_start + 1);
+    if (ctrl1 == 0xc2 && ctrl2 == 0xb0)
+      {
+	  *p_end = p_start + 2;
+	  return 1;
+      }
+    return 0;
+}
+
+static int
+check_min_delimiter (const char *p_start, const char **p_end)
+{
+/* testing a "minutes" delimiter/qualifier */
+    unsigned char ctrl1;
+    unsigned char ctrl2;
+    unsigned char ctrl3;
+    if (*p_start == '\'')
+      {
+	  *p_end = p_start + 1;
+	  return 1;
+      }
+    ctrl1 = *(p_start + 0);
+    ctrl2 = *(p_start + 1);
+    ctrl3 = *(p_start + 2);
+    if (ctrl1 == 0xe2 && ctrl2 == 0x80 && ctrl3 == 0xb2)
+      {
+	  *p_end = p_start + 3;
+	  return 1;
+      }
+    return 0;
+}
+
+static int
+check_sec_delimiter (const char *p_start, const char **p_end)
+{
+/* testing a "seconds" delimiter/qualifier */
+    unsigned char ctrl1;
+    unsigned char ctrl2;
+    unsigned char ctrl3;
+    if (*p_start == '"')
+      {
+	  *p_end = p_start + 1;
+	  return 1;
+      }
+    ctrl1 = *(p_start + 0);
+    ctrl2 = *(p_start + 1);
+    ctrl3 = *(p_start + 2);
+    if (ctrl1 == 0xe2 && ctrl2 == 0x80 && ctrl3 == 0xb3)
+      {
+	  *p_end = p_start + 3;
+	  return 1;
+      }
+    return 0;
+}
+
+static void
+consume_int (const char *p_start, const char **p_end, int *value)
+{
+/* consuming an integer value */
+    char *buf;
+    int len = 0;
+    const char *p = p_start;
+    while (1)
+      {
+	  if (*p >= '0' && *p <= '9')
+	    {
+		len++;
+		p++;
+		continue;
+	    }
+	  else
+	    {
+		*p_end = p;
+		break;
+	    }
+      }
+    if (len == 0)
+      {
+	  *value = 181;
+	  return;
+      }
+    buf = malloc (len + 1);
+    memcpy (buf, p_start, len);
+    *(buf + len) = '\0';
+    *value = atoi (buf);
+    free (buf);
+}
+
+static void
+consume_float (const char *p_start, const char **p_end, double *value)
+{
+/* consuming a double value */
+    char *buf;
+    int pt = 0;
+    int len = 0;
+    const char *p = p_start;
+    while (1)
+      {
+	  if (*p >= '0' && *p <= '9')
+	    {
+		len++;
+		p++;
+		continue;
+	    }
+	  else if (*p == '.' || *p == ',')
+	    {
+		len++;
+		pt++;
+		p++;
+		continue;
+	    }
+	  else
+	    {
+		*p_end = p;
+		break;
+	    }
+      }
+    if (len == 0 || pt > 1)
+      {
+	  *value = 61.0;
+	  return;
+      }
+    buf = malloc (len + 1);
+    memcpy (buf, p_start, len);
+    *(buf + len) = '\0';
+    *value = atof (buf);
+    free (buf);
+}
+
+GAIAAUX_DECLARE int
+gaiaParseDMS (const char *dms, double *longitude, double *latitude)
+{
+/* attempting to parse a DMS string */
+    double lg;
+    double lt;
+    int lat_d;
+    int lat_m;
+    double lat_s;
+    char lat_prefix = '\0';
+    int long_d;
+    int long_m;
+    double long_s;
+    char long_prefix = '\0';
+    const char *p = dms;
+    const char *p_end;
+    if (dms == NULL)
+	return 0;
+
+/* attempting to parse the latitude */
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (*p == 'S' || *p == 'N')
+      {
+	  lat_prefix = *p;
+	  p++;
+	  consume_blank (p, &p_end);
+	  p = p_end;
+      }
+    if (*p >= '0' && *p <= '9')
+      {
+	  consume_int (p, &p_end, &lat_d);
+	  if (lat_d < 0 && lat_d > 90)
+	      return 0;
+	  p = p_end;
+      }
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (check_deg_delimiter (p, &p_end))
+	p = p_end;
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (*p >= '0' && *p <= '9')
+      {
+	  consume_int (p, &p_end, &lat_m);
+	  if (lat_m < 0 && lat_m >= 60)
+	      return 0;
+	  p = p_end;
+      }
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (check_min_delimiter (p, &p_end))
+	p = p_end;
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (*p >= '0' && *p <= '9')
+      {
+	  consume_float (p, &p_end, &lat_s);
+	  if (lat_s < 0.0 && lat_s >= 60.0)
+	      return 0;
+	  p = p_end;
+      }
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (check_sec_delimiter (p, &p_end))
+	p = p_end;
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (lat_prefix == '\0')
+      {
+	  /* attempting to retrieve the prefix */
+	  if (*p == 'S' || *p == 'N')
+	    {
+		lat_prefix = *p;
+		p++;
+	    }
+	  else
+	      return 0;
+      }
+    lt = (double) lat_d + ((double) lat_m / 60.0) + (lat_s / 3600.0);
+    if (lat_prefix == 'S')
+	lt *= -1.0;
+    if (lt < -90.0 || lt > 90.0)
+	return 0;
+
+/* attempting to parse the longitude */
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (*p == 'E' || *p == 'W')
+      {
+	  long_prefix = *p;
+	  p++;
+	  consume_blank (p, &p_end);
+	  p = p_end;
+      }
+    if (*p >= '0' && *p <= '9')
+      {
+	  consume_int (p, &p_end, &long_d);
+	  if (long_d < 0 && long_d > 90)
+	      return 0;
+	  p = p_end;
+      }
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (check_deg_delimiter (p, &p_end))
+	p = p_end;
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (*p >= '0' && *p <= '9')
+      {
+	  consume_int (p, &p_end, &long_m);
+	  if (long_m < 0 && long_m >= 60)
+	      return 0;
+	  p = p_end;
+      }
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (check_min_delimiter (p, &p_end))
+	p = p_end;
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (*p >= '0' && *p <= '9')
+      {
+	  consume_float (p, &p_end, &long_s);
+	  if (long_s < 0.0 && long_s >= 60.0)
+	      return 0;
+	  p = p_end;
+      }
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (check_sec_delimiter (p, &p_end))
+	p = p_end;
+    else
+	return 0;
+    consume_blank (p, &p_end);
+    p = p_end;
+    if (long_prefix == '\0')
+      {
+	  /* attempting to retrieve the prefix */
+	  if (*p == 'E' || *p == 'W')
+	    {
+		long_prefix = *p;
+		p++;
+	    }
+	  else
+	      return 0;
+      }
+    lg = (double) long_d + ((double) long_m / 60.0) + (long_s / 3600.0);
+    if (long_prefix == 'W')
+	lg *= -1.0;
+    if (lg < -180.0 || lg > 180.0)
+	return 0;
+
+    *longitude = lg;
+    *latitude = lt;
+    return 1;
+}
+
+GAIAAUX_DECLARE char *
+gaiaConvertToDMS (double longitude, double latitude)
+{
+/* formatting a DMS string */
+    char *dms0;
+    char *dms;
+    char long_prefix = 'E';
+    char lat_prefix = 'N';
+    int long_d;
+    int long_m;
+    int long_s;
+    int lat_d;
+    int lat_m;
+    int lat_s;
+    double val;
+    int len;
+    if (longitude < -180.0 || longitude > 180.0)
+	return NULL;
+    if (latitude < -90.0 || latitude > 90.0)
+	return NULL;
+    if (longitude < 0.0)
+      {
+	  long_prefix = 'W';
+	  longitude *= -1.0;
+      }
+    if (latitude < 0.0)
+      {
+	  lat_prefix = 'S';
+	  latitude *= -1.0;
+      }
+    long_d = floor (longitude);
+    val = 60.0 * (longitude - (double) long_d);
+    long_m = floor (val);
+    val = 60.0 * (val - (double) long_m);
+    long_s = floor (val);
+    if ((val - (double) long_s) > 0.5)
+	long_s++;
+    lat_d = floor (latitude);
+    val = 60.0 * (latitude - (double) lat_d);
+    lat_m = floor (val);
+    val = 60.0 * (val - (double) lat_m);
+    lat_s = floor (val);
+    if ((val - (double) lat_s) > 0.5)
+	lat_s++;
+    dms0 =
+	sqlite3_mprintf ("%02d°%02d′%02d″%c %03d°%02d′%02d″%c", lat_d,
+			 lat_m, lat_s, lat_prefix, long_d, long_m, long_s,
+			 long_prefix);
+    len = strlen (dms0);
+    dms = malloc (len + 1);
+    strcpy (dms, dms0);
+    sqlite3_free (dms0);
+    return dms;
+}
diff --git a/src/gaiaexif/Makefile.am b/src/gaiaexif/Makefile.am
index 9e48153..10ab8b9 100644
--- a/src/gaiaexif/Makefile.am
+++ b/src/gaiaexif/Makefile.am
@@ -1,9 +1,17 @@
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libgaiaexif.la
+noinst_LTLIBRARIES = libgaiaexif.la gaiaexif.la
 
 libgaiaexif_la_SOURCES = gaia_exif.c
 
+gaiaexif_la_SOURCES = gaia_exif.c
+
+gaiaexif_la_CPPFLAGS = @CFLAGS@
+gaiaexif_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+gaiaexif_la_CPPFLAGS += -DLOADABLE_EXTENSION
+gaiaexif_la_LDFLAGS = -module
+gaiaexif_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/gaiaexif/Makefile.in b/src/gaiaexif/Makefile.in
index 154aaf8..b5587cd 100644
--- a/src/gaiaexif/Makefile.in
+++ b/src/gaiaexif/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/gaiaexif
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -65,34 +93,84 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
+gaiaexif_la_LIBADD =
+am_gaiaexif_la_OBJECTS = gaiaexif_la-gaia_exif.lo
+gaiaexif_la_OBJECTS = $(am_gaiaexif_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+gaiaexif_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(gaiaexif_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
 libgaiaexif_la_LIBADD =
 am_libgaiaexif_la_OBJECTS = gaia_exif.lo
 libgaiaexif_la_OBJECTS = $(am_libgaiaexif_la_OBJECTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libgaiaexif_la_SOURCES)
-DIST_SOURCES = $(libgaiaexif_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(gaiaexif_la_SOURCES) $(libgaiaexif_la_SOURCES)
+DIST_SOURCES = $(gaiaexif_la_SOURCES) $(libgaiaexif_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -219,9 +297,14 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libgaiaexif.la
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libgaiaexif.la gaiaexif.la
 libgaiaexif_la_SOURCES = gaia_exif.c
+gaiaexif_la_SOURCES = gaia_exif.c
+gaiaexif_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+gaiaexif_la_LDFLAGS = -module
+gaiaexif_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -268,8 +351,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
+gaiaexif.la: $(gaiaexif_la_OBJECTS) $(gaiaexif_la_DEPENDENCIES) $(EXTRA_gaiaexif_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(gaiaexif_la_LINK)  $(gaiaexif_la_OBJECTS) $(gaiaexif_la_LIBADD) $(LIBS)
+
 libgaiaexif.la: $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_DEPENDENCIES) $(EXTRA_libgaiaexif_la_DEPENDENCIES) 
-	$(LINK)  $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -278,27 +365,35 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaia_exif.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiaexif_la-gaia_exif.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+gaiaexif_la-gaia_exif.lo: gaia_exif.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaexif_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaexif_la-gaia_exif.lo -MD -MP -MF $(DEPDIR)/gaiaexif_la-gaia_exif.Tpo -c -o gaiaexif_la-gaia_exif.lo `test -f 'gaia_exif.c' || echo '$(srcdir)/'`gaia_exif.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiaexif_la-gaia_exif.Tpo $(DEPDIR)/gaiaexif_la-gaia_exif.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gaia_exif.c' object='gaiaexif_la-gaia_exif.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaexif_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaexif_la-gaia_exif.lo `test -f 'gaia_exif.c' || echo '$(srcdir)/'`gaia_exif.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -306,26 +401,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -337,15 +421,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -354,9 +434,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -510,9 +591,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -522,7 +603,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/gaiaexif/gaia_exif.c b/src/gaiaexif/gaia_exif.c
index 5518046..c15e079 100644
--- a/src/gaiaexif/gaia_exif.c
+++ b/src/gaiaexif/gaia_exif.c
@@ -2524,6 +2524,13 @@ gaiaGuessBlobType (const unsigned char *blob, int size)
 
 #endif /* end LIBXML2: supporting XML documents */
 
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+
+    if (gaiaIsValidGPB (blob, size))
+	return GAIA_GPB_BLOB;
+
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+
     return GAIA_HEX_BLOB;
 }
 
diff --git a/src/gaiageo/Ewkt.c b/src/gaiageo/Ewkt.c
index 2d85426..540dfcc 100644
--- a/src/gaiageo/Ewkt.c
+++ b/src/gaiageo/Ewkt.c
@@ -513,9 +513,9 @@ static const char *const yyTokenName[] = {
     "EWKT_CLOSE_BRACKET", "EWKT_POINT_M", "EWKT_NUM", "EWKT_COMMA",
     "EWKT_LINESTRING", "EWKT_LINESTRING_M", "EWKT_POLYGON", "EWKT_POLYGON_M",
     "EWKT_MULTIPOINT", "EWKT_MULTIPOINT_M", "EWKT_MULTILINESTRING",
-	"EWKT_MULTILINESTRING_M",
+    "EWKT_MULTILINESTRING_M",
     "EWKT_MULTIPOLYGON", "EWKT_MULTIPOLYGON_M", "EWKT_GEOMETRYCOLLECTION",
-	"EWKT_GEOMETRYCOLLECTION_M",
+    "EWKT_GEOMETRYCOLLECTION_M",
     "error", "main", "in", "state",
     "program", "geo_text", "geo_textm", "point",
     "pointz", "pointzm", "linestring", "linestringz",
@@ -527,25 +527,25 @@ static const char *const yyTokenName[] = {
     "multilinestringm", "multipolygonm", "geocollm", "point_coordxy",
     "point_coordxyz", "point_coordxym", "point_coordxyzm", "point_brkt_coordxy",
     "coord", "point_brkt_coordxym", "point_brkt_coordxyz",
-	"point_brkt_coordxyzm",
+    "point_brkt_coordxyzm",
     "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz",
-	"extra_brkt_pointsxyzm",
+    "extra_brkt_pointsxyzm",
     "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm",
     "linestring_text", "linestring_textm", "linestring_textz",
-	"linestring_textzm",
+    "linestring_textzm",
     "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm",
     "ring", "extra_rings", "ringm", "extra_ringsm",
     "ringz", "extra_ringsz", "ringzm", "extra_ringszm",
     "multipoint_text", "multipoint_textm", "multipoint_textz",
-	"multipoint_textzm",
+    "multipoint_textzm",
     "multilinestring_text", "multilinestring_textm", "multilinestring_textz",
-	"multilinestring_textzm",
+    "multilinestring_textzm",
     "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2",
-	"multilinestring_textzm2",
+    "multilinestring_textzm2",
     "multipolygon_text", "multipolygon_textm", "multipolygon_textz",
-	"multipolygon_textzm",
+    "multipolygon_textzm",
     "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2",
-	"multipolygon_textzm2",
+    "multipolygon_textzm2",
     "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm",
     "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2",
 };
@@ -590,21 +590,21 @@ static const char *const yyRuleName[] = {
     /*  32 */ "geo_textm ::= multipolygonm",
     /*  33 */ "geo_textm ::= geocollm",
     /*  34 */
-	"point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET",
+    "point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET",
     /*  35 */
-	"pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET",
+    "pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET",
     /*  36 */
-	"pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET",
+    "pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET",
     /*  37 */
-	"pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET",
+    "pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET",
     /*  38 */
-	"point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET",
+    "point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET",
     /*  39 */
-	"point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET",
+    "point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET",
     /*  40 */
-	"point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET",
+    "point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET",
     /*  41 */
-	"point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET",
+    "point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET",
     /*  42 */ "point_coordxy ::= coord coord",
     /*  43 */ "point_coordxym ::= coord coord coord",
     /*  44 */ "point_coordxyz ::= coord coord coord",
@@ -612,16 +612,16 @@ static const char *const yyRuleName[] = {
     /*  46 */ "coord ::= EWKT_NUM",
     /*  47 */ "extra_brkt_pointsxy ::=",
     /*  48 */
-	"extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy",
+    "extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy",
     /*  49 */ "extra_brkt_pointsxym ::=",
     /*  50 */
-	"extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym",
+    "extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym",
     /*  51 */ "extra_brkt_pointsxyz ::=",
     /*  52 */
-	"extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz",
+    "extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz",
     /*  53 */ "extra_brkt_pointsxyzm ::=",
     /*  54 */
-	"extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm",
+    "extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm",
     /*  55 */ "extra_pointsxy ::=",
     /*  56 */ "extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy",
     /*  57 */ "extra_pointsxym ::=",
@@ -630,45 +630,45 @@ static const char *const yyRuleName[] = {
     /*  60 */ "extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz",
     /*  61 */ "extra_pointsxyzm ::=",
     /*  62 */
-	"extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm",
+    "extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm",
     /*  63 */ "linestring ::= EWKT_LINESTRING linestring_text",
     /*  64 */ "linestringm ::= EWKT_LINESTRING_M linestring_textm",
     /*  65 */ "linestringz ::= EWKT_LINESTRING linestring_textz",
     /*  66 */ "linestringzm ::= EWKT_LINESTRING linestring_textzm",
     /*  67 */
-	"linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
+    "linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
     /*  68 */
-	"linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
+    "linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
     /*  69 */
-	"linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
+    "linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
     /*  70 */
-	"linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
+    "linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
     /*  71 */ "polygon ::= EWKT_POLYGON polygon_text",
     /*  72 */ "polygonm ::= EWKT_POLYGON_M polygon_textm",
     /*  73 */ "polygonz ::= EWKT_POLYGON polygon_textz",
     /*  74 */ "polygonzm ::= EWKT_POLYGON polygon_textzm",
     /*  75 */
-	"polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET",
+    "polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET",
     /*  76 */
-	"polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET",
+    "polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET",
     /*  77 */
-	"polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET",
+    "polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET",
     /*  78 */
-	"polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET",
+    "polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET",
     /*  79 */
-	"ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
+    "ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
     /*  80 */ "extra_rings ::=",
     /*  81 */ "extra_rings ::= EWKT_COMMA ring extra_rings",
     /*  82 */
-	"ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
+    "ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
     /*  83 */ "extra_ringsm ::=",
     /*  84 */ "extra_ringsm ::= EWKT_COMMA ringm extra_ringsm",
     /*  85 */
-	"ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
+    "ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
     /*  86 */ "extra_ringsz ::=",
     /*  87 */ "extra_ringsz ::= EWKT_COMMA ringz extra_ringsz",
     /*  88 */
-	"ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
+    "ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
     /*  89 */ "extra_ringszm ::=",
     /*  90 */ "extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm",
     /*  91 */ "multipoint ::= EWKT_MULTIPOINT multipoint_text",
@@ -676,89 +676,89 @@ static const char *const yyRuleName[] = {
     /*  93 */ "multipointz ::= EWKT_MULTIPOINT multipoint_textz",
     /*  94 */ "multipointzm ::= EWKT_MULTIPOINT multipoint_textzm",
     /*  95 */
-	"multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
+    "multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
     /*  96 */
-	"multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
+    "multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
     /*  97 */
-	"multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
+    "multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
     /*  98 */
-	"multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
+    "multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
     /*  99 */
-	"multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET",
+    "multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET",
     /* 100 */
-	"multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET",
+    "multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET",
     /* 101 */
-	"multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET",
+    "multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET",
     /* 102 */
-	"multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET",
+    "multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET",
     /* 103 */ "multilinestring ::= EWKT_MULTILINESTRING multilinestring_text",
     /* 104 */
-	"multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm",
+    "multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm",
     /* 105 */ "multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz",
     /* 106 */
-	"multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm",
+    "multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm",
     /* 107 */
-	"multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET",
+    "multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET",
     /* 108 */ "multilinestring_text2 ::=",
     /* 109 */
-	"multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2",
+    "multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2",
     /* 110 */
-	"multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET",
+    "multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET",
     /* 111 */ "multilinestring_textm2 ::=",
     /* 112 */
-	"multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2",
+    "multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2",
     /* 113 */
-	"multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET",
+    "multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET",
     /* 114 */ "multilinestring_textz2 ::=",
     /* 115 */
-	"multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2",
+    "multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2",
     /* 116 */
-	"multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET",
+    "multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET",
     /* 117 */ "multilinestring_textzm2 ::=",
     /* 118 */
-	"multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2",
+    "multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2",
     /* 119 */ "multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text",
     /* 120 */ "multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm",
     /* 121 */ "multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz",
     /* 122 */ "multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm",
     /* 123 */
-	"multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET",
+    "multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET",
     /* 124 */ "multipolygon_text2 ::=",
     /* 125 */
-	"multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2",
+    "multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2",
     /* 126 */
-	"multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET",
+    "multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET",
     /* 127 */ "multipolygon_textm2 ::=",
     /* 128 */
-	"multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2",
+    "multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2",
     /* 129 */
-	"multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET",
+    "multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET",
     /* 130 */ "multipolygon_textz2 ::=",
     /* 131 */
-	"multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2",
+    "multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2",
     /* 132 */
-	"multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET",
+    "multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET",
     /* 133 */ "multipolygon_textzm2 ::=",
     /* 134 */
-	"multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2",
+    "multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2",
     /* 135 */ "geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text",
     /* 136 */ "geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm",
     /* 137 */ "geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz",
     /* 138 */ "geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm",
     /* 139 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 140 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 141 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 142 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 143 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 144 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 145 */
-	"geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET",
+    "geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET",
     /* 146 */ "geocoll_text2 ::=",
     /* 147 */ "geocoll_text2 ::= EWKT_COMMA point geocoll_text2",
     /* 148 */ "geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2",
@@ -767,21 +767,21 @@ static const char *const yyRuleName[] = {
     /* 151 */ "geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2",
     /* 152 */ "geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2",
     /* 153 */
-	"geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2",
+    "geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2",
     /* 154 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 155 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 156 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 157 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 158 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 159 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 160 */
-	"geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET",
     /* 161 */ "geocoll_textm2 ::=",
     /* 162 */ "geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2",
     /* 163 */ "geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2",
@@ -790,21 +790,21 @@ static const char *const yyRuleName[] = {
     /* 166 */ "geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2",
     /* 167 */ "geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2",
     /* 168 */
-	"geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2",
+    "geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2",
     /* 169 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 170 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 171 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 172 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 173 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 174 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 175 */
-	"geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET",
+    "geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET",
     /* 176 */ "geocoll_textz2 ::=",
     /* 177 */ "geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2",
     /* 178 */ "geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2",
@@ -813,31 +813,31 @@ static const char *const yyRuleName[] = {
     /* 181 */ "geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2",
     /* 182 */ "geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2",
     /* 183 */
-	"geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2",
+    "geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2",
     /* 184 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 185 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 186 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 187 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 188 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 189 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 190 */
-	"geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
+    "geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
     /* 191 */ "geocoll_textzm2 ::=",
     /* 192 */ "geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2",
     /* 193 */ "geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2",
     /* 194 */ "geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2",
     /* 195 */ "geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2",
     /* 196 */
-	"geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2",
+    "geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2",
     /* 197 */ "geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2",
     /* 198 */
-	"geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2",
+    "geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2",
 };
 #endif /* NDEBUG */
 
@@ -1914,8 +1914,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  ewkt_buildGeomFromLinestring (p_data,
-						(gaiaLinestringPtr) yymsp[0].
-						minor.yy0);
+						(gaiaLinestringPtr)
+						yymsp[0].minor.yy0);
 	  }
 	  break;
       case 67:			/* linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */
@@ -2197,8 +2197,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) ewkt_multipolygon_xy (p_data,
-						 (gaiaPolygonPtr) yymsp[-2].
-						 minor.yy0);
+						 (gaiaPolygonPtr)
+						 yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 125:		/* multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2 */
@@ -2220,8 +2220,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) ewkt_multipolygon_xym (p_data,
-						  (gaiaPolygonPtr) yymsp[-2].
-						  minor.yy0);
+						  (gaiaPolygonPtr)
+						  yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 129:		/* multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET */
@@ -2230,8 +2230,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) ewkt_multipolygon_xyz (p_data,
-						  (gaiaPolygonPtr) yymsp[-2].
-						  minor.yy0);
+						  (gaiaPolygonPtr)
+						  yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 132:		/* multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET */
@@ -2240,8 +2240,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) ewkt_multipolygon_xyzm (p_data,
-						   (gaiaPolygonPtr) yymsp[-2].
-						   minor.yy0);
+						   (gaiaPolygonPtr)
+						   yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 139:		/* geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET */
@@ -2389,8 +2389,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) ewkt_geomColl_xyzm (p_data,
-					       (gaiaGeomCollPtr) yymsp[-2].
-					       minor.yy0);
+					       (gaiaGeomCollPtr)
+					       yymsp[-2].minor.yy0);
 	  }
 	  break;
       default:
@@ -2632,9 +2632,8 @@ Parse (void *yyp,		/* The parser */
 		      while (yypParser->yyidx >= 0 &&
 			     yymx != YYERRORSYMBOL &&
 			     (yyact =
-			      yy_find_reduce_action (yypParser->
-						     yystack[yypParser->yyidx].
-						     stateno,
+			      yy_find_reduce_action (yypParser->yystack
+						     [yypParser->yyidx].stateno,
 						     YYERRORSYMBOL)) >=
 			     YYNSTATE)
 			{
diff --git a/src/gaiageo/Gml.c b/src/gaiageo/Gml.c
index 2e76f61..9a3daa5 100644
--- a/src/gaiageo/Gml.c
+++ b/src/gaiageo/Gml.c
@@ -1194,9 +1194,8 @@ Parse (void *yyp,		/* The parser */
 		      while (yypParser->yyidx >= 0 &&
 			     yymx != YYERRORSYMBOL &&
 			     (yyact =
-			      yy_find_reduce_action (yypParser->
-						     yystack[yypParser->yyidx].
-						     stateno,
+			      yy_find_reduce_action (yypParser->yystack
+						     [yypParser->yyidx].stateno,
 						     YYERRORSYMBOL)) >=
 			     YYNSTATE)
 			{
diff --git a/src/gaiageo/Kml.c b/src/gaiageo/Kml.c
index 9e06fb2..fc425be 100644
--- a/src/gaiageo/Kml.c
+++ b/src/gaiageo/Kml.c
@@ -1194,9 +1194,8 @@ Parse (void *yyp,		/* The parser */
 		      while (yypParser->yyidx >= 0 &&
 			     yymx != YYERRORSYMBOL &&
 			     (yyact =
-			      yy_find_reduce_action (yypParser->
-						     yystack[yypParser->yyidx].
-						     stateno,
+			      yy_find_reduce_action (yypParser->yystack
+						     [yypParser->yyidx].stateno,
 						     YYERRORSYMBOL)) >=
 			     YYNSTATE)
 			{
diff --git a/src/gaiageo/Makefile.am b/src/gaiageo/Makefile.am
index 8affcba..7020fb7 100644
--- a/src/gaiageo/Makefile.am
+++ b/src/gaiageo/Makefile.am
@@ -1,17 +1,18 @@
 
 SUBDIRS = flex lemon
 
-INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libgaiageo.la
+noinst_LTLIBRARIES = libgaiageo.la gaiageo.la
 
-libgaiageo_la_SOURCES = gg_advanced.c \
+GAIAGEO_COMMON_SOURCES = gg_advanced.c \
 	gg_endian.c \
 	gg_geodesic.c \
 	gg_geometries.c \
 	gg_geoscvt.c \
 	gg_relations.c \
+	gg_relations_ext.c \
 	gg_lwgeom.c \
 	gg_extras.c \
 	gg_shape.c \
@@ -24,7 +25,17 @@ libgaiageo_la_SOURCES = gg_advanced.c \
 	gg_kml.c \
 	gg_gml.c \
 	gg_voronoj.c \
-	gg_xml.c
+	gg_xml.c 
+
+libgaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES)
+
+gaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES)
+
+gaiageo_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
+gaiageo_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+gaiageo_la_CPPFLAGS += -DLOADABLE_EXTENSION
+gaiageo_la_LDFLAGS = -module
+gaiageo_la_LIBTOOLFLAGS = --tag=disable-static
 
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 
diff --git a/src/gaiageo/Makefile.in b/src/gaiageo/Makefile.in
index d761e42..5005e65 100644
--- a/src/gaiageo/Makefile.in
+++ b/src/gaiageo/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/gaiageo
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -65,35 +93,78 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
+gaiageo_la_LIBADD =
+am__objects_1 = gaiageo_la-gg_advanced.lo gaiageo_la-gg_endian.lo \
+	gaiageo_la-gg_geodesic.lo gaiageo_la-gg_geometries.lo \
+	gaiageo_la-gg_geoscvt.lo gaiageo_la-gg_relations.lo \
+	gaiageo_la-gg_relations_ext.lo gaiageo_la-gg_lwgeom.lo \
+	gaiageo_la-gg_extras.lo gaiageo_la-gg_shape.lo \
+	gaiageo_la-gg_transform.lo gaiageo_la-gg_wkb.lo \
+	gaiageo_la-gg_wkt.lo gaiageo_la-gg_vanuatu.lo \
+	gaiageo_la-gg_ewkt.lo gaiageo_la-gg_geoJSON.lo \
+	gaiageo_la-gg_kml.lo gaiageo_la-gg_gml.lo \
+	gaiageo_la-gg_voronoj.lo gaiageo_la-gg_xml.lo
+am_gaiageo_la_OBJECTS = $(am__objects_1)
+gaiageo_la_OBJECTS = $(am_gaiageo_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+gaiageo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(gaiageo_la_LDFLAGS) $(LDFLAGS) -o $@
 libgaiageo_la_LIBADD =
-am_libgaiageo_la_OBJECTS = gg_advanced.lo gg_endian.lo gg_geodesic.lo \
-	gg_geometries.lo gg_geoscvt.lo gg_relations.lo gg_lwgeom.lo \
-	gg_extras.lo gg_shape.lo gg_transform.lo gg_wkb.lo gg_wkt.lo \
-	gg_vanuatu.lo gg_ewkt.lo gg_geoJSON.lo gg_kml.lo gg_gml.lo \
-	gg_voronoj.lo gg_xml.lo
+am__objects_2 = gg_advanced.lo gg_endian.lo gg_geodesic.lo \
+	gg_geometries.lo gg_geoscvt.lo gg_relations.lo \
+	gg_relations_ext.lo gg_lwgeom.lo gg_extras.lo gg_shape.lo \
+	gg_transform.lo gg_wkb.lo gg_wkt.lo gg_vanuatu.lo gg_ewkt.lo \
+	gg_geoJSON.lo gg_kml.lo gg_gml.lo gg_voronoj.lo gg_xml.lo
+am_libgaiageo_la_OBJECTS = $(am__objects_2)
 libgaiageo_la_OBJECTS = $(am_libgaiageo_la_OBJECTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libgaiageo_la_SOURCES)
-DIST_SOURCES = $(libgaiageo_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(gaiageo_la_SOURCES) $(libgaiageo_la_SOURCES)
+DIST_SOURCES = $(gaiageo_la_SOURCES) $(libgaiageo_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -101,9 +172,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -135,6 +226,7 @@ am__relativize = \
   reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -262,15 +354,16 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = flex lemon
-INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \
+AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \
 	-I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libgaiageo.la
-libgaiageo_la_SOURCES = gg_advanced.c \
+noinst_LTLIBRARIES = libgaiageo.la gaiageo.la
+GAIAGEO_COMMON_SOURCES = gg_advanced.c \
 	gg_endian.c \
 	gg_geodesic.c \
 	gg_geometries.c \
 	gg_geoscvt.c \
 	gg_relations.c \
+	gg_relations_ext.c \
 	gg_lwgeom.c \
 	gg_extras.c \
 	gg_shape.c \
@@ -283,8 +376,14 @@ libgaiageo_la_SOURCES = gg_advanced.c \
 	gg_kml.c \
 	gg_gml.c \
 	gg_voronoj.c \
-	gg_xml.c
-
+	gg_xml.c 
+
+libgaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES)
+gaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES)
+gaiageo_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \
+	-I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION
+gaiageo_la_LDFLAGS = -module
+gaiageo_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 EXTRA_DIST = Ewkt.h Ewkt.c lex.Ewkt.c \
 	geoJSON.h geoJSON.c lex.GeoJson.c \
@@ -337,8 +436,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
+gaiageo.la: $(gaiageo_la_OBJECTS) $(gaiageo_la_DEPENDENCIES) $(EXTRA_gaiageo_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(gaiageo_la_LINK)  $(gaiageo_la_OBJECTS) $(gaiageo_la_LIBADD) $(LIBS)
+
 libgaiageo.la: $(libgaiageo_la_OBJECTS) $(libgaiageo_la_DEPENDENCIES) $(EXTRA_libgaiageo_la_DEPENDENCIES) 
-	$(LINK)  $(libgaiageo_la_OBJECTS) $(libgaiageo_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libgaiageo_la_OBJECTS) $(libgaiageo_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -346,6 +449,26 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_advanced.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_endian.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_ewkt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_extras.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_geoJSON.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_geodesic.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_geometries.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_geoscvt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_gml.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_kml.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_lwgeom.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_relations.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_relations_ext.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_shape.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_transform.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_vanuatu.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_voronoj.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_wkb.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_wkt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaiageo_la-gg_xml.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_advanced.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_endian.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_ewkt.Plo at am__quote@
@@ -358,6 +481,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_kml.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_lwgeom.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_relations.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_relations_ext.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_shape.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_transform.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_vanuatu.Plo at am__quote@
@@ -367,25 +491,165 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gg_xml.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+gaiageo_la-gg_advanced.lo: gg_advanced.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_advanced.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_advanced.Tpo -c -o gaiageo_la-gg_advanced.lo `test -f 'gg_advanced.c' || echo '$(srcdir)/'`gg_advanced.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_advanced.Tpo $(DEPDIR)/gaiageo_la-gg_advanced.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_advanced.c' object='gaiageo_la-gg_advanced.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_advanced.lo `test -f 'gg_advanced.c' || echo '$(srcdir)/'`gg_advanced.c
+
+gaiageo_la-gg_endian.lo: gg_endian.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_endian.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_endian.Tpo -c -o gaiageo_la-gg_endian.lo `test -f 'gg_endian.c' || echo '$(srcdir)/'`gg_endian.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_endian.Tpo $(DEPDIR)/gaiageo_la-gg_endian.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_endian.c' object='gaiageo_la-gg_endian.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_endian.lo `test -f 'gg_endian.c' || echo '$(srcdir)/'`gg_endian.c
+
+gaiageo_la-gg_geodesic.lo: gg_geodesic.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geodesic.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geodesic.Tpo -c -o gaiageo_la-gg_geodesic.lo `test -f 'gg_geodesic.c' || echo '$(srcdir)/'`gg_geodesic.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geodesic.Tpo $(DEPDIR)/gaiageo_la-gg_geodesic.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_geodesic.c' object='gaiageo_la-gg_geodesic.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geodesic.lo `test -f 'gg_geodesic.c' || echo '$(srcdir)/'`gg_geodesic.c
+
+gaiageo_la-gg_geometries.lo: gg_geometries.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geometries.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geometries.Tpo -c -o gaiageo_la-gg_geometries.lo `test -f 'gg_geometries.c' || echo '$(srcdir)/'`gg_geometries.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geometries.Tpo $(DEPDIR)/gaiageo_la-gg_geometries.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_geometries.c' object='gaiageo_la-gg_geometries.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geometries.lo `test -f 'gg_geometries.c' || echo '$(srcdir)/'`gg_geometries.c
+
+gaiageo_la-gg_geoscvt.lo: gg_geoscvt.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geoscvt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geoscvt.Tpo -c -o gaiageo_la-gg_geoscvt.lo `test -f 'gg_geoscvt.c' || echo '$(srcdir)/'`gg_geoscvt.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geoscvt.Tpo $(DEPDIR)/gaiageo_la-gg_geoscvt.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_geoscvt.c' object='gaiageo_la-gg_geoscvt.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geoscvt.lo `test -f 'gg_geoscvt.c' || echo '$(srcdir)/'`gg_geoscvt.c
+
+gaiageo_la-gg_relations.lo: gg_relations.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_relations.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_relations.Tpo -c -o gaiageo_la-gg_relations.lo `test -f 'gg_relations.c' || echo '$(srcdir)/'`gg_relations.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_relations.Tpo $(DEPDIR)/gaiageo_la-gg_relations.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_relations.c' object='gaiageo_la-gg_relations.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_relations.lo `test -f 'gg_relations.c' || echo '$(srcdir)/'`gg_relations.c
+
+gaiageo_la-gg_relations_ext.lo: gg_relations_ext.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_relations_ext.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_relations_ext.Tpo -c -o gaiageo_la-gg_relations_ext.lo `test -f 'gg_relations_ext.c' || echo '$(srcdir)/'`gg_relations_ext.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_relations_ext.Tpo $(DEPDIR)/gaiageo_la-gg_relations_ext.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_relations_ext.c' object='gaiageo_la-gg_relations_ext.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_relations_ext.lo `test -f 'gg_relations_ext.c' || echo '$(srcdir)/'`gg_relations_ext.c
+
+gaiageo_la-gg_lwgeom.lo: gg_lwgeom.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_lwgeom.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_lwgeom.Tpo -c -o gaiageo_la-gg_lwgeom.lo `test -f 'gg_lwgeom.c' || echo '$(srcdir)/'`gg_lwgeom.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_lwgeom.Tpo $(DEPDIR)/gaiageo_la-gg_lwgeom.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_lwgeom.c' object='gaiageo_la-gg_lwgeom.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_lwgeom.lo `test -f 'gg_lwgeom.c' || echo '$(srcdir)/'`gg_lwgeom.c
+
+gaiageo_la-gg_extras.lo: gg_extras.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_extras.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_extras.Tpo -c -o gaiageo_la-gg_extras.lo `test -f 'gg_extras.c' || echo '$(srcdir)/'`gg_extras.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_extras.Tpo $(DEPDIR)/gaiageo_la-gg_extras.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_extras.c' object='gaiageo_la-gg_extras.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_extras.lo `test -f 'gg_extras.c' || echo '$(srcdir)/'`gg_extras.c
+
+gaiageo_la-gg_shape.lo: gg_shape.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_shape.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_shape.Tpo -c -o gaiageo_la-gg_shape.lo `test -f 'gg_shape.c' || echo '$(srcdir)/'`gg_shape.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_shape.Tpo $(DEPDIR)/gaiageo_la-gg_shape.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_shape.c' object='gaiageo_la-gg_shape.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_shape.lo `test -f 'gg_shape.c' || echo '$(srcdir)/'`gg_shape.c
+
+gaiageo_la-gg_transform.lo: gg_transform.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_transform.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_transform.Tpo -c -o gaiageo_la-gg_transform.lo `test -f 'gg_transform.c' || echo '$(srcdir)/'`gg_transform.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_transform.Tpo $(DEPDIR)/gaiageo_la-gg_transform.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_transform.c' object='gaiageo_la-gg_transform.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_transform.lo `test -f 'gg_transform.c' || echo '$(srcdir)/'`gg_transform.c
+
+gaiageo_la-gg_wkb.lo: gg_wkb.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_wkb.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_wkb.Tpo -c -o gaiageo_la-gg_wkb.lo `test -f 'gg_wkb.c' || echo '$(srcdir)/'`gg_wkb.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_wkb.Tpo $(DEPDIR)/gaiageo_la-gg_wkb.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_wkb.c' object='gaiageo_la-gg_wkb.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_wkb.lo `test -f 'gg_wkb.c' || echo '$(srcdir)/'`gg_wkb.c
+
+gaiageo_la-gg_wkt.lo: gg_wkt.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_wkt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_wkt.Tpo -c -o gaiageo_la-gg_wkt.lo `test -f 'gg_wkt.c' || echo '$(srcdir)/'`gg_wkt.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_wkt.Tpo $(DEPDIR)/gaiageo_la-gg_wkt.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_wkt.c' object='gaiageo_la-gg_wkt.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_wkt.lo `test -f 'gg_wkt.c' || echo '$(srcdir)/'`gg_wkt.c
+
+gaiageo_la-gg_vanuatu.lo: gg_vanuatu.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_vanuatu.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_vanuatu.Tpo -c -o gaiageo_la-gg_vanuatu.lo `test -f 'gg_vanuatu.c' || echo '$(srcdir)/'`gg_vanuatu.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_vanuatu.Tpo $(DEPDIR)/gaiageo_la-gg_vanuatu.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_vanuatu.c' object='gaiageo_la-gg_vanuatu.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_vanuatu.lo `test -f 'gg_vanuatu.c' || echo '$(srcdir)/'`gg_vanuatu.c
+
+gaiageo_la-gg_ewkt.lo: gg_ewkt.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_ewkt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_ewkt.Tpo -c -o gaiageo_la-gg_ewkt.lo `test -f 'gg_ewkt.c' || echo '$(srcdir)/'`gg_ewkt.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_ewkt.Tpo $(DEPDIR)/gaiageo_la-gg_ewkt.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_ewkt.c' object='gaiageo_la-gg_ewkt.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_ewkt.lo `test -f 'gg_ewkt.c' || echo '$(srcdir)/'`gg_ewkt.c
+
+gaiageo_la-gg_geoJSON.lo: gg_geoJSON.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geoJSON.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geoJSON.Tpo -c -o gaiageo_la-gg_geoJSON.lo `test -f 'gg_geoJSON.c' || echo '$(srcdir)/'`gg_geoJSON.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geoJSON.Tpo $(DEPDIR)/gaiageo_la-gg_geoJSON.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_geoJSON.c' object='gaiageo_la-gg_geoJSON.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geoJSON.lo `test -f 'gg_geoJSON.c' || echo '$(srcdir)/'`gg_geoJSON.c
+
+gaiageo_la-gg_kml.lo: gg_kml.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_kml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_kml.Tpo -c -o gaiageo_la-gg_kml.lo `test -f 'gg_kml.c' || echo '$(srcdir)/'`gg_kml.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_kml.Tpo $(DEPDIR)/gaiageo_la-gg_kml.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_kml.c' object='gaiageo_la-gg_kml.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_kml.lo `test -f 'gg_kml.c' || echo '$(srcdir)/'`gg_kml.c
+
+gaiageo_la-gg_gml.lo: gg_gml.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_gml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_gml.Tpo -c -o gaiageo_la-gg_gml.lo `test -f 'gg_gml.c' || echo '$(srcdir)/'`gg_gml.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_gml.Tpo $(DEPDIR)/gaiageo_la-gg_gml.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_gml.c' object='gaiageo_la-gg_gml.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_gml.lo `test -f 'gg_gml.c' || echo '$(srcdir)/'`gg_gml.c
+
+gaiageo_la-gg_voronoj.lo: gg_voronoj.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_voronoj.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_voronoj.Tpo -c -o gaiageo_la-gg_voronoj.lo `test -f 'gg_voronoj.c' || echo '$(srcdir)/'`gg_voronoj.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_voronoj.Tpo $(DEPDIR)/gaiageo_la-gg_voronoj.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_voronoj.c' object='gaiageo_la-gg_voronoj.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_voronoj.lo `test -f 'gg_voronoj.c' || echo '$(srcdir)/'`gg_voronoj.c
+
+gaiageo_la-gg_xml.lo: gg_xml.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_xml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_xml.Tpo -c -o gaiageo_la-gg_xml.lo `test -f 'gg_xml.c' || echo '$(srcdir)/'`gg_xml.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_xml.Tpo $(DEPDIR)/gaiageo_la-gg_xml.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gg_xml.c' object='gaiageo_la-gg_xml.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_xml.lo `test -f 'gg_xml.c' || echo '$(srcdir)/'`gg_xml.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -399,14 +663,13 @@ clean-libtool:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -427,31 +690,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -467,12 +712,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -484,15 +724,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -501,9 +737,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
 
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -681,24 +918,22 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	clean-noinstLTLIBRARIES cscopelist cscopelist-recursive ctags \
-	ctags-recursive distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/gaiageo/flex/Makefile.in b/src/gaiageo/flex/Makefile.in
index 06f9640..77119d6 100644
--- a/src/gaiageo/flex/Makefile.in
+++ b/src/gaiageo/flex/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/gaiageo/flex
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -240,11 +282,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -382,15 +422,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/gaiageo/geoJSON.c b/src/gaiageo/geoJSON.c
index 95644c0..42f1eda 100644
--- a/src/gaiageo/geoJSON.c
+++ b/src/gaiageo/geoJSON.c
@@ -564,12 +564,12 @@ static const char *const yyTokenName[] = {
     "$", "GEOJSON_NEWLINE", "GEOJSON_OPEN_BRACE", "GEOJSON_TYPE",
     "GEOJSON_COLON", "GEOJSON_POINT", "GEOJSON_COMMA", "GEOJSON_COORDS",
     "GEOJSON_CLOSE_BRACE", "GEOJSON_BBOX", "GEOJSON_OPEN_BRACKET",
-	"GEOJSON_CLOSE_BRACKET",
+    "GEOJSON_CLOSE_BRACKET",
     "GEOJSON_CRS", "GEOJSON_NAME", "GEOJSON_PROPS", "GEOJSON_NUM",
     "GEOJSON_SHORT_SRID", "GEOJSON_LONG_SRID", "GEOJSON_LINESTRING",
-	"GEOJSON_POLYGON",
+    "GEOJSON_POLYGON",
     "GEOJSON_MULTIPOINT", "GEOJSON_MULTILINESTRING", "GEOJSON_MULTIPOLYGON",
-	"GEOJSON_GEOMETRYCOLLECTION",
+    "GEOJSON_GEOMETRYCOLLECTION",
     "GEOJSON_GEOMS", "error", "main", "in",
     "state", "program", "geo_text", "point",
     "pointz", "linestring", "linestringz", "polygon",
@@ -581,9 +581,9 @@ static const char *const yyTokenName[] = {
     "linestring_textz", "polygon_text", "polygon_textz", "ring",
     "extra_rings", "ringz", "extra_ringsz", "multipoint_text",
     "multipoint_textz", "multilinestring_text", "multilinestring_textz",
-	"multilinestring_text2",
+    "multilinestring_text2",
     "multilinestring_textz2", "multipolygon_text", "multipolygon_textz",
-	"multipolygon_text2",
+    "multipolygon_text2",
     "multipolygon_textz2", "geocoll_text", "geocoll_textz", "coll_point",
     "geocoll_text2", "coll_linestring", "coll_polygon", "coll_pointz",
     "geocoll_textz2", "coll_linestringz", "coll_polygonz",
@@ -614,39 +614,39 @@ static const char *const yyRuleName[] = {
     /*  17 */ "geo_text ::= geocoll",
     /*  18 */ "geo_text ::= geocollz",
     /*  19 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /*  20 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /*  21 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /*  22 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /*  23 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /*  24 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /*  25 */
-	"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /*  26 */
-	"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /*  27 */
-	"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /*  28 */
-	"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /*  29 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /*  30 */
-	"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /*  31 */
-	"bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord",
+    "bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord",
     /*  32 */
-	"short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE",
+    "short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE",
     /*  33 */
-	"long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE",
+    "long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE",
     /*  34 */
-	"point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET",
+    "point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET",
     /*  35 */
-	"point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET",
+    "point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET",
     /*  36 */ "coord ::= GEOJSON_NUM",
     /*  37 */ "short_srid ::= GEOJSON_SHORT_SRID",
     /*  38 */ "long_srid ::= GEOJSON_LONG_SRID",
@@ -654,223 +654,223 @@ static const char *const yyRuleName[] = {
     /*  40 */ "extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy",
     /*  41 */ "extra_pointsxyz ::=",
     /*  42 */
-	"extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz",
+    "extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz",
     /*  43 */
-	"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /*  44 */
-	"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /*  45 */
-	"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /*  46 */
-	"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /*  47 */
-	"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /*  48 */
-	"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /*  49 */
-	"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /*  50 */
-	"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /*  51 */
-	"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /*  52 */
-	"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /*  53 */
-	"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /*  54 */
-	"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /*  55 */
-	"linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
+    "linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
     /*  56 */
-	"linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
+    "linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
     /*  57 */
-	"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /*  58 */
-	"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /*  59 */
-	"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /*  60 */
-	"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /*  61 */
-	"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /*  62 */
-	"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /*  63 */
-	"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
     /*  64 */
-	"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
     /*  65 */
-	"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
     /*  66 */
-	"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
     /*  67 */
-	"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
     /*  68 */
-	"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
     /*  69 */
-	"polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET",
+    "polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET",
     /*  70 */
-	"polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET",
+    "polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET",
     /*  71 */
-	"ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
+    "ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
     /*  72 */ "extra_rings ::=",
     /*  73 */ "extra_rings ::= GEOJSON_COMMA ring extra_rings",
     /*  74 */
-	"ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
+    "ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
     /*  75 */ "extra_ringsz ::=",
     /*  76 */ "extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz",
     /*  77 */
-	"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
+    "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
     /*  78 */
-	"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
+    "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
     /*  79 */
-	"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
+    "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
     /*  80 */
-	"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
+    "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
     /*  81 */
-	"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
+    "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
     /*  82 */
-	"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
+    "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
     /*  83 */
-	"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
+    "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
     /*  84 */
-	"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
+    "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
     /*  85 */
-	"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
+    "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
     /*  86 */
-	"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
+    "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
     /*  87 */
-	"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
+    "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
     /*  88 */
-	"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
+    "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
     /*  89 */
-	"multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
+    "multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
     /*  90 */
-	"multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
+    "multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
     /*  91 */
-	"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
+    "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
     /*  92 */
-	"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
+    "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
     /*  93 */
-	"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
+    "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
     /*  94 */
-	"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
+    "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
     /*  95 */
-	"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
+    "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
     /*  96 */
-	"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
+    "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
     /*  97 */
-	"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
+    "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
     /*  98 */
-	"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
+    "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
     /*  99 */
-	"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
+    "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
     /* 100 */
-	"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
+    "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
     /* 101 */
-	"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
+    "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
     /* 102 */
-	"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
+    "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
     /* 103 */
-	"multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET",
+    "multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET",
     /* 104 */ "multilinestring_text2 ::=",
     /* 105 */
-	"multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2",
+    "multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2",
     /* 106 */
-	"multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET",
+    "multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET",
     /* 107 */ "multilinestring_textz2 ::=",
     /* 108 */
-	"multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2",
+    "multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2",
     /* 109 */
-	"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
+    "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
     /* 110 */
-	"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
+    "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
     /* 111 */
-	"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
+    "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
     /* 112 */
-	"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
+    "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
     /* 113 */
-	"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
+    "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
     /* 114 */
-	"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
+    "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
     /* 115 */
-	"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
+    "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
     /* 116 */
-	"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
+    "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
     /* 117 */
-	"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
+    "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
     /* 118 */
-	"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
+    "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
     /* 119 */
-	"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
+    "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
     /* 120 */
-	"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
+    "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
     /* 121 */
-	"multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET",
+    "multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET",
     /* 122 */ "multipolygon_text2 ::=",
     /* 123 */
-	"multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2",
+    "multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2",
     /* 124 */
-	"multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET",
+    "multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET",
     /* 125 */ "multipolygon_textz2 ::=",
     /* 126 */
-	"multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2",
+    "multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2",
     /* 127 */
-	"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
+    "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
     /* 128 */
-	"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
+    "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
     /* 129 */
-	"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
+    "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
     /* 130 */
-	"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
+    "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
     /* 131 */
-	"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
+    "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
     /* 132 */
-	"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
+    "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
     /* 133 */ "geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz",
     /* 134 */
-	"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
+    "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
     /* 135 */
-	"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
+    "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
     /* 136 */
-	"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
+    "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
     /* 137 */
-	"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
+    "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
     /* 138 */
-	"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
+    "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
     /* 139 */
-	"geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET",
+    "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET",
     /* 140 */
-	"geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET",
+    "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET",
     /* 141 */
-	"geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET",
+    "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET",
     /* 142 */ "geocoll_text2 ::=",
     /* 143 */ "geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2",
     /* 144 */ "geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2",
     /* 145 */ "geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2",
     /* 146 */
-	"geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
+    "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
     /* 147 */
-	"geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
+    "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
     /* 148 */
-	"geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
+    "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
     /* 149 */ "geocoll_textz2 ::=",
     /* 150 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2",
     /* 151 */
-	"geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2",
+    "geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2",
     /* 152 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2",
     /* 153 */
-	"coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
+    "coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
     /* 154 */
-	"coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
+    "coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
     /* 155 */
-	"coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
+    "coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
     /* 156 */
-	"coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
+    "coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
     /* 157 */
-	"coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
+    "coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
     /* 158 */
-	"coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
+    "coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
 };
 #endif /* NDEBUG */
 
@@ -1653,8 +1653,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  geoJSON_buildGeomFromPointSrid (p_data,
-						  (gaiaPointPtr) yymsp[-1].
-						  minor.yy0,
+						  (gaiaPointPtr)
+						  yymsp[-1].minor.yy0,
 						  (int *) yymsp[-5].minor.yy0);
 	  }
 	  break;
@@ -1668,8 +1668,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  geoJSON_buildGeomFromPointSrid (p_data,
-						  (gaiaPointPtr) yymsp[-1].
-						  minor.yy0,
+						  (gaiaPointPtr)
+						  yymsp[-1].minor.yy0,
 						  (int *) yymsp[-11].minor.yy0);
 	  }
 	  break;
@@ -1794,8 +1794,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-2].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_linestring_xy (p_data,
-						  (gaiaPointPtr) yymsp[-4].
-						  minor.yy0);
+						  (gaiaPointPtr)
+						  yymsp[-4].minor.yy0);
 	  }
 	  break;
       case 56:			/* linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */
@@ -1806,8 +1806,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-2].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_linestring_xyz (p_data,
-						   (gaiaPointPtr) yymsp[-4].
-						   minor.yy0);
+						   (gaiaPointPtr)
+						   yymsp[-4].minor.yy0);
 	  }
 	  break;
       case 57:			/* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */
@@ -1820,8 +1820,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  geoJSON_buildGeomFromPolygon (p_data,
-						(gaiaPolygonPtr) yymsp[-1].
-						minor.yy0);
+						(gaiaPolygonPtr)
+						yymsp[-1].minor.yy0);
 	  }
 	  break;
       case 59:			/* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */
@@ -1834,8 +1834,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  geoJSON_buildGeomFromPolygonSrid (p_data,
-						    (gaiaPolygonPtr) yymsp[-1].
-						    minor.yy0,
+						    (gaiaPolygonPtr)
+						    yymsp[-1].minor.yy0,
 						    (int *) yymsp[-5].minor.
 						    yy0);
 	  }
@@ -1850,8 +1850,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  geoJSON_buildGeomFromPolygonSrid (p_data,
-						    (gaiaPolygonPtr) yymsp[-1].
-						    minor.yy0,
+						    (gaiaPolygonPtr)
+						    yymsp[-1].minor.yy0,
 						    (int *) yymsp[-11].minor.
 						    yy0);
 	  }
@@ -2029,8 +2029,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_multipoint_xy (p_data,
-						  (gaiaPointPtr) yymsp[-2].
-						  minor.yy0);
+						  (gaiaPointPtr)
+						  yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 90:			/* multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */
@@ -2039,8 +2039,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_multipoint_xyz (p_data,
-						   (gaiaPointPtr) yymsp[-2].
-						   minor.yy0);
+						   (gaiaPointPtr)
+						   yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 103:		/* multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET */
@@ -2078,8 +2078,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_multipolygon_xy (p_data,
-						    (gaiaPolygonPtr) yymsp[-2].
-						    minor.yy0);
+						    (gaiaPolygonPtr)
+						    yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 123:		/* multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2 */
@@ -2097,8 +2097,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_multipolygon_xyz (p_data,
-						     (gaiaPolygonPtr) yymsp[-2].
-						     minor.yy0);
+						     (gaiaPolygonPtr)
+						     yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 139:		/* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET */
@@ -2111,8 +2111,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_geomColl_xy (p_data,
-						(gaiaGeomCollPtr) yymsp[-2].
-						minor.yy0);
+						(gaiaGeomCollPtr)
+						yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 143:		/* geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2 */
@@ -2142,8 +2142,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) geoJSON_geomColl_xyz (p_data,
-						 (gaiaGeomCollPtr) yymsp[-2].
-						 minor.yy0);
+						 (gaiaGeomCollPtr)
+						 yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 153:		/* coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */
@@ -2172,8 +2172,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  geoJSON_buildGeomFromPolygon (p_data,
-						(gaiaPolygonPtr) yymsp[-1].
-						minor.yy0);
+						(gaiaPolygonPtr)
+						yymsp[-1].minor.yy0);
 	  }
 	  break;
       default:
@@ -2183,7 +2183,7 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  /* (3) state ::= program */ yytestcase (yyruleno == 3);
 	  /* (4) program ::= geo_text */ yytestcase (yyruleno == 4);
 	  /* (31) bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord */
-	      yytestcase (yyruleno == 31);
+	  yytestcase (yyruleno == 31);
 	  break;
       };
     yygoto = yyRuleInfo[yyruleno].lhs;
@@ -2416,9 +2416,8 @@ Parse (void *yyp,		/* The parser */
 		      while (yypParser->yyidx >= 0 &&
 			     yymx != YYERRORSYMBOL &&
 			     (yyact =
-			      yy_find_reduce_action (yypParser->
-						     yystack[yypParser->yyidx].
-						     stateno,
+			      yy_find_reduce_action (yypParser->yystack
+						     [yypParser->yyidx].stateno,
 						     YYERRORSYMBOL)) >=
 			     YYNSTATE)
 			{
diff --git a/src/gaiageo/gg_advanced.c b/src/gaiageo/gg_advanced.c
index 6ff3059..08bbcaa 100644
--- a/src/gaiageo/gg_advanced.c
+++ b/src/gaiageo/gg_advanced.c
@@ -1188,6 +1188,12 @@ gaiaIsToxicRing (gaiaRingPtr ring)
 GAIAGEO_DECLARE int
 gaiaIsToxic (gaiaGeomCollPtr geom)
 {
+    return gaiaIsToxic_r (NULL, geom);
+}
+
+GAIAGEO_DECLARE int
+gaiaIsToxic_r (const void *cache, gaiaGeomCollPtr geom)
+{
 /* 
 / identifying toxic geometries 
 / i.e. geoms making GEOS to crash !!!
@@ -1213,8 +1219,13 @@ gaiaIsToxic (gaiaGeomCollPtr geom)
 	  /* checking LINESTRINGs */
 	  if (gaiaIsToxicLinestring (line))
 	    {
-		gaiaSetGeosAuxErrorMsg
-		    ("gaiaIsToxic detected a toxic Linestring: < 2 pts");
+		if (cache != NULL)
+		    gaiaSetGeosAuxErrorMsg_r
+			(cache,
+			 "gaiaIsToxic detected a toxic Linestring: < 2 pts");
+		else
+		    gaiaSetGeosAuxErrorMsg
+			("gaiaIsToxic detected a toxic Linestring: < 2 pts");
 		return 1;
 	    }
 	  line = line->Next;
@@ -1226,8 +1237,12 @@ gaiaIsToxic (gaiaGeomCollPtr geom)
 	  ring = polyg->Exterior;
 	  if (gaiaIsToxicRing (ring))
 	    {
-		gaiaSetGeosAuxErrorMsg
-		    ("gaiaIsToxic detected a toxic Ring: < 4 pts");
+		if (cache != NULL)
+		    gaiaSetGeosAuxErrorMsg_r
+			(cache, "gaiaIsToxic detected a toxic Ring: < 4 pts");
+		else
+		    gaiaSetGeosAuxErrorMsg
+			("gaiaIsToxic detected a toxic Ring: < 4 pts");
 		return 1;
 	    }
 	  for (ib = 0; ib < polyg->NumInteriors; ib++)
@@ -1235,8 +1250,13 @@ gaiaIsToxic (gaiaGeomCollPtr geom)
 		ring = polyg->Interiors + ib;
 		if (gaiaIsToxicRing (ring))
 		  {
-		      gaiaSetGeosAuxErrorMsg
-			  ("gaiaIsToxic detected a toxic Ring: < 4 pts");
+		      if (cache != NULL)
+			  gaiaSetGeosAuxErrorMsg_r
+			      (cache,
+			       "gaiaIsToxic detected a toxic Ring: < 4 pts");
+		      else
+			  gaiaSetGeosAuxErrorMsg
+			      ("gaiaIsToxic detected a toxic Ring: < 4 pts");
 		      return 1;
 		  }
 	    }
@@ -1248,6 +1268,12 @@ gaiaIsToxic (gaiaGeomCollPtr geom)
 GAIAGEO_DECLARE int
 gaiaIsNotClosedRing (gaiaRingPtr ring)
 {
+    return gaiaIsNotClosedRing_r (NULL, ring);
+}
+
+GAIAGEO_DECLARE int
+gaiaIsNotClosedRing_r (const void *cache, gaiaRingPtr ring)
+{
 /* checking a Ring for closure */
     double x0;
     double y0;
@@ -1263,7 +1289,11 @@ gaiaIsNotClosedRing (gaiaRingPtr ring)
 	return 0;
     else
       {
-	  gaiaSetGeosAuxErrorMsg ("gaia detected a not-closed Ring");
+	  if (cache != NULL)
+	      gaiaSetGeosAuxErrorMsg_r (cache,
+					"gaia detected a not-closed Ring");
+	  else
+	      gaiaSetGeosAuxErrorMsg ("gaia detected a not-closed Ring");
 	  return 1;
       }
 }
@@ -1271,10 +1301,17 @@ gaiaIsNotClosedRing (gaiaRingPtr ring)
 GAIAGEO_DECLARE int
 gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom)
 {
+    return gaiaIsNotClosedGeomColl_r (NULL, geom);
+}
+
+GAIAGEO_DECLARE int
+gaiaIsNotClosedGeomColl_r (const void *cache, gaiaGeomCollPtr geom)
+{
 /* 
 / identifying not properly closed Rings 
 / i.e. geoms making GEOS to crash !!!
 */
+    int ret;
     int ib;
     gaiaPolygonPtr polyg;
     gaiaRingPtr ring;
@@ -1285,12 +1322,20 @@ gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom)
       {
 	  /* checking POLYGONs */
 	  ring = polyg->Exterior;
-	  if (gaiaIsNotClosedRing (ring))
+	  if (cache != NULL)
+	      ret = gaiaIsNotClosedRing_r (cache, ring);
+	  else
+	      ret = gaiaIsNotClosedRing (ring);
+	  if (ret)
 	      return 1;
 	  for (ib = 0; ib < polyg->NumInteriors; ib++)
 	    {
 		ring = polyg->Interiors + ib;
-		if (gaiaIsNotClosedRing (ring))
+		if (cache != NULL)
+		    ret = gaiaIsNotClosedRing_r (cache, ring);
+		else
+		    ret = gaiaIsNotClosedRing (ring);
+		if (ret)
 		    return 1;
 	    }
 	  polyg = polyg->Next;
diff --git a/src/gaiageo/gg_extras.c b/src/gaiageo/gg_extras.c
index ee168b1..23712d4 100644
--- a/src/gaiageo/gg_extras.c
+++ b/src/gaiageo/gg_extras.c
@@ -724,7 +724,7 @@ gaiaSnapToGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
     return result;
 }
 
-#ifdef GEOS_ADVANCED		/* GEOS advanced features */
+#ifndef OMIT_GEOS		/* only if GEOS is enabled */
 
 static void
 get_grid_bbox (gaiaGeomCollPtr geom, double *min_x, double *min_y,
@@ -755,9 +755,10 @@ get_grid_base (double min_x, double min_y, double origin_x, double origin_y,
 	*base_y = y;
 }
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
-		double size, int edges_only)
+static gaiaGeomCollPtr
+gaiaSquareGridCommon (const void *p_cache, gaiaGeomCollPtr geom,
+		      double origin_x, double origin_y, double size,
+		      int edges_only)
 {
 /* creating a regular grid [Square cells] */
     double min_x;
@@ -780,6 +781,7 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
     gaiaLinestringPtr ln;
     gaiaGeomCollPtr result = NULL;
     gaiaGeomCollPtr item = NULL;
+    int ret;
 
     if (size <= 0.0)
 	return NULL;
@@ -813,7 +815,11 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 		gaiaSetPoint (rng->Coords, 4, x1, y1);
 
 		gaiaMbrGeometry (item);
-		if (gaiaGeomCollIntersects (geom, item) == 1)
+		if (p_cache != NULL)
+		    ret = gaiaGeomCollIntersects_r (p_cache, geom, item);
+		else
+		    ret = gaiaGeomCollIntersects (geom, item);
+		if (ret == 1)
 		  {
 		      /* ok, inserting a valid cell */
 		      count++;
@@ -868,7 +874,10 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
       }
 
     item = result;
-    result = gaiaUnaryUnion (item);
+    if (p_cache != NULL)
+	result = gaiaUnaryUnion_r (p_cache, item);
+    else
+	result = gaiaUnaryUnion (item);
     gaiaFreeGeomColl (item);
     result->Srid = geom->Srid;
     result->DeclaredType = GAIA_LINESTRING;
@@ -876,8 +885,63 @@ gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
-		    double size, int edges_only)
+gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
+		double size, int edges_only)
+{
+    return gaiaSquareGridCommon (NULL, geom, origin_x, origin_y, size,
+				 edges_only);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSquareGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x,
+		  double origin_y, double size, int edges_only)
+{
+    return gaiaSquareGridCommon (p_cache, geom, origin_x, origin_y, size,
+				 edges_only);
+}
+
+static void
+get_trigrid_base (double min_x, double min_y, double origin_x, double origin_y,
+		  double shift_h_odd, double shift_h_even, double shift_v,
+		  int *odd_even, double *base_x, double *base_y)
+{
+/* determining the grid base-point [MinX/MinY] for a Triangular Grid */
+    double bx = origin_x;
+    double by = origin_y;
+    while (1)
+      {
+	  /* looping on grid rows */
+	  if (by < min_y)
+	      goto next_scanline;
+	  if (*odd_even)
+	      bx = origin_x - shift_h_odd;
+	  else
+	      bx = origin_x;
+	  while (1)
+	    {
+		/* looping on grid columns */
+		if (bx + shift_h_even > min_x
+		    || bx + shift_h_even + shift_h_odd > min_x)
+		  {
+		      *base_x = bx;
+		      *base_y = by;
+		      return;
+		  }
+		bx += shift_h_even;
+	    }
+	next_scanline:
+	  by += shift_v;
+	  if (*odd_even)
+	      *odd_even = 0;
+	  else
+	      *odd_even = 1;
+      }
+}
+
+static gaiaGeomCollPtr
+gaiaTriangularGridCommon (const void *p_cache, gaiaGeomCollPtr geom,
+			  double origin_x, double origin_y, double size,
+			  int edges_only)
 {
 /* creating a regular grid [Triangular cells] */
     double min_x;
@@ -894,6 +958,9 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
     double y3;
     double x4;
     double y4;
+    double shift_h_odd;
+    double shift_h_even;
+    double shift_v;
     int count = 0;
     int odd_even = 0;
     gaiaPolygonPtr pg;
@@ -901,27 +968,32 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
     gaiaLinestringPtr ln;
     gaiaGeomCollPtr result = NULL;
     gaiaGeomCollPtr item = NULL;
+    int ret;
 
     if (size <= 0.0)
 	return NULL;
+    shift_h_odd = size / 2.0;
+    shift_h_even = size;
+    shift_v = size * sin (3.14159265358979323846 / 3.0);
 
     result = gaiaAllocGeomColl ();
     result->Srid = geom->Srid;
     get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y);
-    get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y);
+    get_trigrid_base (min_x, min_y, origin_x, origin_y, shift_h_odd,
+		      shift_h_even, shift_v, &odd_even, &base_x, &base_y);
     while (base_y < max_y)
       {
 	  /* looping on grid rows */
 	  if (odd_even)
-	      x1 = base_x - (size / 2.0);
+	      x1 = base_x - shift_h_odd;
 	  else
 	      x1 = base_x;
 	  y1 = base_y;
-	  x2 = x1 + size;
+	  x2 = x1 + shift_h_even;
 	  y2 = y1;
-	  x3 = x1 + (size / 2.0);
-	  y3 = y1 + (size * sin (3.14159265358979323846 / 3.0));
-	  x4 = x3 + size;
+	  x3 = x1 + shift_h_odd;
+	  y3 = y1 + shift_v;
+	  x4 = x3 + shift_h_even;
 	  y4 = y3;
 	  while (x1 < max_x)
 	    {
@@ -936,7 +1008,11 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 		gaiaSetPoint (rng->Coords, 3, x1, y1);
 
 		gaiaMbrGeometry (item);
-		if (gaiaGeomCollIntersects (geom, item) == 1)
+		if (p_cache != NULL)
+		    ret = gaiaGeomCollIntersects_r (p_cache, geom, item);
+		else
+		    ret = gaiaGeomCollIntersects (geom, item);
+		if (ret == 1)
 		  {
 		      /* ok, inserting a valid cell [pointing upside] */
 		      count++;
@@ -976,7 +1052,11 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 		gaiaSetPoint (rng->Coords, 3, x3, y3);
 
 		gaiaMbrGeometry (item);
-		if (gaiaGeomCollIntersects (geom, item) == 1)
+		if (p_cache != NULL)
+		    ret = gaiaGeomCollIntersects_r (p_cache, geom, item);
+		else
+		    ret = gaiaGeomCollIntersects (geom, item);
+		if (ret == 1)
 		  {
 		      /* ok, inserting a valid cell [pointing downside] */
 		      count++;
@@ -1006,12 +1086,12 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 		  }
 		gaiaFreeGeomColl (item);
 
-		x1 += size;
-		x2 += size;
-		x3 += size;
-		x4 += size;
+		x1 += shift_h_even;
+		x2 += shift_h_even;
+		x3 += shift_h_even;
+		x4 += shift_h_even;
 	    }
-	  base_y += (size * sin (3.14159265358979323846 / 3.0));
+	  base_y += shift_v;
 	  if (odd_even)
 	      odd_even = 0;
 	  else
@@ -1032,7 +1112,10 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
       }
 
     item = result;
-    result = gaiaUnaryUnion (item);
+    if (p_cache != NULL)
+	result = gaiaUnaryUnion_r (p_cache, item);
+    else
+	result = gaiaUnaryUnion (item);
     gaiaFreeGeomColl (item);
     result->Srid = geom->Srid;
     result->DeclaredType = GAIA_LINESTRING;
@@ -1040,8 +1123,63 @@ gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
-		   double size, int edges_only)
+gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
+		    double size, int edges_only)
+{
+    return gaiaTriangularGridCommon (NULL, geom, origin_x, origin_y, size,
+				     edges_only);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaTriangularGrid_r (const void *p_cache, gaiaGeomCollPtr geom,
+		      double origin_x, double origin_y, double size,
+		      int edges_only)
+{
+    return gaiaTriangularGridCommon (p_cache, geom, origin_x, origin_y, size,
+				     edges_only);
+}
+
+static void
+get_hexgrid_base (double min_x, double min_y, double origin_x, double origin_y,
+		  double shift3, double shift4, double shift,
+		  int *odd_even, double *base_x, double *base_y)
+{
+/* determining the grid base-point [MinX/MinY] for am Hexagonal Grid */
+    double bx = origin_x;
+    double by = origin_y;
+    while (1)
+      {
+	  /* looping on grid rows */
+	  if (by < min_y)
+	      goto next_scanline;
+	  if (*odd_even)
+	      bx = origin_x + (shift3 / 2.0);
+	  else
+	      bx = origin_x;
+	  while (1)
+	    {
+		/* looping on grid columns */
+		if (bx + shift4 > min_x)
+		  {
+		      *base_x = bx;
+		      *base_y = by;
+		      return;
+		  }
+		bx += shift3;
+	    }
+	next_scanline:
+	  by += shift;
+	  if (*odd_even)
+	      *odd_even = 0;
+	  else
+	      *odd_even = 1;
+      }
+}
+
+static gaiaGeomCollPtr
+gaiaHexagonalGridCommon (const void *p_cache, gaiaGeomCollPtr geom,
+			 double origin_x, double origin_y, double size,
+			 int edges_only)
 {
 /* creating a regular grid [Hexagonal cells] */
     double min_x;
@@ -1070,28 +1208,36 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
     gaiaGeomCollPtr result = NULL;
     gaiaGeomCollPtr item = NULL;
     double shift;
+    double shift2;
+    double shift3;
+    double shift4;
+    int ret;
 
     if (size <= 0.0)
 	return NULL;
     shift = size * sin (3.14159265358979323846 / 3.0);
+    shift2 = size / 2.0;
+    shift3 = size * 3.0;
+    shift4 = size * 2.0;
 
     result = gaiaAllocGeomColl ();
     result->Srid = geom->Srid;
     get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y);
-    get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y);
+    get_hexgrid_base (min_x, min_y, origin_x, origin_y, shift3, shift4,
+		      shift, &odd_even, &base_x, &base_y);
     while ((base_y - shift) < max_y)
       {
 	  /* looping on grid rows */
 	  if (odd_even)
-	      x1 = base_x - (size + (size / 2.0));
+	      x1 = base_x - (shift3 / 2.0);
 	  else
 	      x1 = base_x;
 	  y1 = base_y;
-	  x2 = x1 + (size / 2.0);
+	  x2 = x1 + shift2;
 	  y2 = y1 - shift;
 	  x3 = x2 + size;
 	  y3 = y2;
-	  x4 = x1 + (size * 2.0);
+	  x4 = x1 + shift4;
 	  y4 = y1;
 	  x5 = x3;
 	  y5 = y1 + shift;
@@ -1113,7 +1259,11 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 		gaiaSetPoint (rng->Coords, 6, x1, y1);
 
 		gaiaMbrGeometry (item);
-		if (gaiaGeomCollIntersects (geom, item) == 1)
+		if (p_cache != NULL)
+		    ret = gaiaGeomCollIntersects_r (p_cache, geom, item);
+		else
+		    ret = gaiaGeomCollIntersects (geom, item);
+		if (ret == 1)
 		  {
 		      /* ok, inserting a valid cell */
 		      count++;
@@ -1155,14 +1305,14 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
 		  }
 		gaiaFreeGeomColl (item);
 
-		x1 += size * 3.0;
-		x2 += size * 3.0;
-		x3 += size * 3.0;
-		x4 += size * 3.0;
-		x5 += size * 3.0;
-		x6 += size * 3.0;
+		x1 += shift3;
+		x2 += shift3;
+		x3 += shift3;
+		x4 += shift3;
+		x5 += shift3;
+		x6 += shift3;
 	    }
-	  base_y += (size * sin (3.14159265358979323846 / 3.0));
+	  base_y += shift;
 	  if (odd_even)
 	      odd_even = 0;
 	  else
@@ -1183,11 +1333,30 @@ gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
       }
 
     item = result;
-    result = gaiaUnaryUnion (item);
+    if (p_cache != NULL)
+	result = gaiaUnaryUnion_r (p_cache, item);
+    else
+	result = gaiaUnaryUnion (item);
     gaiaFreeGeomColl (item);
     result->Srid = geom->Srid;
     result->DeclaredType = GAIA_LINESTRING;
     return result;
 }
 
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y,
+		   double size, int edges_only)
+{
+    return gaiaHexagonalGridCommon (NULL, geom, origin_x, origin_y, size,
+				    edges_only);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaHexagonalGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x,
+		     double origin_y, double size, int edges_only)
+{
+    return gaiaHexagonalGridCommon (p_cache, geom, origin_x, origin_y, size,
+				    edges_only);
+}
+
 #endif /* end including GEOS */
diff --git a/src/gaiageo/gg_geoJSON.c b/src/gaiageo/gg_geoJSON.c
index d5c22f9..461c445 100644
--- a/src/gaiageo/gg_geoJSON.c
+++ b/src/gaiageo/gg_geoJSON.c
@@ -201,8 +201,8 @@ geoJsonMapDynAlloc (struct geoJson_data *p_data, int type, void *ptr)
 	  p_data->geoJson_last_dyn_block->next = p;
 	  p_data->geoJson_last_dyn_block = p;
       }
-    p_data->geoJson_last_dyn_block->type[p_data->
-					 geoJson_last_dyn_block->index] = type;
+    p_data->geoJson_last_dyn_block->type[p_data->geoJson_last_dyn_block->
+					 index] = type;
     p_data->geoJson_last_dyn_block->ptr[p_data->geoJson_last_dyn_block->index] =
 	ptr;
     p_data->geoJson_last_dyn_block->index++;
diff --git a/src/gaiageo/gg_geometries.c b/src/gaiageo/gg_geometries.c
index 68290ed..2ecfc36 100644
--- a/src/gaiageo/gg_geometries.c
+++ b/src/gaiageo/gg_geometries.c
@@ -3628,6 +3628,13 @@ gaiaMakeLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
 GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
+    return gaiaMergeGeometries_r (NULL, geom1, geom2);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaMergeGeometries_r (const void *cache, gaiaGeomCollPtr geom1,
+		       gaiaGeomCollPtr geom2)
+{
 /* mergine two generic Geometries into a single one */
     gaiaGeomCollPtr result;
     gaiaPointPtr pt;
@@ -3649,8 +3656,16 @@ gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 
     if (geom1 == NULL || geom2 == NULL)
 	return NULL;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
-	return NULL;
+    if (cache != NULL)
+      {
+	  if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	      return NULL;
+      }
+    else
+      {
+	  if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+	      return NULL;
+      }
     dims1 = geom1->DimensionModel;
     dims2 = geom2->DimensionModel;
 /* building a new Geometry */
@@ -4536,3 +4551,182 @@ gaiaLocateBetweenMeasures (gaiaGeomCollPtr geom, double m_start, double m_end)
       }
     return new_geom;
 }
+
+static int
+check_closed_multi_linestring (gaiaGeomCollPtr geom, int single)
+{
+/* check if :
+/   - this geometry is a (multi) Linestring 
+/   - all Linestrings are effectively closed
+*/
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    int closed = 0;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  if (gaiaIsClosed (ln))
+	      closed++;
+	  lns++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (closed != lns)
+	return 0;
+    if (single)
+      {
+	  if (pts == 0 && lns == 1 && pgs == 0)
+	      return lns;
+      }
+    else
+      {
+	  if (pts == 0 && lns >= 1 && pgs == 0)
+	      return lns;
+      }
+    return 0;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaMakePolygon (gaiaGeomCollPtr exterior, gaiaGeomCollPtr interiors)
+{
+/* reassembling a Polygon from closed Linestrings */
+    gaiaGeomCollPtr geom;
+    gaiaPolygonPtr pg;
+    gaiaRingPtr rng;
+    gaiaLinestringPtr ln;
+    int iv;
+    double x;
+    double y;
+    double z;
+    double m;
+    int num_interiors = 0;
+    int ib;
+
+    if (exterior == NULL)
+	return NULL;
+    if (!check_closed_multi_linestring (exterior, 1))
+	return NULL;
+    if (interiors != NULL)
+      {
+	  num_interiors = check_closed_multi_linestring (interiors, 0);
+	  if (!num_interiors)
+	      return NULL;
+      }
+
+/* reassembling the Polygon */
+    if (exterior->DimensionModel == GAIA_XY_Z)
+	geom = gaiaAllocGeomCollXYZ ();
+    else if (exterior->DimensionModel == GAIA_XY_M)
+	geom = gaiaAllocGeomCollXYM ();
+    else if (exterior->DimensionModel == GAIA_XY_Z_M)
+	geom = gaiaAllocGeomCollXYZM ();
+    else
+	geom = gaiaAllocGeomColl ();
+    geom->Srid = exterior->Srid;
+    ln = exterior->FirstLinestring;
+    pg = gaiaAddPolygonToGeomColl (geom, ln->Points, num_interiors);
+    rng = pg->Exterior;
+    for (iv = 0; iv < ln->Points; iv++)
+      {
+	  /* exterior ring */
+	  m = 0.0;
+	  z = 0.0;
+	  switch (ln->DimensionModel)
+	    {
+	    case GAIA_XY:
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+		break;
+	    case GAIA_XY_Z:
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		break;
+	    case GAIA_XY_M:
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		break;
+	    case GAIA_XY_Z_M:
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		break;
+	    default:
+		return 0;
+	    };
+	  switch (rng->DimensionModel)
+	    {
+	    case GAIA_XY:
+		gaiaSetPoint (rng->Coords, iv, x, y);
+		break;
+	    case GAIA_XY_Z:
+		gaiaSetPointXYZ (rng->Coords, iv, x, y, z);
+		break;
+	    case GAIA_XY_M:
+		gaiaSetPointXYM (rng->Coords, iv, x, y, m);
+		break;
+	    case GAIA_XY_Z_M:
+		gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m);
+		break;
+	    };
+      }
+    if (interiors != NULL)
+      {
+	  /* setting up the interior rings */
+	  ib = 0;
+	  ln = interiors->FirstLinestring;
+	  while (ln)
+	    {
+		rng = gaiaAddInteriorRing (pg, ib, ln->Points);
+		for (iv = 0; iv < ln->Points; iv++)
+		  {
+		      m = 0.0;
+		      z = 0.0;
+		      switch (ln->DimensionModel)
+			{
+			case GAIA_XY:
+			    gaiaGetPoint (ln->Coords, iv, &x, &y);
+			    break;
+			case GAIA_XY_Z:
+			    gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+			    break;
+			case GAIA_XY_M:
+			    gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+			    break;
+			case GAIA_XY_Z_M:
+			    gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+			    break;
+			default:
+			    return 0;
+			};
+		      switch (rng->DimensionModel)
+			{
+			case GAIA_XY:
+			    gaiaSetPoint (rng->Coords, iv, x, y);
+			    break;
+			case GAIA_XY_Z:
+			    gaiaSetPointXYZ (rng->Coords, iv, x, y, z);
+			    break;
+			case GAIA_XY_M:
+			    gaiaSetPointXYM (rng->Coords, iv, x, y, m);
+			    break;
+			case GAIA_XY_Z_M:
+			    gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m);
+			    break;
+			};
+		  }
+		ib++;
+		ln = ln->Next;
+	    }
+      }
+    return geom;
+}
diff --git a/src/gaiageo/gg_geoscvt.c b/src/gaiageo/gg_geoscvt.c
index 0503195..9dacf00 100644
--- a/src/gaiageo/gg_geoscvt.c
+++ b/src/gaiageo/gg_geoscvt.c
@@ -57,6 +57,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <geos_c.h>
 #endif
 
+#include <spatialite_private.h>
 #include <spatialite/sqlite.h>
 
 #include <spatialite/gaiageo.h>
@@ -64,7 +65,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #ifndef OMIT_GEOS		/* including GEOS */
 
 static GEOSGeometry *
-toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
+toGeosGeometry (const void *cache, GEOSContextHandle_t handle,
+		const gaiaGeomCollPtr gaia, int mode)
 {
 /* converting a GAIA Geometry into a GEOS Geometry */
     int pts = 0;
@@ -193,57 +195,118 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 	  if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POINTS)
 	    {
 		pt = gaia->FirstPoint;
-		cs = GEOSCoordSeq_create (1, dims);
-		switch (gaia->DimensionModel)
+		if (handle != NULL)
 		  {
-		  case GAIA_XY_Z:
-		  case GAIA_XY_Z_M:
-		      GEOSCoordSeq_setX (cs, 0, pt->X);
-		      GEOSCoordSeq_setY (cs, 0, pt->Y);
-		      GEOSCoordSeq_setZ (cs, 0, pt->Z);
-		      break;
-		  default:
-		      GEOSCoordSeq_setX (cs, 0, pt->X);
-		      GEOSCoordSeq_setY (cs, 0, pt->Y);
-		      break;
-		  };
-		geos = GEOSGeom_createPoint (cs);
+		      cs = GEOSCoordSeq_create_r (handle, 1, dims);
+		      switch (gaia->DimensionModel)
+			{
+			case GAIA_XY_Z:
+			case GAIA_XY_Z_M:
+			    GEOSCoordSeq_setX_r (handle, cs, 0, pt->X);
+			    GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y);
+			    GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z);
+			    break;
+			default:
+			    GEOSCoordSeq_setX_r (handle, cs, 0, pt->X);
+			    GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y);
+			    break;
+			};
+		      geos = GEOSGeom_createPoint_r (handle, cs);
+		  }
+		else
+		  {
+		      cs = GEOSCoordSeq_create (1, dims);
+		      switch (gaia->DimensionModel)
+			{
+			case GAIA_XY_Z:
+			case GAIA_XY_Z_M:
+			    GEOSCoordSeq_setX (cs, 0, pt->X);
+			    GEOSCoordSeq_setY (cs, 0, pt->Y);
+			    GEOSCoordSeq_setZ (cs, 0, pt->Z);
+			    break;
+			default:
+			    GEOSCoordSeq_setX (cs, 0, pt->X);
+			    GEOSCoordSeq_setY (cs, 0, pt->Y);
+			    break;
+			};
+		      geos = GEOSGeom_createPoint (cs);
+		  }
 	    }
 	  break;
       case GAIA_LINESTRING:
 	  if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_LINESTRINGS)
 	    {
 		ln = gaia->FirstLinestring;
-		cs = GEOSCoordSeq_create (ln->Points, dims);
+		if (handle != NULL)
+		    cs = GEOSCoordSeq_create_r (handle, ln->Points, dims);
+		else
+		    cs = GEOSCoordSeq_create (ln->Points, dims);
 		for (iv = 0; iv < ln->Points; iv++)
 		  {
 		      switch (ln->DimensionModel)
 			{
 			case GAIA_XY_Z:
 			    gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
-			    GEOSCoordSeq_setZ (cs, iv, z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+				  GEOSCoordSeq_setZ (cs, iv, z);
+			      }
 			    break;
 			case GAIA_XY_M:
 			    gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+			      }
 			    break;
 			case GAIA_XY_Z_M:
 			    gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
-			    GEOSCoordSeq_setZ (cs, iv, z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+				  GEOSCoordSeq_setZ (cs, iv, z);
+			      }
 			    break;
 			default:
 			    gaiaGetPoint (ln->Coords, iv, &x, &y);
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+			      }
 			    break;
 			};
 		  }
-		geos = GEOSGeom_createLineString (cs);
+		if (handle != NULL)
+		    geos = GEOSGeom_createLineString_r (handle, cs);
+		else
+		    geos = GEOSGeom_createLineString (cs);
 	    }
 	  break;
       case GAIA_POLYGON:
@@ -253,9 +316,20 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 		rng = pg->Exterior;
 		/* exterior ring */
 		ring_points = rng->Points;
-		if (gaiaIsNotClosedRing (rng))
-		    ring_points++;
-		cs = GEOSCoordSeq_create (ring_points, dims);
+		if (cache)
+		  {
+		      if (gaiaIsNotClosedRing_r (cache, rng))
+			  ring_points++;
+		  }
+		else
+		  {
+		      if (gaiaIsNotClosedRing (rng))
+			  ring_points++;
+		  }
+		if (handle != NULL)
+		    cs = GEOSCoordSeq_create_r (handle, ring_points, dims);
+		else
+		    cs = GEOSCoordSeq_create (ring_points, dims);
 		for (iv = 0; iv < rng->Points; iv++)
 		  {
 		      switch (rng->DimensionModel)
@@ -269,9 +343,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 				  y0 = y;
 				  z0 = z;
 			      }
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
-			    GEOSCoordSeq_setZ (cs, iv, z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+				  GEOSCoordSeq_setZ (cs, iv, z);
+			      }
 			    break;
 			case GAIA_XY_M:
 			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
@@ -281,8 +364,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 				  x0 = x;
 				  y0 = y;
 			      }
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+			      }
 			    break;
 			case GAIA_XY_Z_M:
 			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
@@ -293,9 +384,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 				  y0 = y;
 				  z0 = z;
 			      }
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
-			    GEOSCoordSeq_setZ (cs, iv, z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+				  GEOSCoordSeq_setZ (cs, iv, z);
+			      }
 			    break;
 			default:
 			    gaiaGetPoint (rng->Coords, iv, &x, &y);
@@ -305,8 +405,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 				  x0 = x;
 				  y0 = y;
 			      }
-			    GEOSCoordSeq_setX (cs, iv, x);
-			    GEOSCoordSeq_setY (cs, iv, y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x);
+				  GEOSCoordSeq_setY (cs, iv, y);
+			      }
 			    break;
 			};
 		  }
@@ -318,17 +426,37 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 			{
 			case GAIA_XY_Z:
 			case GAIA_XY_Z_M:
-			    GEOSCoordSeq_setX (cs, iv, x0);
-			    GEOSCoordSeq_setY (cs, iv, y0);
-			    GEOSCoordSeq_setZ (cs, iv, z0);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x0);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y0);
+				  GEOSCoordSeq_setZ_r (handle, cs, iv, z0);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x0);
+				  GEOSCoordSeq_setY (cs, iv, y0);
+				  GEOSCoordSeq_setZ (cs, iv, z0);
+			      }
 			    break;
 			default:
-			    GEOSCoordSeq_setX (cs, iv, x0);
-			    GEOSCoordSeq_setY (cs, iv, y0);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, iv, x0);
+				  GEOSCoordSeq_setY_r (handle, cs, iv, y0);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, iv, x0);
+				  GEOSCoordSeq_setY (cs, iv, y0);
+			      }
 			    break;
 			};
 		  }
-		geos_ext = GEOSGeom_createLinearRing (cs);
+		if (handle != NULL)
+		    geos_ext = GEOSGeom_createLinearRing_r (handle, cs);
+		else
+		    geos_ext = GEOSGeom_createLinearRing (cs);
 		geos_holes = NULL;
 		if (pg->NumInteriors > 0)
 		  {
@@ -339,9 +467,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 			    /* interior ring */
 			    rng = pg->Interiors + ib;
 			    ring_points = rng->Points;
-			    if (gaiaIsNotClosedRing (rng))
-				ring_points++;
-			    cs = GEOSCoordSeq_create (ring_points, dims);
+			    if (cache != NULL)
+			      {
+				  if (gaiaIsNotClosedRing_r (cache, rng))
+				      ring_points++;
+			      }
+			    else
+			      {
+				  if (gaiaIsNotClosedRing (rng))
+				      ring_points++;
+			      }
+			    if (handle != NULL)
+				cs = GEOSCoordSeq_create_r (handle, ring_points,
+							    dims);
+			    else
+				cs = GEOSCoordSeq_create (ring_points, dims);
 			    for (iv = 0; iv < rng->Points; iv++)
 			      {
 				  switch (rng->DimensionModel)
@@ -356,9 +496,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					      y0 = y;
 					      z0 = z;
 					  }
-					GEOSCoordSeq_setX (cs, iv, x);
-					GEOSCoordSeq_setY (cs, iv, y);
-					GEOSCoordSeq_setZ (cs, iv, z);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_setX_r (handle, cs,
+								   iv, x);
+					      GEOSCoordSeq_setY_r (handle, cs,
+								   iv, y);
+					      GEOSCoordSeq_setZ_r (handle, cs,
+								   iv, z);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_setX (cs, iv, x);
+					      GEOSCoordSeq_setY (cs, iv, y);
+					      GEOSCoordSeq_setZ (cs, iv, z);
+					  }
 					break;
 				    case GAIA_XY_M:
 					gaiaGetPointXYM (rng->Coords, iv, &x,
@@ -369,8 +521,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					      x0 = x;
 					      y0 = y;
 					  }
-					GEOSCoordSeq_setX (cs, iv, x);
-					GEOSCoordSeq_setY (cs, iv, y);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_setX_r (handle, cs,
+								   iv, x);
+					      GEOSCoordSeq_setY_r (handle, cs,
+								   iv, y);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_setX (cs, iv, x);
+					      GEOSCoordSeq_setY (cs, iv, y);
+					  }
 					break;
 				    case GAIA_XY_Z_M:
 					gaiaGetPointXYZM (rng->Coords, iv, &x,
@@ -382,9 +544,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					      y0 = y;
 					      z0 = z;
 					  }
-					GEOSCoordSeq_setX (cs, iv, x);
-					GEOSCoordSeq_setY (cs, iv, y);
-					GEOSCoordSeq_setZ (cs, iv, z);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_setX_r (handle, cs,
+								   iv, x);
+					      GEOSCoordSeq_setY_r (handle, cs,
+								   iv, y);
+					      GEOSCoordSeq_setZ_r (handle, cs,
+								   iv, z);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_setX (cs, iv, x);
+					      GEOSCoordSeq_setY (cs, iv, y);
+					      GEOSCoordSeq_setZ (cs, iv, z);
+					  }
 					break;
 				    default:
 					gaiaGetPoint (rng->Coords, iv, &x, &y);
@@ -394,8 +568,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					      x0 = x;
 					      y0 = y;
 					  }
-					GEOSCoordSeq_setX (cs, iv, x);
-					GEOSCoordSeq_setY (cs, iv, y);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_setX_r (handle, cs,
+								   iv, x);
+					      GEOSCoordSeq_setY_r (handle, cs,
+								   iv, y);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_setX (cs, iv, x);
+					      GEOSCoordSeq_setY (cs, iv, y);
+					  }
 					break;
 				    };
 			      }
@@ -407,23 +591,54 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 				    {
 				    case GAIA_XY_Z:
 				    case GAIA_XY_Z_M:
-					GEOSCoordSeq_setX (cs, iv, x0);
-					GEOSCoordSeq_setY (cs, iv, y0);
-					GEOSCoordSeq_setZ (cs, iv, z0);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_setX_r (handle, cs,
+								   iv, x0);
+					      GEOSCoordSeq_setY_r (handle, cs,
+								   iv, y0);
+					      GEOSCoordSeq_setZ_r (handle, cs,
+								   iv, z0);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_setX (cs, iv, x0);
+					      GEOSCoordSeq_setY (cs, iv, y0);
+					      GEOSCoordSeq_setZ (cs, iv, z0);
+					  }
 					break;
 				    default:
-					GEOSCoordSeq_setX (cs, iv, x0);
-					GEOSCoordSeq_setY (cs, iv, y0);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_setX_r (handle, cs,
+								   iv, x0);
+					      GEOSCoordSeq_setY_r (handle, cs,
+								   iv, y0);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_setX (cs, iv, x0);
+					      GEOSCoordSeq_setY (cs, iv, y0);
+					  }
 					break;
 				    };
 			      }
-			    geos_int = GEOSGeom_createLinearRing (cs);
+			    if (handle != NULL)
+				geos_int =
+				    GEOSGeom_createLinearRing_r (handle, cs);
+			    else
+				geos_int = GEOSGeom_createLinearRing (cs);
 			    *(geos_holes + ib) = geos_int;
 			}
 		  }
-		geos =
-		    GEOSGeom_createPolygon (geos_ext, geos_holes,
-					    pg->NumInteriors);
+		if (handle != NULL)
+		    geos =
+			GEOSGeom_createPolygon_r (handle, geos_ext, geos_holes,
+						  pg->NumInteriors);
+		else
+		    geos =
+			GEOSGeom_createPolygon (geos_ext, geos_holes,
+						pg->NumInteriors);
 		if (geos_holes)
 		    free (geos_holes);
 	    }
@@ -459,21 +674,44 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 		pt = gaia->FirstPoint;
 		while (pt)
 		  {
-		      cs = GEOSCoordSeq_create (1, dims);
+		      if (handle != NULL)
+			  cs = GEOSCoordSeq_create_r (handle, 1, dims);
+		      else
+			  cs = GEOSCoordSeq_create (1, dims);
 		      switch (pt->DimensionModel)
 			{
 			case GAIA_XY_Z:
 			case GAIA_XY_Z_M:
-			    GEOSCoordSeq_setX (cs, 0, pt->X);
-			    GEOSCoordSeq_setY (cs, 0, pt->Y);
-			    GEOSCoordSeq_setZ (cs, 0, pt->Z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, pt->X);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y);
+				  GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, 0, pt->X);
+				  GEOSCoordSeq_setY (cs, 0, pt->Y);
+				  GEOSCoordSeq_setZ (cs, 0, pt->Z);
+			      }
 			    break;
 			default:
-			    GEOSCoordSeq_setX (cs, 0, pt->X);
-			    GEOSCoordSeq_setY (cs, 0, pt->Y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, pt->X);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, 0, pt->X);
+				  GEOSCoordSeq_setY (cs, 0, pt->Y);
+			      }
 			    break;
 			};
-		      geos_item = GEOSGeom_createPoint (cs);
+		      if (handle != NULL)
+			  geos_item = GEOSGeom_createPoint_r (handle, cs);
+		      else
+			  geos_item = GEOSGeom_createPoint (cs);
 		      *(geos_coll + nItem++) = geos_item;
 		      pt = pt->Next;
 		  }
@@ -483,37 +721,77 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 		ln = gaia->FirstLinestring;
 		while (ln)
 		  {
-		      cs = GEOSCoordSeq_create (ln->Points, dims);
+		      if (handle != NULL)
+			  cs = GEOSCoordSeq_create_r (handle, ln->Points, dims);
+		      else
+			  cs = GEOSCoordSeq_create (ln->Points, dims);
 		      for (iv = 0; iv < ln->Points; iv++)
 			{
 			    switch (ln->DimensionModel)
 			      {
 			      case GAIA_XY_Z:
 				  gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
-				  GEOSCoordSeq_setZ (cs, iv, z);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+					GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+					GEOSCoordSeq_setZ (cs, iv, z);
+				    }
 				  break;
 			      case GAIA_XY_M:
 				  gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+				    }
 				  break;
 			      case GAIA_XY_Z_M:
 				  gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z,
 						    &m);
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
-				  GEOSCoordSeq_setZ (cs, iv, z);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+					GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+					GEOSCoordSeq_setZ (cs, iv, z);
+				    }
 				  break;
 			      default:
 				  gaiaGetPoint (ln->Coords, iv, &x, &y);
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+				    }
 				  break;
 			      };
 			}
-		      geos_item = GEOSGeom_createLineString (cs);
+		      if (handle != NULL)
+			  geos_item = GEOSGeom_createLineString_r (handle, cs);
+		      else
+			  geos_item = GEOSGeom_createLineString (cs);
 		      *(geos_coll + nItem++) = geos_item;
 		      ln = ln->Next;
 		  }
@@ -526,9 +804,21 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 		      rng = pg->Exterior;
 		      /* exterior ring */
 		      ring_points = rng->Points;
-		      if (gaiaIsNotClosedRing (rng))
-			  ring_points++;
-		      cs = GEOSCoordSeq_create (ring_points, dims);
+		      if (cache != NULL)
+			{
+			    if (gaiaIsNotClosedRing_r (handle, rng))
+				ring_points++;
+			}
+		      else
+			{
+			    if (gaiaIsNotClosedRing (rng))
+				ring_points++;
+			}
+		      if (handle != NULL)
+			  cs = GEOSCoordSeq_create_r (handle, ring_points,
+						      dims);
+		      else
+			  cs = GEOSCoordSeq_create (ring_points, dims);
 		      for (iv = 0; iv < rng->Points; iv++)
 			{
 			    switch (rng->DimensionModel)
@@ -542,9 +832,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					y0 = y;
 					z0 = z;
 				    }
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
-				  GEOSCoordSeq_setZ (cs, iv, z);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+					GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+					GEOSCoordSeq_setZ (cs, iv, z);
+				    }
 				  break;
 			      case GAIA_XY_M:
 				  gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
@@ -554,8 +853,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					x0 = x;
 					y0 = y;
 				    }
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+				    }
 				  break;
 			      case GAIA_XY_Z_M:
 				  gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z,
@@ -567,9 +874,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					y0 = y;
 					z0 = z;
 				    }
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
-				  GEOSCoordSeq_setZ (cs, iv, z);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+					GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+					GEOSCoordSeq_setZ (cs, iv, z);
+				    }
 				  break;
 			      default:
 				  gaiaGetPoint (rng->Coords, iv, &x, &y);
@@ -579,8 +895,16 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					x0 = x;
 					y0 = y;
 				    }
-				  GEOSCoordSeq_setX (cs, iv, x);
-				  GEOSCoordSeq_setY (cs, iv, y);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv, x);
+					GEOSCoordSeq_setY_r (handle, cs, iv, y);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x);
+					GEOSCoordSeq_setY (cs, iv, y);
+				    }
 				  break;
 			      };
 			}
@@ -592,17 +916,42 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 			      {
 			      case GAIA_XY_Z:
 			      case GAIA_XY_Z_M:
-				  GEOSCoordSeq_setX (cs, iv, x0);
-				  GEOSCoordSeq_setY (cs, iv, y0);
-				  GEOSCoordSeq_setZ (cs, iv, z0);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv,
+							     x0);
+					GEOSCoordSeq_setY_r (handle, cs, iv,
+							     y0);
+					GEOSCoordSeq_setZ_r (handle, cs, iv,
+							     z0);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x0);
+					GEOSCoordSeq_setY (cs, iv, y0);
+					GEOSCoordSeq_setZ (cs, iv, z0);
+				    }
 				  break;
 			      default:
-				  GEOSCoordSeq_setX (cs, iv, x0);
-				  GEOSCoordSeq_setY (cs, iv, y0);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, iv,
+							     x0);
+					GEOSCoordSeq_setY_r (handle, cs, iv,
+							     y0);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, iv, x0);
+					GEOSCoordSeq_setY (cs, iv, y0);
+				    }
 				  break;
 			      };
 			}
-		      geos_ext = GEOSGeom_createLinearRing (cs);
+		      if (handle != NULL)
+			  geos_ext = GEOSGeom_createLinearRing_r (handle, cs);
+		      else
+			  geos_ext = GEOSGeom_createLinearRing (cs);
 		      geos_holes = NULL;
 		      if (pg->NumInteriors > 0)
 			{
@@ -614,9 +963,23 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 				  /* interior ring */
 				  rng = pg->Interiors + ib;
 				  ring_points = rng->Points;
-				  if (gaiaIsNotClosedRing (rng))
-				      ring_points++;
-				  cs = GEOSCoordSeq_create (ring_points, dims);
+				  if (cache != NULL)
+				    {
+					if (gaiaIsNotClosedRing_r (cache, rng))
+					    ring_points++;
+				    }
+				  else
+				    {
+					if (gaiaIsNotClosedRing (rng))
+					    ring_points++;
+				    }
+				  if (handle != NULL)
+				      cs = GEOSCoordSeq_create_r (handle,
+								  ring_points,
+								  dims);
+				  else
+				      cs = GEOSCoordSeq_create (ring_points,
+								dims);
 				  for (iv = 0; iv < rng->Points; iv++)
 				    {
 					switch (rng->DimensionModel)
@@ -631,9 +994,27 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 						    y0 = y;
 						    z0 = z;
 						}
-					      GEOSCoordSeq_setX (cs, iv, x);
-					      GEOSCoordSeq_setY (cs, iv, y);
-					      GEOSCoordSeq_setZ (cs, iv, z);
+					      if (handle != NULL)
+						{
+						    GEOSCoordSeq_setX_r (handle,
+									 cs, iv,
+									 x);
+						    GEOSCoordSeq_setY_r (handle,
+									 cs, iv,
+									 y);
+						    GEOSCoordSeq_setZ_r (handle,
+									 cs, iv,
+									 z);
+						}
+					      else
+						{
+						    GEOSCoordSeq_setX (cs, iv,
+								       x);
+						    GEOSCoordSeq_setY (cs, iv,
+								       y);
+						    GEOSCoordSeq_setZ (cs, iv,
+								       z);
+						}
 					      break;
 					  case GAIA_XY_M:
 					      gaiaGetPointXYM (rng->Coords, iv,
@@ -644,8 +1025,22 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 						    x0 = x;
 						    y0 = y;
 						}
-					      GEOSCoordSeq_setX (cs, iv, x);
-					      GEOSCoordSeq_setY (cs, iv, y);
+					      if (handle != NULL)
+						{
+						    GEOSCoordSeq_setX_r (handle,
+									 cs, iv,
+									 x);
+						    GEOSCoordSeq_setY_r (handle,
+									 cs, iv,
+									 y);
+						}
+					      else
+						{
+						    GEOSCoordSeq_setX (cs, iv,
+								       x);
+						    GEOSCoordSeq_setY (cs, iv,
+								       y);
+						}
 					      break;
 					  case GAIA_XY_Z_M:
 					      gaiaGetPointXYZM (rng->Coords, iv,
@@ -657,9 +1052,27 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 						    y0 = y;
 						    z0 = z;
 						}
-					      GEOSCoordSeq_setX (cs, iv, x);
-					      GEOSCoordSeq_setY (cs, iv, y);
-					      GEOSCoordSeq_setZ (cs, iv, z);
+					      if (handle != NULL)
+						{
+						    GEOSCoordSeq_setX_r (handle,
+									 cs, iv,
+									 x);
+						    GEOSCoordSeq_setY_r (handle,
+									 cs, iv,
+									 y);
+						    GEOSCoordSeq_setZ_r (handle,
+									 cs, iv,
+									 z);
+						}
+					      else
+						{
+						    GEOSCoordSeq_setX (cs, iv,
+								       x);
+						    GEOSCoordSeq_setY (cs, iv,
+								       y);
+						    GEOSCoordSeq_setZ (cs, iv,
+								       z);
+						}
 					      break;
 					  default:
 					      gaiaGetPoint (rng->Coords, iv, &x,
@@ -670,8 +1083,22 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 						    x0 = x;
 						    y0 = y;
 						}
-					      GEOSCoordSeq_setX (cs, iv, x);
-					      GEOSCoordSeq_setY (cs, iv, y);
+					      if (handle != NULL)
+						{
+						    GEOSCoordSeq_setX_r (handle,
+									 cs, iv,
+									 x);
+						    GEOSCoordSeq_setY_r (handle,
+									 cs, iv,
+									 y);
+						}
+					      else
+						{
+						    GEOSCoordSeq_setX (cs, iv,
+								       x);
+						    GEOSCoordSeq_setY (cs, iv,
+								       y);
+						}
 					      break;
 					  };
 				    }
@@ -683,23 +1110,66 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 					  {
 					  case GAIA_XY_Z:
 					  case GAIA_XY_Z_M:
-					      GEOSCoordSeq_setX (cs, iv, x0);
-					      GEOSCoordSeq_setY (cs, iv, y0);
-					      GEOSCoordSeq_setZ (cs, iv, z0);
+					      if (handle != NULL)
+						{
+						    GEOSCoordSeq_setX_r (handle,
+									 cs, iv,
+									 x0);
+						    GEOSCoordSeq_setY_r (handle,
+									 cs, iv,
+									 y0);
+						    GEOSCoordSeq_setZ_r (handle,
+									 cs, iv,
+									 z0);
+						}
+					      else
+						{
+						    GEOSCoordSeq_setX (cs, iv,
+								       x0);
+						    GEOSCoordSeq_setY (cs, iv,
+								       y0);
+						    GEOSCoordSeq_setZ (cs, iv,
+								       z0);
+						}
 					      break;
 					  default:
-					      GEOSCoordSeq_setX (cs, iv, x0);
-					      GEOSCoordSeq_setY (cs, iv, y0);
+					      if (handle != NULL)
+						{
+						    GEOSCoordSeq_setX_r (handle,
+									 cs, iv,
+									 x0);
+						    GEOSCoordSeq_setY_r (handle,
+									 cs, iv,
+									 y0);
+						}
+					      else
+						{
+						    GEOSCoordSeq_setX (cs, iv,
+								       x0);
+						    GEOSCoordSeq_setY (cs, iv,
+								       y0);
+						}
 					      break;
 					  };
 				    }
-				  geos_int = GEOSGeom_createLinearRing (cs);
+				  if (handle != NULL)
+				      geos_int =
+					  GEOSGeom_createLinearRing_r (handle,
+								       cs);
+				  else
+				      geos_int = GEOSGeom_createLinearRing (cs);
 				  *(geos_holes + ib) = geos_int;
 			      }
 			}
-		      geos_item =
-			  GEOSGeom_createPolygon (geos_ext, geos_holes,
-						  pg->NumInteriors);
+		      if (handle != NULL)
+			  geos_item =
+			      GEOSGeom_createPolygon_r (handle, geos_ext,
+							geos_holes,
+							pg->NumInteriors);
+		      else
+			  geos_item =
+			      GEOSGeom_createPolygon (geos_ext, geos_holes,
+						      pg->NumInteriors);
 		      if (geos_holes)
 			  free (geos_holes);
 		      *(geos_coll + nItem++) = geos_item;
@@ -713,7 +1183,12 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 	      geos_type = GEOS_MULTILINESTRING;
 	  if (type == GAIA_MULTIPOLYGON)
 	      geos_type = GEOS_MULTIPOLYGON;
-	  geos = GEOSGeom_createCollection (geos_type, geos_coll, n_items);
+	  if (handle != NULL)
+	      geos =
+		  GEOSGeom_createCollection_r (handle, geos_type, geos_coll,
+					       n_items);
+	  else
+	      geos = GEOSGeom_createCollection (geos_type, geos_coll, n_items);
 	  if (geos_coll)
 	      free (geos_coll);
 	  break;
@@ -721,12 +1196,18 @@ toGeosGeometry (const gaiaGeomCollPtr gaia, int mode)
 	  geos = NULL;
       };
     if (geos)
-	GEOSSetSRID (geos, gaia->Srid);
+      {
+	  if (handle != NULL)
+	      GEOSSetSRID_r (handle, geos, gaia->Srid);
+	  else
+	      GEOSSetSRID (geos, gaia->Srid);
+      }
     return geos;
 }
 
 static gaiaGeomCollPtr
-fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
+fromGeosGeometry (GEOSContextHandle_t handle, const GEOSGeometry * geos,
+		  const int dimension_model)
 {
 /* converting a GEOS Geometry into a GAIA Geometry */
     int type;
@@ -753,7 +1234,10 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
     gaiaRingPtr rng;
     if (!geos)
 	return NULL;
-    type = GEOSGeomTypeId (geos);
+    if (handle != NULL)
+	type = GEOSGeomTypeId_r (handle, geos);
+    else
+	type = GEOSGeomTypeId (geos);
     switch (type)
       {
       case GEOS_POINT:
@@ -766,19 +1250,45 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 	  else
 	      gaia = gaiaAllocGeomColl ();
 	  gaia->DeclaredType = GAIA_POINT;
-	  gaia->Srid = GEOSGetSRID (geos);
-	  cs = GEOSGeom_getCoordSeq (geos);
-	  GEOSCoordSeq_getDimensions (cs, &dims);
+	  if (handle != NULL)
+	    {
+		gaia->Srid = GEOSGetSRID_r (handle, geos);
+		cs = GEOSGeom_getCoordSeq_r (handle, geos);
+		GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+	    }
+	  else
+	    {
+		gaia->Srid = GEOSGetSRID (geos);
+		cs = GEOSGeom_getCoordSeq (geos);
+		GEOSCoordSeq_getDimensions (cs, &dims);
+	    }
 	  if (dims == 3)
 	    {
-		GEOSCoordSeq_getX (cs, 0, &x);
-		GEOSCoordSeq_getY (cs, 0, &y);
-		GEOSCoordSeq_getZ (cs, 0, &z);
+		if (handle != NULL)
+		  {
+		      GEOSCoordSeq_getX_r (handle, cs, 0, &x);
+		      GEOSCoordSeq_getY_r (handle, cs, 0, &y);
+		      GEOSCoordSeq_getZ_r (handle, cs, 0, &z);
+		  }
+		else
+		  {
+		      GEOSCoordSeq_getX (cs, 0, &x);
+		      GEOSCoordSeq_getY (cs, 0, &y);
+		      GEOSCoordSeq_getZ (cs, 0, &z);
+		  }
 	    }
 	  else
 	    {
-		GEOSCoordSeq_getX (cs, 0, &x);
-		GEOSCoordSeq_getY (cs, 0, &y);
+		if (handle != NULL)
+		  {
+		      GEOSCoordSeq_getX_r (handle, cs, 0, &x);
+		      GEOSCoordSeq_getY_r (handle, cs, 0, &y);
+		  }
+		else
+		  {
+		      GEOSCoordSeq_getX (cs, 0, &x);
+		      GEOSCoordSeq_getY (cs, 0, &y);
+		  }
 		z = 0.0;
 	    }
 	  if (dimension_model == GAIA_XY_Z)
@@ -800,23 +1310,50 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 	  else
 	      gaia = gaiaAllocGeomColl ();
 	  gaia->DeclaredType = GAIA_LINESTRING;
-	  gaia->Srid = GEOSGetSRID (geos);
-	  cs = GEOSGeom_getCoordSeq (geos);
-	  GEOSCoordSeq_getDimensions (cs, &dims);
-	  GEOSCoordSeq_getSize (cs, &points);
+	  if (handle != NULL)
+	    {
+		gaia->Srid = GEOSGetSRID_r (handle, geos);
+		cs = GEOSGeom_getCoordSeq_r (handle, geos);
+		GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+		GEOSCoordSeq_getSize_r (handle, cs, &points);
+	    }
+	  else
+	    {
+		gaia->Srid = GEOSGetSRID (geos);
+		cs = GEOSGeom_getCoordSeq (geos);
+		GEOSCoordSeq_getDimensions (cs, &dims);
+		GEOSCoordSeq_getSize (cs, &points);
+	    }
 	  ln = gaiaAddLinestringToGeomColl (gaia, points);
 	  for (iv = 0; iv < (int) points; iv++)
 	    {
 		if (dims == 3)
 		  {
-		      GEOSCoordSeq_getX (cs, iv, &x);
-		      GEOSCoordSeq_getY (cs, iv, &y);
-		      GEOSCoordSeq_getZ (cs, iv, &z);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+			    GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+			    GEOSCoordSeq_getZ_r (handle, cs, iv, &z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_getX (cs, iv, &x);
+			    GEOSCoordSeq_getY (cs, iv, &y);
+			    GEOSCoordSeq_getZ (cs, iv, &z);
+			}
 		  }
 		else
 		  {
-		      GEOSCoordSeq_getX (cs, iv, &x);
-		      GEOSCoordSeq_getY (cs, iv, &y);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+			    GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+			}
+		      else
+			{
+			    GEOSCoordSeq_getX (cs, iv, &x);
+			    GEOSCoordSeq_getY (cs, iv, &y);
+			}
 		      z = 0.0;
 		  }
 		if (dimension_model == GAIA_XY_Z)
@@ -847,27 +1384,58 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 	  else
 	      gaia = gaiaAllocGeomColl ();
 	  gaia->DeclaredType = GAIA_POLYGON;
-	  gaia->Srid = GEOSGetSRID (geos);
+	  if (handle != NULL)
+	      gaia->Srid = GEOSGetSRID_r (handle, geos);
+	  else
+	      gaia->Srid = GEOSGetSRID (geos);
 	  /* exterior ring */
-	  holes = GEOSGetNumInteriorRings (geos);
-	  geos_ring = GEOSGetExteriorRing (geos);
-	  cs = GEOSGeom_getCoordSeq (geos_ring);
-	  GEOSCoordSeq_getDimensions (cs, &dims);
-	  GEOSCoordSeq_getSize (cs, &points);
+	  if (handle != NULL)
+	    {
+		holes = GEOSGetNumInteriorRings_r (handle, geos);
+		geos_ring = GEOSGetExteriorRing_r (handle, geos);
+		cs = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+		GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+		GEOSCoordSeq_getSize_r (handle, cs, &points);
+	    }
+	  else
+	    {
+		holes = GEOSGetNumInteriorRings (geos);
+		geos_ring = GEOSGetExteriorRing (geos);
+		cs = GEOSGeom_getCoordSeq (geos_ring);
+		GEOSCoordSeq_getDimensions (cs, &dims);
+		GEOSCoordSeq_getSize (cs, &points);
+	    }
 	  pg = gaiaAddPolygonToGeomColl (gaia, points, holes);
 	  rng = pg->Exterior;
 	  for (iv = 0; iv < (int) points; iv++)
 	    {
 		if (dims == 3)
 		  {
-		      GEOSCoordSeq_getX (cs, iv, &x);
-		      GEOSCoordSeq_getY (cs, iv, &y);
-		      GEOSCoordSeq_getZ (cs, iv, &z);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+			    GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+			    GEOSCoordSeq_getZ_r (handle, cs, iv, &z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_getX (cs, iv, &x);
+			    GEOSCoordSeq_getY (cs, iv, &y);
+			    GEOSCoordSeq_getZ (cs, iv, &z);
+			}
 		  }
 		else
 		  {
-		      GEOSCoordSeq_getX (cs, iv, &x);
-		      GEOSCoordSeq_getY (cs, iv, &y);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+			    GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+			}
+		      else
+			{
+			    GEOSCoordSeq_getX (cs, iv, &x);
+			    GEOSCoordSeq_getY (cs, iv, &y);
+			}
 		      z = 0.0;
 		  }
 		if (dimension_model == GAIA_XY_Z)
@@ -890,23 +1458,50 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 	  for (ib = 0; ib < holes; ib++)
 	    {
 		/* interior rings */
-		geos_ring = GEOSGetInteriorRingN (geos, ib);
-		cs = GEOSGeom_getCoordSeq (geos_ring);
-		GEOSCoordSeq_getDimensions (cs, &dims);
-		GEOSCoordSeq_getSize (cs, &points);
+		if (handle != NULL)
+		  {
+		      geos_ring = GEOSGetInteriorRingN_r (handle, geos, ib);
+		      cs = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+		      GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+		      GEOSCoordSeq_getSize_r (handle, cs, &points);
+		  }
+		else
+		  {
+		      geos_ring = GEOSGetInteriorRingN (geos, ib);
+		      cs = GEOSGeom_getCoordSeq (geos_ring);
+		      GEOSCoordSeq_getDimensions (cs, &dims);
+		      GEOSCoordSeq_getSize (cs, &points);
+		  }
 		rng = gaiaAddInteriorRing (pg, ib, points);
 		for (iv = 0; iv < (int) points; iv++)
 		  {
 		      if (dims == 3)
 			{
-			    GEOSCoordSeq_getX (cs, iv, &x);
-			    GEOSCoordSeq_getY (cs, iv, &y);
-			    GEOSCoordSeq_getZ (cs, iv, &z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+				  GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+				  GEOSCoordSeq_getZ_r (handle, cs, iv, &z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_getX (cs, iv, &x);
+				  GEOSCoordSeq_getY (cs, iv, &y);
+				  GEOSCoordSeq_getZ (cs, iv, &z);
+			      }
 			}
 		      else
 			{
-			    GEOSCoordSeq_getX (cs, iv, &x);
-			    GEOSCoordSeq_getY (cs, iv, &y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+				  GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_getX (cs, iv, &x);
+				  GEOSCoordSeq_getY (cs, iv, &y);
+			      }
 			    z = 0.0;
 			}
 		      if (dimension_model == GAIA_XY_Z)
@@ -948,28 +1543,69 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 	      gaia->DeclaredType = GAIA_MULTIPOLYGON;
 	  else
 	      gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION;
-	  gaia->Srid = GEOSGetSRID (geos);
-	  nItems = GEOSGetNumGeometries (geos);
+	  if (handle != NULL)
+	    {
+		gaia->Srid = GEOSGetSRID_r (handle, geos);
+		nItems = GEOSGetNumGeometries_r (handle, geos);
+	    }
+	  else
+	    {
+		gaia->Srid = GEOSGetSRID (geos);
+		nItems = GEOSGetNumGeometries (geos);
+	    }
 	  for (it = 0; it < nItems; it++)
 	    {
 		/* looping on elementaty geometries */
-		geos_item = GEOSGetGeometryN (geos, it);
-		itemType = GEOSGeomTypeId (geos_item);
+		if (handle != NULL)
+		  {
+		      geos_item = GEOSGetGeometryN_r (handle, geos, it);
+		      itemType = GEOSGeomTypeId_r (handle, geos_item);
+		  }
+		else
+		  {
+		      geos_item = GEOSGetGeometryN (geos, it);
+		      itemType = GEOSGeomTypeId (geos_item);
+		  }
 		switch (itemType)
 		  {
 		  case GEOS_POINT:
-		      cs = GEOSGeom_getCoordSeq (geos_item);
-		      GEOSCoordSeq_getDimensions (cs, &dims);
+		      if (handle != NULL)
+			{
+			    cs = GEOSGeom_getCoordSeq_r (handle, geos_item);
+			    GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+			}
+		      else
+			{
+			    cs = GEOSGeom_getCoordSeq (geos_item);
+			    GEOSCoordSeq_getDimensions (cs, &dims);
+			}
 		      if (dims == 3)
 			{
-			    GEOSCoordSeq_getX (cs, 0, &x);
-			    GEOSCoordSeq_getY (cs, 0, &y);
-			    GEOSCoordSeq_getZ (cs, 0, &z);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_getX_r (handle, cs, 0, &x);
+				  GEOSCoordSeq_getY_r (handle, cs, 0, &y);
+				  GEOSCoordSeq_getZ_r (handle, cs, 0, &z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_getX (cs, 0, &x);
+				  GEOSCoordSeq_getY (cs, 0, &y);
+				  GEOSCoordSeq_getZ (cs, 0, &z);
+			      }
 			}
 		      else
 			{
-			    GEOSCoordSeq_getX (cs, 0, &x);
-			    GEOSCoordSeq_getY (cs, 0, &y);
+			    if (handle != NULL)
+			      {
+				  GEOSCoordSeq_getX_r (handle, cs, 0, &x);
+				  GEOSCoordSeq_getY_r (handle, cs, 0, &y);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_getX (cs, 0, &x);
+				  GEOSCoordSeq_getY (cs, 0, &y);
+			      }
 			    z = 0.0;
 			}
 		      if (dimension_model == GAIA_XY_Z)
@@ -982,22 +1618,53 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 			  gaiaAddPointToGeomColl (gaia, x, y);
 		      break;
 		  case GEOS_LINESTRING:
-		      cs = GEOSGeom_getCoordSeq (geos_item);
-		      GEOSCoordSeq_getDimensions (cs, &dims);
-		      GEOSCoordSeq_getSize (cs, &points);
+		      if (handle != NULL)
+			{
+			    cs = GEOSGeom_getCoordSeq_r (handle, geos_item);
+			    GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+			    GEOSCoordSeq_getSize_r (handle, cs, &points);
+			}
+		      else
+			{
+			    cs = GEOSGeom_getCoordSeq (geos_item);
+			    GEOSCoordSeq_getDimensions (cs, &dims);
+			    GEOSCoordSeq_getSize (cs, &points);
+			}
 		      ln = gaiaAddLinestringToGeomColl (gaia, points);
 		      for (iv = 0; iv < (int) points; iv++)
 			{
 			    if (dims == 3)
 			      {
-				  GEOSCoordSeq_getX (cs, iv, &x);
-				  GEOSCoordSeq_getY (cs, iv, &y);
-				  GEOSCoordSeq_getZ (cs, iv, &z);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_getX_r (handle, cs, iv,
+							     &x);
+					GEOSCoordSeq_getY_r (handle, cs, iv,
+							     &y);
+					GEOSCoordSeq_getZ_r (handle, cs, iv,
+							     &z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_getX (cs, iv, &x);
+					GEOSCoordSeq_getY (cs, iv, &y);
+					GEOSCoordSeq_getZ (cs, iv, &z);
+				    }
 			      }
 			    else
 			      {
-				  GEOSCoordSeq_getX (cs, iv, &x);
-				  GEOSCoordSeq_getY (cs, iv, &y);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_getX_r (handle, cs, iv,
+							     &x);
+					GEOSCoordSeq_getY_r (handle, cs, iv,
+							     &y);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_getX (cs, iv, &x);
+					GEOSCoordSeq_getY (cs, iv, &y);
+				    }
 				  z = 0.0;
 			      }
 			    if (dimension_model == GAIA_XY_Z)
@@ -1020,28 +1687,68 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 			}
 		      break;
 		  case GEOS_MULTILINESTRING:
-		      nSubItems = GEOSGetNumGeometries (geos_item);
+		      if (handle != NULL)
+			  nSubItems =
+			      GEOSGetNumGeometries_r (handle, geos_item);
+		      else
+			  nSubItems = GEOSGetNumGeometries (geos_item);
 		      for (sub_it = 0; sub_it < nSubItems; sub_it++)
 			{
 			    /* looping on elementaty geometries */
-			    geos_sub_item =
-				GEOSGetGeometryN (geos_item, sub_it);
-			    cs = GEOSGeom_getCoordSeq (geos_sub_item);
-			    GEOSCoordSeq_getDimensions (cs, &dims);
-			    GEOSCoordSeq_getSize (cs, &points);
+			    if (handle != NULL)
+			      {
+				  geos_sub_item =
+				      GEOSGetGeometryN_r (handle, geos_item,
+							  sub_it);
+				  cs = GEOSGeom_getCoordSeq_r (handle,
+							       geos_sub_item);
+				  GEOSCoordSeq_getDimensions_r (handle, cs,
+								&dims);
+				  GEOSCoordSeq_getSize_r (handle, cs, &points);
+			      }
+			    else
+			      {
+				  geos_sub_item =
+				      GEOSGetGeometryN (geos_item, sub_it);
+				  cs = GEOSGeom_getCoordSeq (geos_sub_item);
+				  GEOSCoordSeq_getDimensions (cs, &dims);
+				  GEOSCoordSeq_getSize (cs, &points);
+			      }
 			    ln = gaiaAddLinestringToGeomColl (gaia, points);
 			    for (iv = 0; iv < (int) points; iv++)
 			      {
 				  if (dims == 3)
 				    {
-					GEOSCoordSeq_getX (cs, iv, &x);
-					GEOSCoordSeq_getY (cs, iv, &y);
-					GEOSCoordSeq_getZ (cs, iv, &z);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   iv, &x);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   iv, &y);
+					      GEOSCoordSeq_getZ_r (handle, cs,
+								   iv, &z);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX (cs, iv, &x);
+					      GEOSCoordSeq_getY (cs, iv, &y);
+					      GEOSCoordSeq_getZ (cs, iv, &z);
+					  }
 				    }
 				  else
 				    {
-					GEOSCoordSeq_getX (cs, iv, &x);
-					GEOSCoordSeq_getY (cs, iv, &y);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   iv, &x);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   iv, &y);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX (cs, iv, &x);
+					      GEOSCoordSeq_getY (cs, iv, &y);
+					  }
 					z = 0.0;
 				    }
 				  if (dimension_model == GAIA_XY_Z)
@@ -1068,25 +1775,60 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 		      break;
 		  case GEOS_POLYGON:
 		      /* exterior ring */
-		      holes = GEOSGetNumInteriorRings (geos_item);
-		      geos_ring = GEOSGetExteriorRing (geos_item);
-		      cs = GEOSGeom_getCoordSeq (geos_ring);
-		      GEOSCoordSeq_getDimensions (cs, &dims);
-		      GEOSCoordSeq_getSize (cs, &points);
+		      if (handle != NULL)
+			{
+			    holes =
+				GEOSGetNumInteriorRings_r (handle, geos_item);
+			    geos_ring =
+				GEOSGetExteriorRing_r (handle, geos_item);
+			    cs = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+			    GEOSCoordSeq_getDimensions_r (handle, cs, &dims);
+			    GEOSCoordSeq_getSize_r (handle, cs, &points);
+			}
+		      else
+			{
+			    holes = GEOSGetNumInteriorRings (geos_item);
+			    geos_ring = GEOSGetExteriorRing (geos_item);
+			    cs = GEOSGeom_getCoordSeq (geos_ring);
+			    GEOSCoordSeq_getDimensions (cs, &dims);
+			    GEOSCoordSeq_getSize (cs, &points);
+			}
 		      pg = gaiaAddPolygonToGeomColl (gaia, points, holes);
 		      rng = pg->Exterior;
 		      for (iv = 0; iv < (int) points; iv++)
 			{
 			    if (dims == 3)
 			      {
-				  GEOSCoordSeq_getX (cs, iv, &x);
-				  GEOSCoordSeq_getY (cs, iv, &y);
-				  GEOSCoordSeq_getZ (cs, iv, &z);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_getX_r (handle, cs, iv,
+							     &x);
+					GEOSCoordSeq_getY_r (handle, cs, iv,
+							     &y);
+					GEOSCoordSeq_getZ_r (handle, cs, iv,
+							     &z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_getX (cs, iv, &x);
+					GEOSCoordSeq_getY (cs, iv, &y);
+					GEOSCoordSeq_getZ (cs, iv, &z);
+				    }
 			      }
 			    else
 			      {
-				  GEOSCoordSeq_getX (cs, iv, &x);
-				  GEOSCoordSeq_getY (cs, iv, &y);
+				  if (handle != NULL)
+				    {
+					GEOSCoordSeq_getX_r (handle, cs, iv,
+							     &x);
+					GEOSCoordSeq_getY_r (handle, cs, iv,
+							     &y);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_getX (cs, iv, &x);
+					GEOSCoordSeq_getY (cs, iv, &y);
+				    }
 				  z = 0.0;
 			      }
 			    if (dimension_model == GAIA_XY_Z)
@@ -1110,23 +1852,60 @@ fromGeosGeometry (const GEOSGeometry * geos, const int dimension_model)
 		      for (ib = 0; ib < holes; ib++)
 			{
 			    /* interior rings */
-			    geos_ring = GEOSGetInteriorRingN (geos_item, ib);
-			    cs = GEOSGeom_getCoordSeq (geos_ring);
-			    GEOSCoordSeq_getDimensions (cs, &dims);
-			    GEOSCoordSeq_getSize (cs, &points);
+			    if (handle != NULL)
+			      {
+				  geos_ring =
+				      GEOSGetInteriorRingN_r (handle, geos_item,
+							      ib);
+				  cs = GEOSGeom_getCoordSeq_r (handle,
+							       geos_ring);
+				  GEOSCoordSeq_getDimensions_r (handle, cs,
+								&dims);
+				  GEOSCoordSeq_getSize_r (handle, cs, &points);
+			      }
+			    else
+			      {
+				  geos_ring =
+				      GEOSGetInteriorRingN (geos_item, ib);
+				  cs = GEOSGeom_getCoordSeq (geos_ring);
+				  GEOSCoordSeq_getDimensions (cs, &dims);
+				  GEOSCoordSeq_getSize (cs, &points);
+			      }
 			    rng = gaiaAddInteriorRing (pg, ib, points);
 			    for (iv = 0; iv < (int) points; iv++)
 			      {
 				  if (dims == 3)
 				    {
-					GEOSCoordSeq_getX (cs, iv, &x);
-					GEOSCoordSeq_getY (cs, iv, &y);
-					GEOSCoordSeq_getZ (cs, iv, &z);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   iv, &x);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   iv, &y);
+					      GEOSCoordSeq_getZ_r (handle, cs,
+								   iv, &z);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX (cs, iv, &x);
+					      GEOSCoordSeq_getY (cs, iv, &y);
+					      GEOSCoordSeq_getZ (cs, iv, &z);
+					  }
 				    }
 				  else
 				    {
-					GEOSCoordSeq_getX (cs, iv, &x);
-					GEOSCoordSeq_getY (cs, iv, &y);
+					if (handle != NULL)
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   iv, &x);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   iv, &y);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX (cs, iv, &x);
+					      GEOSCoordSeq_getY (cs, iv, &y);
+					  }
 					z = 0.0;
 				    }
 				  if (dimension_model == GAIA_XY_Z)
@@ -1162,7 +1941,25 @@ GAIAGEO_DECLARE void *
 gaiaToGeos (const gaiaGeomCollPtr gaia)
 {
 /* converting a GAIA Geometry into a GEOS Geometry */
-    return toGeosGeometry (gaia, GAIA2GEOS_ALL);
+    return toGeosGeometry (NULL, NULL, gaia, GAIA2GEOS_ALL);
+}
+
+GAIAGEO_DECLARE void *
+gaiaToGeos_r (const void *p_cache, const gaiaGeomCollPtr gaia)
+{
+/* converting a GAIA Geometry into a GEOS Geometry */
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    return toGeosGeometry (cache, handle, gaia, GAIA2GEOS_ALL);
 }
 
 GAIAGEO_DECLARE void *
@@ -1174,7 +1971,31 @@ gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode)
 	;
     else
 	mode = GAIA2GEOS_ALL;
-    return toGeosGeometry (gaia, mode);
+    return toGeosGeometry (NULL, NULL, gaia, mode);
+}
+
+GAIAGEO_DECLARE void *
+gaiaToGeosSelective_r (const void *p_cache, const gaiaGeomCollPtr gaia,
+		       int mode)
+{
+/* converting a GAIA Geometry into a GEOS Geometry (selected type) */
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    if (mode == GAIA2GEOS_ONLY_POINTS || mode == GAIA2GEOS_ONLY_LINESTRINGS
+	|| mode == GAIA2GEOS_ONLY_POLYGONS)
+	;
+    else
+	mode = GAIA2GEOS_ALL;
+    return toGeosGeometry (cache, handle, gaia, mode);
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
@@ -1182,7 +2003,7 @@ gaiaFromGeos_XY (const void *xgeos)
 {
 /* converting a GEOS Geometry into a GAIA Geometry [XY] */
     const GEOSGeometry *geos = xgeos;
-    return fromGeosGeometry (geos, GAIA_XY);
+    return fromGeosGeometry (NULL, geos, GAIA_XY);
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
@@ -1190,7 +2011,7 @@ gaiaFromGeos_XYZ (const void *xgeos)
 {
 /* converting a GEOS Geometry into a GAIA Geometry [XYZ] */
     const GEOSGeometry *geos = xgeos;
-    return fromGeosGeometry (geos, GAIA_XY_Z);
+    return fromGeosGeometry (NULL, geos, GAIA_XY_Z);
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
@@ -1198,7 +2019,7 @@ gaiaFromGeos_XYM (const void *xgeos)
 {
 /* converting a GEOS Geometry into a GAIA Geometry [XYM] */
     const GEOSGeometry *geos = xgeos;
-    return fromGeosGeometry (geos, GAIA_XY_M);
+    return fromGeosGeometry (NULL, geos, GAIA_XY_M);
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
@@ -1206,7 +2027,83 @@ gaiaFromGeos_XYZM (const void *xgeos)
 {
 /* converting a GEOS Geometry into a GAIA Geometry [XYZM] */
     const GEOSGeometry *geos = xgeos;
-    return fromGeosGeometry (geos, GAIA_XY_Z_M);
+    return fromGeosGeometry (NULL, geos, GAIA_XY_Z_M);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaFromGeos_XY_r (const void *p_cache, const void *xgeos)
+{
+/* converting a GEOS Geometry into a GAIA Geometry [XY] */
+    const GEOSGeometry *geos = xgeos;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    return fromGeosGeometry (handle, geos, GAIA_XY);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaFromGeos_XYZ_r (const void *p_cache, const void *xgeos)
+{
+/* converting a GEOS Geometry into a GAIA Geometry [XYZ] */
+    const GEOSGeometry *geos = xgeos;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    return fromGeosGeometry (handle, geos, GAIA_XY_Z);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaFromGeos_XYM_r (const void *p_cache, const void *xgeos)
+{
+/* converting a GEOS Geometry into a GAIA Geometry [XYM] */
+    const GEOSGeometry *geos = xgeos;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    return fromGeosGeometry (handle, geos, GAIA_XY_M);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaFromGeos_XYZM_r (const void *p_cache, const void *xgeos)
+{
+/* converting a GEOS Geometry into a GAIA Geometry [XYZM] */
+    const GEOSGeometry *geos = xgeos;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    return fromGeosGeometry (handle, geos, GAIA_XY_Z_M);
 }
 
 #endif /* end including GEOS */
diff --git a/src/gaiageo/gg_gml.c b/src/gaiageo/gg_gml.c
index 776161d..fba7cc7 100644
--- a/src/gaiageo/gg_gml.c
+++ b/src/gaiageo/gg_gml.c
@@ -85,6 +85,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #define GAIA_GML_MULTIPOLYGON		8
 #define GAIA_GML_MULTISURFACE		9
 #define GAIA_GML_MULTIGEOMETRY		10
+#define GAIA_GML_BOX			11
 
 #define GML_DYN_NONE	0
 #define GML_DYN_DYNLINE	1
@@ -688,6 +689,20 @@ guessGmlSrid (gmlNodePtr node)
 			      }
 			}
 		  }
+		if (len > 40)
+		  {
+		      if (strncmp
+			  (attr->Value,
+			   "http://www.opengis.net/gml/srs/epsg.xml#", 40) == 0)
+			{
+			    int i = strlen (attr->Value) - 1;
+			    for (; i >= 0; i--)
+			      {
+				  if (*(attr->Value + i) == '#')
+				      return atoi (attr->Value + i + 1);
+			      }
+			}
+		  }
 	    }
 	  attr = attr->Next;
       }
@@ -748,6 +763,8 @@ guessGmlGeometryType (gmlNodePtr node)
     if (strcmp (node->Tag, "gml:MultiGeometry") == 0
 	|| strcmp (node->Tag, "MultiGeometry") == 0)
 	type = GAIA_GML_MULTIGEOMETRY;
+    if (strcmp (node->Tag, "gml:Box") == 0 || strcmp (node->Tag, "Box") == 0)
+	type = GAIA_GML_BOX;
     return type;
 }
 
@@ -1282,6 +1299,103 @@ gml_count_dyn_points (gaiaDynamicLinePtr dyn)
 }
 
 static int
+gml_parse_box (struct gml_data *p_data, gaiaGeomCollPtr geom,
+	       gmlNodePtr node, int srid, gmlNodePtr * next)
+{
+/* parsing a <gml:Box> */
+    gaiaGeomCollPtr last;
+    gaiaGeomCollPtr pg;
+    gaiaPolygonPtr new_pg;
+    gaiaRingPtr ring;
+    gaiaPointPtr pt;
+    double minx;
+    double miny;
+    double maxx;
+    double maxy;
+    int has_z;
+    int points = 0;
+    gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine ();
+    gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn);
+
+    if (strcmp (node->Tag, "gml:coordinates") == 0
+	|| strcmp (node->Tag, "coordinates") == 0)
+      {
+	  /* parsing a GML v.2.x <gml:LineString> */
+	  if (!gml_parse_coordinates (node->Coordinates, dyn, &has_z))
+	      goto error;
+	  node = node->Next;
+	  if (node == NULL)
+	      goto error;
+	  if (strcmp (node->Tag, "gml:coordinates") == 0
+	      || strcmp (node->Tag, "coordinates") == 0)
+	      ;
+	  else
+	      goto error;
+	  node = node->Next;
+	  if (node == NULL)
+	      goto error;
+	  if (strcmp (node->Tag, "gml:Box") == 0
+	      || strcmp (node->Tag, "Box") == 0)
+	      ;
+	  else
+	      goto error;
+	  *next = node->Next;
+	  goto ok;
+      }
+
+  ok:
+/* ok, GML nodes match as expected */
+    points = gml_count_dyn_points (dyn);
+    if (points != 2)
+	goto error;
+    pt = dyn->First;
+    minx = pt->X;
+    miny = pt->Y;
+    maxx = pt->X;
+    maxy = pt->Y;
+    while (pt)
+      {
+	  if (pt->X < minx)
+	      minx = pt->X;
+	  if (pt->Y < miny)
+	      miny = pt->Y;
+	  if (pt->X > maxx)
+	      maxx = pt->X;
+	  if (pt->Y > maxy)
+	      maxy = pt->Y;
+	  pt = pt->Next;
+      }
+    pg = gaiaAllocGeomColl ();
+    gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg);
+    pg->Srid = srid;
+    new_pg = gaiaAddPolygonToGeomColl (pg, 5, 0);
+    /* initializing the EXTERIOR RING */
+    ring = new_pg->Exterior;
+    gaiaSetPoint (ring->Coords, 0, minx, miny);
+    gaiaSetPoint (ring->Coords, 1, maxx, miny);
+    gaiaSetPoint (ring->Coords, 2, maxx, maxy);
+    gaiaSetPoint (ring->Coords, 3, minx, maxy);
+    gaiaSetPoint (ring->Coords, 4, minx, miny);
+    last = geom;
+    while (1)
+      {
+	  /* searching the last Geometry within chain */
+	  if (last->Next == NULL)
+	      break;
+	  last = last->Next;
+      }
+    last->Next = pg;
+    gmlMapDynClean (p_data, dyn);
+    gaiaFreeDynamicLine (dyn);
+    return 1;
+
+  error:
+    gmlMapDynClean (p_data, dyn);
+    gaiaFreeDynamicLine (dyn);
+    return 0;
+}
+
+static int
 gml_parse_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom,
 		      gmlNodePtr node, int srid, gmlNodePtr * next)
 {
@@ -2479,8 +2593,8 @@ gml_parse_multi_geometry (struct gml_data *p_data, gaiaGeomCollPtr geom,
 }
 
 static gaiaGeomCollPtr
-gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
-		       sqlite3 * sqlite_handle)
+gml_validate_geometry (const void *cache, struct gml_data *p_data,
+		       gaiaGeomCollPtr chain, sqlite3 * sqlite_handle)
 {
     int xy = 0;
     int xyz = 0;
@@ -2666,7 +2780,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -2724,7 +2843,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -2787,7 +2911,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -2847,7 +2976,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -2911,7 +3045,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -2982,7 +3121,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -3054,7 +3198,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -3136,7 +3285,12 @@ gml_validate_geometry (struct gml_data *p_data, gaiaGeomCollPtr chain,
 				;
 			    else
 			      {
-				  g2 = gaiaTransform (g, proj_from, proj_to);
+				  if (cache != NULL)
+				      g2 = gaiaTransform_r (cache, g, proj_from,
+							    proj_to);
+				  else
+				      g2 = gaiaTransform (g, proj_from,
+							  proj_to);
 				  if (!g2)
 				      g2 = g;
 				  else
@@ -3210,7 +3364,7 @@ gml_free_geom_chain (struct gml_data *p_data, gaiaGeomCollPtr geom)
 }
 
 static gaiaGeomCollPtr
-gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree,
+gml_build_geometry (const void *cache, struct gml_data *p_data, gmlNodePtr tree,
 		    sqlite3 * sqlite_handle)
 {
 /* attempting to build a geometry from GML nodes */
@@ -3287,10 +3441,15 @@ gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree,
 	  if (!gml_parse_multi_geometry (p_data, geom, tree->Next))
 	      goto error;
 	  break;
+      case GAIA_GML_BOX:
+	  geom->DeclaredType = GAIA_POLYGON;
+	  if (!gml_parse_box (p_data, geom, tree->Next, geom->Srid, &next))
+	      goto error;
+	  break;
       };
 
 /* attempting to build the final geometry */
-    result = gml_validate_geometry (p_data, geom, sqlite_handle);
+    result = gml_validate_geometry (cache, p_data, geom, sqlite_handle);
     if (result == NULL)
 	goto error;
     gml_free_geom_chain (p_data, geom);
@@ -3321,8 +3480,9 @@ gml_build_geometry (struct gml_data *p_data, gmlNodePtr tree,
 
 
 
-gaiaGeomCollPtr
-gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle)
+static gaiaGeomCollPtr
+gaiaParseGmlCommon (const void *cache, const unsigned char *dirty_buffer,
+		    sqlite3 * sqlite_handle)
 {
     void *pParser = ParseAlloc (malloc);
     /* Linked-list of token values */
@@ -3401,12 +3561,26 @@ gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle)
       }
 
     /* attempting to build a geometry from GML */
-    geom = gml_build_geometry (&str_data, str_data.result, sqlite_handle);
+    geom =
+	gml_build_geometry (cache, &str_data, str_data.result, sqlite_handle);
     gml_freeTree (&str_data, str_data.result);
     gmlCleanMapDynAlloc (&str_data, 0);
     return geom;
 }
 
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle)
+{
+    return gaiaParseGmlCommon (NULL, dirty_buffer, sqlite_handle);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaParseGml_r (const void *p_cache, const unsigned char *dirty_buffer,
+		sqlite3 * sqlite_handle)
+{
+    return gaiaParseGmlCommon (p_cache, dirty_buffer, sqlite_handle);
+}
+
 
 /*
 ** CAVEAT: we must now undefine any Lemon/Flex own macro
diff --git a/src/gaiageo/gg_lwgeom.c b/src/gaiageo/gg_lwgeom.c
index 9aab981..a0ba45c 100644
--- a/src/gaiageo/gg_lwgeom.c
+++ b/src/gaiageo/gg_lwgeom.c
@@ -52,8 +52,6 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
 
 */
 
-#include "config.h"
-
 #include <sys/types.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -155,7 +153,7 @@ gaiaResetLwGeomMsg ()
 GAIAGEO_DECLARE const char *
 gaiaGetLwGeomErrorMsg ()
 {
-/* return the latest LWGEOM error message */
+/* setting the latest LWGEOM error message */
     return gaia_lwgeom_error_msg;
 }
 
@@ -169,7 +167,7 @@ gaiaGetLwGeomWarningMsg ()
 GAIAGEO_DECLARE void
 gaiaSetLwGeomErrorMsg (const char *msg)
 {
-/* return the latest LWGEOM error message */
+/* setting the latest LWGEOM error message */
     int len;
     if (gaia_lwgeom_error_msg != NULL)
 	free (gaia_lwgeom_error_msg);
@@ -1393,24 +1391,32 @@ gaiaMakeValid (gaiaGeomCollPtr geom)
 /* wrapping LWGEOM MakeValid [collecting valid items] */
     LWGEOM *g1;
     LWGEOM *g2;
-    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr result = NULL;
 
     if (!geom)
 	return NULL;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     g1 = toLWGeom (geom);
     g2 = lwgeom_make_valid (g1);
     if (!g2)
       {
 	  lwgeom_free (g1);
-	  return NULL;
+	  goto done;
       }
     result = fromLWGeomValidated (g2, geom->DimensionModel, geom->DeclaredType);
     spatialite_init_geos ();
     lwgeom_free (g1);
     lwgeom_free (g2);
     if (result == NULL)
-	return NULL;
+	goto done;
     result->Srid = geom->Srid;
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return result;
 }
 
@@ -1420,24 +1426,32 @@ gaiaMakeValidDiscarded (gaiaGeomCollPtr geom)
 /* wrapping LWGEOM MakeValid [collecting discarder items] */
     LWGEOM *g1;
     LWGEOM *g2;
-    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr result = NULL;
 
     if (!geom)
 	return NULL;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     g1 = toLWGeom (geom);
     g2 = lwgeom_make_valid (g1);
     if (!g2)
       {
 	  lwgeom_free (g1);
-	  return NULL;
+	  goto done;
       }
     result = fromLWGeomDiscarded (g2, geom->DimensionModel, geom->DeclaredType);
     spatialite_init_geos ();
     lwgeom_free (g1);
     lwgeom_free (g2);
     if (result == NULL)
-	return NULL;
+	goto done;
     result->Srid = geom->Srid;
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return result;
 }
 
@@ -1447,26 +1461,34 @@ gaiaSegmentize (gaiaGeomCollPtr geom, double dist)
 /* wrapping LWGEOM Segmentize */
     LWGEOM *g1;
     LWGEOM *g2;
-    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr result = NULL;
 
     if (!geom)
 	return NULL;
     if (dist <= 0.0)
 	return NULL;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     g1 = toLWGeom (geom);
     g2 = lwgeom_segmentize2d (g1, dist);
     if (!g2)
       {
 	  lwgeom_free (g1);
-	  return NULL;
+	  goto done;
       }
     result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType);
     spatialite_init_geos ();
     lwgeom_free (g1);
     lwgeom_free (g2);
     if (result == NULL)
-	return NULL;
+	goto done;
     result->Srid = geom->Srid;
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return result;
 }
 
@@ -1905,11 +1927,14 @@ gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
     LWGEOM *g1;
     LWGEOM *g2;
     LWGEOM *g3;
-    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr result = NULL;
 
     if (!check_split_args (input, blade))
 	return NULL;
 
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     g1 = toLWGeom (input);
     g2 = toLWGeom (blade);
     g3 = lwgeom_split (g1, g2);
@@ -1917,7 +1942,7 @@ gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
       {
 	  lwgeom_free (g1);
 	  lwgeom_free (g2);
-	  return NULL;
+	  goto done;
       }
     result = fromLWGeom (g3, input->DimensionModel, input->DeclaredType);
     spatialite_init_geos ();
@@ -1925,9 +1950,13 @@ gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
     lwgeom_free (g2);
     lwgeom_free (g3);
     if (result == NULL)
-	return NULL;
+	goto done;
     result->Srid = input->Srid;
     set_split_gtype (result);
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return result;
 }
 
@@ -1945,6 +1974,9 @@ gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
     if (!check_split_args (input, blade))
 	return NULL;
 
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     if (input->DimensionModel == GAIA_XY_Z)
 	result = gaiaAllocGeomCollXYZ ();
     else if (input->DimensionModel == GAIA_XY_M)
@@ -1989,15 +2021,20 @@ gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
 
     lwgeom_free (g2);
     if (result == NULL)
-	return NULL;
+	goto done;
     if (result->FirstPoint == NULL && result->FirstLinestring == NULL
 	&& result->FirstPolygon == NULL)
       {
 	  gaiaFreeGeomColl (result);
-	  return NULL;
+	  result = NULL;
+	  goto done;
       }
     result->Srid = input->Srid;
     set_split_gtype (result);
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return result;
 }
 
@@ -2015,6 +2052,9 @@ gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
     if (!check_split_args (input, blade))
 	return NULL;
 
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     if (input->DimensionModel == GAIA_XY_Z)
 	result = gaiaAllocGeomCollXYZ ();
     else if (input->DimensionModel == GAIA_XY_M)
@@ -2059,15 +2099,20 @@ gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
 
     lwgeom_free (g2);
     if (result == NULL)
-	return NULL;
+	goto done;
     if (result->FirstPoint == NULL && result->FirstLinestring == NULL
 	&& result->FirstPolygon == NULL)
       {
 	  gaiaFreeGeomColl (result);
-	  return NULL;
+	  result = NULL;
+	  goto done;
       }
     result->Srid = input->Srid;
     set_split_gtype (result);
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return result;
 }
 
@@ -2078,14 +2123,22 @@ gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth)
     POINT2D pt1;
     POINT2D pt2;
     double az;
+    int ret = 1;
     pt1.x = xa;
     pt1.y = ya;
     pt2.x = xb;
     pt2.y = yb;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     if (!azimuth_pt_pt (&pt1, &pt2, &az))
-	return 0;
+	ret = 0;
     *azimuth = az;
-    return 1;
+
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
 }
 
 GAIAGEO_DECLARE int
@@ -2096,11 +2149,19 @@ gaiaEllipsoidAzimuth (double xa, double ya, double xb, double yb, double a,
     LWPOINT *pt1 = lwpoint_make2d (0, xa, ya);
     LWPOINT *pt2 = lwpoint_make2d (0, xb, yb);
     SPHEROID ellips;
+    int ret = 1;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     spheroid_init (&ellips, a, b);
     *azimuth = lwgeom_azumith_spheroid (pt1, pt2, &ellips);
     lwpoint_free (pt1);
     lwpoint_free (pt2);
-    return 1;
+
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
 }
 
 GAIAGEO_DECLARE int
@@ -2111,6 +2172,11 @@ gaiaProjectedPoint (double x1, double y1, double a, double b, double distance,
     LWPOINT *pt1 = lwpoint_make2d (0, x1, y1);
     LWPOINT *pt2;
     SPHEROID ellips;
+    int ret = 0;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     spheroid_init (&ellips, a, b);
     pt2 = lwgeom_project_spheroid (pt1, &ellips, distance, azimuth);
     lwpoint_free (pt1);
@@ -2119,9 +2185,12 @@ gaiaProjectedPoint (double x1, double y1, double a, double b, double distance,
 	  *x2 = lwpoint_get_x (pt2);
 	  *y2 = lwpoint_get_y (pt2);
 	  lwpoint_free (pt2);
-	  return 1;
+	  ret = 1;
       }
-    return 0;
+
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
 }
 
 GAIAGEO_DECLARE int
@@ -2133,9 +2202,17 @@ gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid,
     SPHEROID ellips;
     GBOX gbox;
     double tolerance = 1e-12;
+    int ret = 1;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     spheroid_init (&ellips, a, b);
     if (g == NULL)
-	return 0;
+      {
+	  ret = 0;
+	  goto done;
+      }
     lwgeom_calculate_gbox_geodetic (g, &gbox);
     if (use_ellipsoid)
       {
@@ -2150,7 +2227,11 @@ gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid,
     else
 	*area = lwgeom_area_sphere (g, &ellips);
     lwgeom_free (g);
-    return 1;
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
 }
 
 GAIAGEO_DECLARE char *
@@ -2159,7 +2240,7 @@ gaiaGeoHash (gaiaGeomCollPtr geom, int precision)
 /* wrapping LWGEOM GeoHash */
     LWGEOM *g;
     char *result;
-    char *geo_hash;
+    char *geo_hash = NULL;
     int len;
 
     if (!geom)
@@ -2168,20 +2249,28 @@ gaiaGeoHash (gaiaGeomCollPtr geom, int precision)
     if (geom->MinX < -180.0 || geom->MaxX > 180.0 || geom->MinY < -90.0
 	|| geom->MaxY > 90.0)
 	return NULL;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     g = toLWGeom (geom);
     result = lwgeom_geohash (g, precision);
     lwgeom_free (g);
     if (result == NULL)
-	return NULL;
+	goto done;
     len = strlen (result);
     if (len == 0)
       {
 	  lwfree (result);
-	  return NULL;
+	  goto done;
       }
     geo_hash = malloc (len + 1);
     strcpy (geo_hash, result);
     lwfree (result);
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return geo_hash;
 }
 
@@ -2192,26 +2281,34 @@ gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options,
 /* wrapping LWGEOM AsX3D */
     LWGEOM *g;
     char *result;
-    char *x3d;
+    char *x3d = NULL;
     int len;
 
     if (!geom)
 	return NULL;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
     gaiaMbrGeometry (geom);
     g = toLWGeom (geom);
     result = lwgeom_to_x3d3 (g, (char *) srs, precision, options, defid);
     lwgeom_free (g);
     if (result == NULL)
-	return NULL;
+	goto done;
     len = strlen (result);
     if (len == 0)
       {
 	  lwfree (result);
-	  return NULL;
+	  goto done;
       }
     x3d = malloc (len + 1);
     strcpy (x3d, result);
     lwfree (result);
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
     return x3d;
 }
 
@@ -2222,6 +2319,10 @@ gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
     LWGEOM *g1;
     LWGEOM *g2;
     double d;
+    int ret = 1;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
 
     g1 = toLWGeom (geom1);
     g2 = toLWGeom (geom2);
@@ -2230,7 +2331,10 @@ gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
     lwgeom_free (g1);
     lwgeom_free (g2);
     *dist = d;
-    return 1;
+
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
 }
 
 GAIAGEO_DECLARE int
@@ -2240,6 +2344,10 @@ gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
     LWGEOM *g1;
     LWGEOM *g2;
     double d;
+    int ret = 1;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
 
     g1 = toLWGeom (geom1);
     g2 = toLWGeom (geom2);
@@ -2248,7 +2356,10 @@ gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
     lwgeom_free (g1);
     lwgeom_free (g2);
     *dist = d;
-    return 1;
+
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
 }
 
 GAIAGEO_DECLARE int
@@ -2258,6 +2369,10 @@ gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
     LWGEOM *g1;
     LWGEOM *g2;
     double d;
+    int ret = 1;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
 
     g1 = toLWGeom (geom1);
     g2 = toLWGeom (geom2);
@@ -2266,7 +2381,45 @@ gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
     lwgeom_free (g1);
     lwgeom_free (g2);
     *dist = d;
-    return 1;
+
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return ret;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaNodeLines (gaiaGeomCollPtr geom)
+{
+/* wrapping LWGEOM lwgeom_node */
+    LWGEOM *g1;
+    LWGEOM *g2;
+    gaiaGeomCollPtr result = NULL;
+
+    if (!geom)
+	return NULL;
+
+/* locking the semaphore */
+    splite_lwgeom_semaphore_lock ();
+
+    g1 = toLWGeom (geom);
+    g2 = lwgeom_node (g1);
+    if (!g2)
+      {
+	  lwgeom_free (g1);
+	  goto done;
+      }
+    result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType);
+    spatialite_init_geos ();
+    lwgeom_free (g1);
+    lwgeom_free (g2);
+    if (result == NULL)
+	goto done;
+    result->Srid = geom->Srid;
+
+  done:
+/* unlocking the semaphore */
+    splite_lwgeom_semaphore_unlock ();
+    return result;
 }
 
 #endif /* end enabling LWGEOM support */
diff --git a/src/gaiageo/gg_relations.c b/src/gaiageo/gg_relations.c
index 7c0e7ed..9bad33f 100644
--- a/src/gaiageo/gg_relations.c
+++ b/src/gaiageo/gg_relations.c
@@ -82,6 +82,40 @@ splite_free_geos_cache_item (struct splite_geos_cache_item *p)
     p->preparedGeosGeom = NULL;
 }
 
+SPATIALITE_PRIVATE void
+splite_free_geos_cache_item_r (const void *p_cache,
+			       struct splite_geos_cache_item *p)
+{
+#ifndef OMIT_GEOS		/* including GEOS */
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+      {
+	  splite_free_geos_cache_item (p);
+	  return;
+      }
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+      {
+	  splite_free_geos_cache_item (p);
+	  return;
+      }
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+      {
+	  splite_free_geos_cache_item (p);
+	  return;
+      }
+    if (p->preparedGeosGeom)
+	GEOSPreparedGeom_destroy_r (handle, p->preparedGeosGeom);
+    if (p->geosGeom)
+	GEOSGeom_destroy_r (handle, p->geosGeom);
+#endif
+    p->geosGeom = NULL;
+    p->preparedGeosGeom = NULL;
+}
+
 GAIAGEO_DECLARE void
 gaiaResetGeosMsg ()
 {
@@ -121,7 +155,7 @@ gaiaGetGeosAuxErrorMsg ()
 GAIAGEO_DECLARE void
 gaiaSetGeosErrorMsg (const char *msg)
 {
-/* return the latest GEOS error message */
+/* setting the latest GEOS error message */
     int len;
     if (gaia_geos_error_msg != NULL)
 	free (gaia_geos_error_msg);
@@ -136,7 +170,7 @@ gaiaSetGeosErrorMsg (const char *msg)
 GAIAGEO_DECLARE void
 gaiaSetGeosWarningMsg (const char *msg)
 {
-/* return the latest GEOS error message */
+/* setting the latest GEOS error message */
     int len;
     if (gaia_geos_warning_msg != NULL)
 	free (gaia_geos_warning_msg);
@@ -151,7 +185,7 @@ gaiaSetGeosWarningMsg (const char *msg)
 GAIAGEO_DECLARE void
 gaiaSetGeosAuxErrorMsg (const char *msg)
 {
-/* return the latest GEOS (auxiliary) error message */
+/* setting the latest GEOS (auxiliary) error message */
     int len;
     if (gaia_geosaux_error_msg != NULL)
 	free (gaia_geosaux_error_msg);
@@ -345,11 +379,19 @@ evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1,
 	       gaiaGeomCollPtr * geom)
 {
 /* handling the internal GEOS cache */
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
     struct splite_geos_cache_item *p1 = &(cache->cacheItem1);
     struct splite_geos_cache_item *p2 = &(cache->cacheItem2);
     uLong crc1 = crc32 (0L, blob1, size1);
     uLong crc2 = crc32 (0L, blob2, size2);
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return 0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return 0;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return 0;
 
 /* checking the first cache item */
     if (evalGeosCacheItem (blob1, size1, crc1, p1))
@@ -358,15 +400,15 @@ evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1,
 	  if (p1->preparedGeosGeom == NULL)
 	    {
 		/* preparing the GeosGeometries */
-		p1->geosGeom = gaiaToGeos (geom1);
+		p1->geosGeom = gaiaToGeos_r (cache, geom1);
 		if (p1->geosGeom)
 		  {
 		      p1->preparedGeosGeom =
-			  (void *) GEOSPrepare (p1->geosGeom);
+			  (void *) GEOSPrepare_r (handle, p1->geosGeom);
 		      if (p1->preparedGeosGeom == NULL)
 			{
 			    /* unexpected failure */
-			    GEOSGeom_destroy (p1->geosGeom);
+			    GEOSGeom_destroy_r (handle, p1->geosGeom);
 			    p1->geosGeom = NULL;
 			}
 		  }
@@ -388,15 +430,15 @@ evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1,
 	  if (p2->preparedGeosGeom == NULL)
 	    {
 		/* preparing the GeosGeometries */
-		p2->geosGeom = gaiaToGeos (geom2);
+		p2->geosGeom = gaiaToGeos_r (cache, geom2);
 		if (p2->geosGeom)
 		  {
 		      p2->preparedGeosGeom =
-			  (void *) GEOSPrepare (p2->geosGeom);
+			  (void *) GEOSPrepare_r (handle, p2->geosGeom);
 		      if (p2->preparedGeosGeom == NULL)
 			{
 			    /* unexpected failure */
-			    GEOSGeom_destroy (p2->geosGeom);
+			    GEOSGeom_destroy_r (handle, p2->geosGeom);
 			    p2->geosGeom = NULL;
 			}
 		  }
@@ -416,9 +458,9 @@ evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1,
     p1->gaiaBlobSize = size1;
     p1->crc32 = crc1;
     if (p1->preparedGeosGeom)
-	GEOSPreparedGeom_destroy (p1->preparedGeosGeom);
+	GEOSPreparedGeom_destroy_r (handle, p1->preparedGeosGeom);
     if (p1->geosGeom)
-	GEOSGeom_destroy (p1->geosGeom);
+	GEOSGeom_destroy_r (handle, p1->geosGeom);
     p1->geosGeom = NULL;
     p1->preparedGeosGeom = NULL;
 
@@ -427,12 +469,11 @@ evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1,
     p2->gaiaBlobSize = size2;
     p2->crc32 = crc2;
     if (p2->preparedGeosGeom)
-	GEOSPreparedGeom_destroy (p2->preparedGeosGeom);
+	GEOSPreparedGeom_destroy_r (handle, p2->preparedGeosGeom);
     if (p2->geosGeom)
-	GEOSGeom_destroy (p2->geosGeom);
+	GEOSGeom_destroy_r (handle, p2->geosGeom);
     p2->geosGeom = NULL;
     p2->preparedGeosGeom = NULL;
-#endif /* end GEOS_ADVANCED */
 
     return 0;
 }
@@ -444,6 +485,7 @@ gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -462,12 +504,50 @@ gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 }
 
 GAIAGEO_DECLARE int
+gaiaGeomCollEquals_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		      gaiaGeomCollPtr geom2)
+{
+/* checks if two Geometries are "spatially equal" */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_equals (geom1, geom2))
+	return 0;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSEquals_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
+
+GAIAGEO_DECLARE int
 gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
 /* checks if two Geometries do "spatially intersects" */
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -485,10 +565,45 @@ gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
+GAIAGEO_DECLARE int
+gaiaGeomCollIntersects_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			  gaiaGeomCollPtr geom2)
+{
+/* checks if two Geometries do "spatially intersects" */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_overlaps (geom1, geom2))
+	return 0;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSIntersects_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
 
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedIntersects (void *p_cache, gaiaGeomCollPtr geom1,
+gaiaGeomCollPreparedIntersects (const void *p_cache, gaiaGeomCollPtr geom1,
 				unsigned char *blob1, int size1,
 				gaiaGeomCollPtr geom2, unsigned char *blob2,
 				int size2)
@@ -501,9 +616,19 @@ gaiaGeomCollPreparedIntersects (void *p_cache, gaiaGeomCollPtr geom1,
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -514,21 +639,19 @@ gaiaGeomCollPreparedIntersects (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
-	  ret = GEOSPreparedIntersects (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	  g2 = gaiaToGeos_r (cache, geom);
+	  ret = GEOSPreparedIntersects_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSIntersects (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSIntersects_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -536,6 +659,7 @@ gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -553,25 +677,70 @@ gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
+GAIAGEO_DECLARE int
+gaiaGeomCollDisjoint_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			gaiaGeomCollPtr geom2)
+{
+/* checks if two Geometries are "spatially disjoint" */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_overlaps (geom1, geom2))
+	return 1;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSDisjoint_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
 
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedDisjoint (void *p_cache, gaiaGeomCollPtr geom1,
+gaiaGeomCollPreparedDisjoint (const void *p_cache, gaiaGeomCollPtr geom1,
 			      unsigned char *blob1, int size1,
 			      gaiaGeomCollPtr geom2, unsigned char *blob2,
 			      int size2)
 {
 /* checks if two Geometries are "spatially disjoint" */
     int ret;
-    struct splite_internal_cache *cache =
-	(struct splite_internal_cache *) p_cache;
     GEOSPreparedGeometry *gPrep;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -582,22 +751,20 @@ gaiaGeomCollPreparedDisjoint (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
-	  ret = GEOSPreparedDisjoint (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	  g2 = gaiaToGeos_r (cache, geom);
+	  ret = GEOSPreparedDisjoint_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
 
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSDisjoint (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSDisjoint_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -605,6 +772,7 @@ gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -622,11 +790,45 @@ gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
+GAIAGEO_DECLARE int
+gaiaGeomCollOverlaps_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			gaiaGeomCollPtr geom2)
+{
+/* checks if two Geometries do "spatially overlaps" */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_overlaps (geom1, geom2))
+	return 0;
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSOverlaps_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
 
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedOverlaps (void *p_cache, gaiaGeomCollPtr geom1,
+gaiaGeomCollPreparedOverlaps (const void *p_cache, gaiaGeomCollPtr geom1,
 			      unsigned char *blob1, int size1,
 			      gaiaGeomCollPtr geom2, unsigned char *blob2,
 			      int size2)
@@ -639,9 +841,19 @@ gaiaGeomCollPreparedOverlaps (void *p_cache, gaiaGeomCollPtr geom1,
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -652,22 +864,20 @@ gaiaGeomCollPreparedOverlaps (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
-	  ret = GEOSPreparedOverlaps (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	  g2 = gaiaToGeos_r (cache, geom);
+	  ret = GEOSPreparedOverlaps_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
 
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSOverlaps (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSOverlaps_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -675,6 +885,7 @@ gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -692,11 +903,45 @@ gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
+GAIAGEO_DECLARE int
+gaiaGeomCollCrosses_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		       gaiaGeomCollPtr geom2)
+{
+/* checks if two Geometries do "spatially crosses" */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_overlaps (geom1, geom2))
+	return 0;
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSCrosses_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
 
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedCrosses (void *p_cache, gaiaGeomCollPtr geom1,
+gaiaGeomCollPreparedCrosses (const void *p_cache, gaiaGeomCollPtr geom1,
 			     unsigned char *blob1, int size1,
 			     gaiaGeomCollPtr geom2, unsigned char *blob2,
 			     int size2)
@@ -709,9 +954,19 @@ gaiaGeomCollPreparedCrosses (void *p_cache, gaiaGeomCollPtr geom1,
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -722,22 +977,20 @@ gaiaGeomCollPreparedCrosses (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
-	  ret = GEOSPreparedCrosses (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	  g2 = gaiaToGeos_r (cache, geom);
+	  ret = GEOSPreparedCrosses_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
 
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSCrosses (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSCrosses_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -745,6 +998,7 @@ gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -762,10 +1016,45 @@ gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
+GAIAGEO_DECLARE int
+gaiaGeomCollTouches_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		       gaiaGeomCollPtr geom2)
+{
+/* checks if two Geometries do "spatially touches" */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_overlaps (geom1, geom2))
+	return 0;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSTouches_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
 
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedTouches (void *p_cache, gaiaGeomCollPtr geom1,
+gaiaGeomCollPreparedTouches (const void *p_cache, gaiaGeomCollPtr geom1,
 			     unsigned char *blob1, int size1,
 			     gaiaGeomCollPtr geom2, unsigned char *blob2,
 			     int size2)
@@ -778,9 +1067,19 @@ gaiaGeomCollPreparedTouches (void *p_cache, gaiaGeomCollPtr geom1,
     GEOSGeometry *g2;
     GEOSPreparedGeometry *gPrep;
     gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -791,22 +1090,20 @@ gaiaGeomCollPreparedTouches (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
-	  ret = GEOSPreparedTouches (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	  g2 = gaiaToGeos_r (cache, geom);
+	  ret = GEOSPreparedTouches_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
 
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSTouches (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSTouches_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -814,6 +1111,7 @@ gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -831,10 +1129,45 @@ gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
+GAIAGEO_DECLARE int
+gaiaGeomCollWithin_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		      gaiaGeomCollPtr geom2)
+{
+/* checks if GEOM-1 is completely contained within GEOM-2 */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_within (geom1, geom2))
+	return 0;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSWithin_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
 
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedWithin (void *p_cache, gaiaGeomCollPtr geom1,
+gaiaGeomCollPreparedWithin (const void *p_cache, gaiaGeomCollPtr geom1,
 			    unsigned char *blob1, int size1,
 			    gaiaGeomCollPtr geom2, unsigned char *blob2,
 			    int size2)
@@ -847,9 +1180,19 @@ gaiaGeomCollPreparedWithin (void *p_cache, gaiaGeomCollPtr geom1,
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -860,25 +1203,23 @@ gaiaGeomCollPreparedWithin (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
+	  g2 = gaiaToGeos_r (cache, geom);
 	  if (geom == geom2)
-	      ret = GEOSPreparedWithin (gPrep, g2);
+	      ret = GEOSPreparedWithin_r (handle, gPrep, g2);
 	  else
-	      ret = GEOSPreparedContains (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	      ret = GEOSPreparedContains_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
 
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSWithin (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSWithin_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -886,6 +1227,7 @@ gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -903,25 +1245,70 @@ gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     return ret;
 }
 
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-
 GAIAGEO_DECLARE int
-gaiaGeomCollPreparedContains (void *p_cache, gaiaGeomCollPtr geom1,
-			      unsigned char *blob1, int size1,
-			      gaiaGeomCollPtr geom2, unsigned char *blob2,
-			      int size2)
+gaiaGeomCollContains_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			gaiaGeomCollPtr geom2)
 {
 /* checks if GEOM-1 completely contains GEOM-2 */
     int ret;
-    struct splite_internal_cache *cache =
-	(struct splite_internal_cache *) p_cache;
-    GEOSPreparedGeometry *gPrep;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
-    gaiaGeomCollPtr geom;
-    if (!geom1 || !geom2)
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
 	return -1;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_contains (geom1, geom2))
+	return 0;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSContains_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return ret;
+}
+
+GAIAGEO_DECLARE int
+gaiaGeomCollPreparedContains (const void *p_cache, gaiaGeomCollPtr geom1,
+			      unsigned char *blob1, int size1,
+			      gaiaGeomCollPtr geom2, unsigned char *blob2,
+			      int size2)
+{
+/* checks if GEOM-1 completely contains GEOM-2 */
+    int ret;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSPreparedGeometry *gPrep;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
 	return -1;
 
 /* quick check based on MBRs comparison */
@@ -932,25 +1319,23 @@ gaiaGeomCollPreparedContains (void *p_cache, gaiaGeomCollPtr geom1,
     if (evalGeosCache
 	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  g2 = gaiaToGeos (geom);
+	  g2 = gaiaToGeos_r (cache, geom);
 	  if (geom == geom2)
-	      ret = GEOSPreparedContains (gPrep, g2);
+	      ret = GEOSPreparedContains_r (handle, gPrep, g2);
 	  else
-	      ret = GEOSPreparedWithin (gPrep, g2);
-	  GEOSGeom_destroy (g2);
+	      ret = GEOSPreparedWithin_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
 	  return ret;
       }
 
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSContains (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSContains_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
     return ret;
 }
 
-#endif /* end GEOS_ADVANCED */
-
 GAIAGEO_DECLARE int
 gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
 		    const char *pattern)
@@ -959,6 +1344,7 @@ gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return -1;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -974,12 +1360,47 @@ gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
 }
 
 GAIAGEO_DECLARE int
+gaiaGeomCollRelate_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		      gaiaGeomCollPtr geom2, const char *pattern)
+{
+/* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return -1;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSRelatePattern_r (handle, g1, g2, pattern);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret == 2)
+	return -1;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
 gaiaGeomCollLength (gaiaGeomCollPtr geom, double *xlength)
 {
 /* computes the total length for this Geometry */
     double length;
     int ret;
     GEOSGeometry *g;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return 0;
     if (gaiaIsToxic (geom))
@@ -993,6 +1414,38 @@ gaiaGeomCollLength (gaiaGeomCollPtr geom, double *xlength)
 }
 
 GAIAGEO_DECLARE int
+gaiaGeomCollLength_r (const void *p_cache, gaiaGeomCollPtr geom,
+		      double *xlength)
+{
+/* computes the total length for this Geometry */
+    double length;
+    int ret;
+    GEOSGeometry *g;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return 0;
+    if (gaiaIsToxic_r (cache, geom))
+	return 0;
+    g = gaiaToGeos_r (cache, geom);
+    ret = GEOSLength_r (handle, g, &length);
+    GEOSGeom_destroy_r (handle, g);
+    if (ret)
+	*xlength = length;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
 gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter,
 			       double *xlength)
 {
@@ -1003,6 +1456,7 @@ gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter,
     int mode = GAIA2GEOS_ONLY_LINESTRINGS;
     if (perimeter)
 	mode = GAIA2GEOS_ONLY_POLYGONS;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return 0;
     if (gaiaIsToxic (geom))
@@ -1021,12 +1475,53 @@ gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter,
 }
 
 GAIAGEO_DECLARE int
+gaiaGeomCollLengthOrPerimeter_r (const void *p_cache, gaiaGeomCollPtr geom,
+				 int perimeter, double *xlength)
+{
+/* computes the total length or perimeter for this Geometry */
+    double length;
+    int ret;
+    int mode = GAIA2GEOS_ONLY_LINESTRINGS;
+    GEOSGeometry *g;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    if (perimeter)
+	mode = GAIA2GEOS_ONLY_POLYGONS;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return 0;
+    if (gaiaIsToxic_r (cache, geom))
+	return 0;
+    g = gaiaToGeosSelective_r (cache, geom, mode);
+    if (g == NULL)
+      {
+	  *xlength = 0.0;
+	  return 1;
+      }
+    ret = GEOSLength_r (handle, g, &length);
+    GEOSGeom_destroy_r (handle, g);
+    if (ret)
+	*xlength = length;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
 gaiaGeomCollArea (gaiaGeomCollPtr geom, double *xarea)
 {
 /* computes the total area for this Geometry */
     double area;
     int ret;
     GEOSGeometry *g;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return 0;
     if (gaiaIsToxic (geom))
@@ -1040,6 +1535,37 @@ gaiaGeomCollArea (gaiaGeomCollPtr geom, double *xarea)
 }
 
 GAIAGEO_DECLARE int
+gaiaGeomCollArea_r (const void *p_cache, gaiaGeomCollPtr geom, double *xarea)
+{
+/* computes the total area for this Geometry */
+    double area;
+    int ret;
+    GEOSGeometry *g;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return 0;
+    if (gaiaIsToxic_r (cache, geom))
+	return 0;
+    g = gaiaToGeos_r (cache, geom);
+    ret = GEOSArea_r (handle, g, &area);
+    GEOSGeom_destroy_r (handle, g);
+    if (ret)
+	*xarea = area;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
 gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
 		      double *xdist)
 {
@@ -1048,6 +1574,7 @@ gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return 0;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -1062,6 +1589,41 @@ gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
     return ret;
 }
 
+GAIAGEO_DECLARE int
+gaiaGeomCollDistance_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			gaiaGeomCollPtr geom2, double *xdist)
+{
+/* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */
+    double dist;
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return 0;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return 0;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSDistance_r (handle, g1, g2, &dist);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret)
+	*xdist = dist;
+    return ret;
+}
+
 GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
@@ -1070,6 +1632,7 @@ gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     GEOSGeometry *g3;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return NULL;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -1102,6 +1665,58 @@ gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeometryIntersection_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			    gaiaGeomCollPtr geom2)
+{
+/* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return NULL;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_overlaps (geom1, geom2))
+	return NULL;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    g3 = GEOSIntersection_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g3);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g3);
+    GEOSGeom_destroy_r (handle, g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
 /* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */
@@ -1109,6 +1724,7 @@ gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     GEOSGeometry *g3;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return NULL;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -1143,6 +1759,60 @@ gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeometryUnion_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		     gaiaGeomCollPtr geom2)
+{
+/* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    g3 = GEOSUnion_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g3);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g3);
+    GEOSGeom_destroy_r (handle, g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    if (geo->DeclaredType == GAIA_POINT &&
+	geom1->DeclaredType == GAIA_MULTIPOINT)
+	geo->DeclaredType = GAIA_MULTIPOINT;
+    if (geo->DeclaredType == GAIA_LINESTRING &&
+	geom1->DeclaredType == GAIA_MULTILINESTRING)
+	geo->DeclaredType = GAIA_MULTILINESTRING;
+    if (geo->DeclaredType == GAIA_POLYGON &&
+	geom1->DeclaredType == GAIA_MULTIPOLYGON)
+	geo->DeclaredType = GAIA_MULTIPOLYGON;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaUnionCascaded (gaiaGeomCollPtr geom)
 {
 /* UnionCascaded (single Collection of polygons) */
@@ -1155,6 +1825,7 @@ gaiaUnionCascaded (gaiaGeomCollPtr geom)
     gaiaPointPtr pt;
     gaiaLinestringPtr ln;
     gaiaPolygonPtr pg;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return NULL;
     if (gaiaIsToxic (geom))
@@ -1205,47 +1876,170 @@ gaiaUnionCascaded (gaiaGeomCollPtr geom)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+gaiaUnionCascaded_r (const void *p_cache, gaiaGeomCollPtr geom)
 {
-/* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */
-    gaiaGeomCollPtr geo;
+/* UnionCascaded (single Collection of polygons) */
     GEOSGeometry *g1;
     GEOSGeometry *g2;
-    GEOSGeometry *g3;
-    if (!geom1 || !geom2)
+    gaiaGeomCollPtr result;
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
 	return NULL;
-    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
 	return NULL;
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    g3 = GEOSDifference (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (!g3)
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
 	return NULL;
-    if (geom1->DimensionModel == GAIA_XY_Z)
-	geo = gaiaFromGeos_XYZ (g3);
-    else if (geom1->DimensionModel == GAIA_XY_M)
-	geo = gaiaFromGeos_XYM (g3);
-    else if (geom1->DimensionModel == GAIA_XY_Z_M)
-	geo = gaiaFromGeos_XYZM (g3);
-    else
-	geo = gaiaFromGeos_XY (g3);
-    GEOSGeom_destroy (g3);
-    if (geo == NULL)
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
 	return NULL;
-    geo->Srid = geom1->Srid;
-    return geo;
-}
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */
+/* testing if geom only contains Polygons */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  lns++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts || lns)
+	return NULL;
+    if (!pgs)
+	return NULL;
+
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSUnionCascaded_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	result = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+/* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    gaiaResetGeosMsg ();
+    if (!geom1 || !geom2)
+	return NULL;
+    if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
+	return NULL;
+    g1 = gaiaToGeos (geom1);
+    g2 = gaiaToGeos (geom2);
+    g3 = GEOSDifference (g1, g2);
+    GEOSGeom_destroy (g1);
+    GEOSGeom_destroy (g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ (g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM (g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM (g3);
+    else
+	geo = gaiaFromGeos_XY (g3);
+    GEOSGeom_destroy (g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeometryDifference_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			  gaiaGeomCollPtr geom2)
+{
+/* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    g3 = GEOSDifference_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g3);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g3);
+    GEOSGeom_destroy_r (handle, g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+/* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
     GEOSGeometry *g3;
+    gaiaResetGeosMsg ();
     if (!geom1 || !geom2)
 	return NULL;
     if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2))
@@ -1273,12 +2067,60 @@ gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeometrySymDifference_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			     gaiaGeomCollPtr geom2)
+{
+/* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    g3 = GEOSSymDifference_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g3);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g3);
+    GEOSGeom_destroy_r (handle, g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaBoundary (gaiaGeomCollPtr geom)
 {
 /* builds a new geometry representing the combinatorial boundary of GEOM */
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return NULL;
     if (gaiaIsToxic (geom))
@@ -1303,6 +2145,49 @@ gaiaBoundary (gaiaGeomCollPtr geom)
     return geo;
 }
 
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaBoundary_r (const void *p_cache, gaiaGeomCollPtr geom)
+{
+/* builds a new geometry representing the combinatorial boundary of GEOM */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSBoundary_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
 GAIAGEO_DECLARE int
 gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y)
 {
@@ -1310,6 +2195,7 @@ gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y)
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return 0;
     if (gaiaIsToxic (geom))
@@ -1344,12 +2230,66 @@ gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y)
 }
 
 GAIAGEO_DECLARE int
+gaiaGeomCollCentroid_r (const void *p_cache, gaiaGeomCollPtr geom, double *x,
+			double *y)
+{
+/* returns a Point representing the centroid for this Geometry */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return 0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return 0;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return 0;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return 0;
+    if (gaiaIsToxic_r (cache, geom))
+      {
+	  return 0;
+      }
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSGetCentroid_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return 0;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return 0;
+    if (geo->FirstPoint)
+      {
+	  *x = geo->FirstPoint->X;
+	  *y = geo->FirstPoint->Y;
+	  gaiaFreeGeomColl (geo);
+	  return 1;
+      }
+    gaiaFreeGeomColl (geo);
+    return 0;
+}
+
+GAIAGEO_DECLARE int
 gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y)
 {
 /* returns a Point guaranteed to lie on the Surface */
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return 0;
     if (gaiaIsToxic (geom))
@@ -1384,11 +2324,65 @@ gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y)
 }
 
 GAIAGEO_DECLARE int
+gaiaGetPointOnSurface_r (const void *p_cache, gaiaGeomCollPtr geom, double *x,
+			 double *y)
+{
+/* returns a Point guaranteed to lie on the Surface */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return 0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return 0;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return 0;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return 0;
+    if (gaiaIsToxic_r (cache, geom))
+      {
+	  return 0;
+      }
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSPointOnSurface_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return 0;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return 0;
+    if (geo->FirstPoint)
+      {
+	  *x = geo->FirstPoint->X;
+	  *y = geo->FirstPoint->Y;
+	  gaiaFreeGeomColl (geo);
+	  return 1;
+      }
+    gaiaFreeGeomColl (geo);
+    return 0;
+}
+
+GAIAGEO_DECLARE int
 gaiaIsSimple (gaiaGeomCollPtr geom)
 {
 /* checks if this GEOMETRYCOLLECTION is a simple one */
     int ret;
     GEOSGeometry *g;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return -1;
     if (gaiaIsToxic (geom))
@@ -1402,6 +2396,36 @@ gaiaIsSimple (gaiaGeomCollPtr geom)
 }
 
 GAIAGEO_DECLARE int
+gaiaIsSimple_r (const void *p_cache, gaiaGeomCollPtr geom)
+{
+/* checks if this GEOMETRYCOLLECTION is a simple one */
+    int ret;
+    GEOSGeometry *g;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom))
+	return -1;
+    g = gaiaToGeos_r (cache, geom);
+    ret = GEOSisSimple_r (handle, g);
+    GEOSGeom_destroy_r (handle, g);
+    if (ret == 2)
+	return -1;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
 gaiaIsRing (gaiaLinestringPtr line)
 {
 /* checks if this LINESTRING can be a valid RING */
@@ -1414,6 +2438,7 @@ gaiaIsRing (gaiaLinestringPtr line)
     double z;
     double m;
     GEOSGeometry *g;
+    gaiaResetGeosMsg ();
     if (!line)
 	return -1;
     if (line->DimensionModel == GAIA_XY_Z)
@@ -1477,12 +2502,99 @@ gaiaIsRing (gaiaLinestringPtr line)
 }
 
 GAIAGEO_DECLARE int
-gaiaIsValid (gaiaGeomCollPtr geom)
+gaiaIsRing_r (const void *p_cache, gaiaLinestringPtr line)
 {
-/* checks if this GEOMETRYCOLLECTION is a valid one */
+/* checks if this LINESTRING can be a valid RING */
+    gaiaGeomCollPtr geo;
+    gaiaLinestringPtr line2;
     int ret;
-    GEOSGeometry *g;
-    gaiaResetGeosMsg ();
+    int iv;
+    double x;
+    double y;
+    double z;
+    double m;
+    GEOSGeometry *g;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!line)
+	return -1;
+    if (line->DimensionModel == GAIA_XY_Z)
+	geo = gaiaAllocGeomCollXYZ ();
+    else if (line->DimensionModel == GAIA_XY_M)
+	geo = gaiaAllocGeomCollXYM ();
+    else if (line->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaAllocGeomCollXYZM ();
+    else
+	geo = gaiaAllocGeomColl ();
+    line2 = gaiaAddLinestringToGeomColl (geo, line->Points);
+    for (iv = 0; iv < line2->Points; iv++)
+      {
+	  z = 0.0;
+	  m = 0.0;
+	  if (line->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z);
+	    }
+	  else if (line->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (line->Coords, iv, &x, &y, &m);
+	    }
+	  else if (line->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (line->Coords, iv, &x, &y);
+	    }
+	  if (line2->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaSetPointXYZ (line2->Coords, iv, x, y, z);
+	    }
+	  else if (line2->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaSetPointXYM (line2->Coords, iv, x, y, m);
+	    }
+	  else if (line2->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m);
+	    }
+	  else
+	    {
+		gaiaSetPoint (line2->Coords, iv, x, y);
+	    }
+      }
+    if (gaiaIsToxic_r (cache, geo))
+      {
+	  gaiaFreeGeomColl (geo);
+	  return -1;
+      }
+    g = gaiaToGeos_r (cache, geo);
+    gaiaFreeGeomColl (geo);
+    ret = GEOSisRing_r (handle, g);
+    GEOSGeom_destroy_r (handle, g);
+    if (ret == 2)
+	return -1;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
+gaiaIsValid (gaiaGeomCollPtr geom)
+{
+/* checks if this GEOMETRYCOLLECTION is a valid one */
+    int ret;
+    GEOSGeometry *g;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return -1;
     if (gaiaIsToxic (geom))
@@ -1498,14 +2610,52 @@ gaiaIsValid (gaiaGeomCollPtr geom)
 }
 
 GAIAGEO_DECLARE int
-gaiaIsClosedGeom (gaiaGeomCollPtr geom)
+gaiaIsValid_r (const void *p_cache, gaiaGeomCollPtr geom)
+{
+/* checks if this GEOMETRYCOLLECTION is a valid one */
+    int ret;
+    GEOSGeometry *g;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return -1;
+    if (gaiaIsToxic_r (cache, geom))
+	return 0;
+    if (gaiaIsNotClosedGeomColl_r (cache, geom))
+	return 0;
+    g = gaiaToGeos_r (cache, geom);
+    ret = GEOSisValid_r (handle, g);
+    GEOSGeom_destroy_r (handle, g);
+    if (ret == 2)
+	return -1;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
+gaiaIsClosedGeom_r (const void *cache, gaiaGeomCollPtr geom)
 {
 /* checks if this geometry is a closed linestring (or multilinestring) */
     int ret = 0;
     gaiaLinestringPtr ln;
+    if (cache != NULL)
+	gaiaResetGeosMsg_r (cache);
     if (!geom)
 	return -1;
-    if (gaiaIsToxic (geom))
+    if (cache != NULL)
+	ret = gaiaIsToxic_r (cache, geom);
+    else
+	ret = gaiaIsToxic (geom);
+    if (ret)
 	return 0;
     ln = geom->FirstLinestring;
     while (ln)
@@ -1549,6 +2699,13 @@ gaiaIsClosedGeom (gaiaGeomCollPtr geom)
     return ret;
 }
 
+GAIAGEO_DECLARE int
+gaiaIsClosedGeom (gaiaGeomCollPtr geom)
+{
+    gaiaResetGeosMsg ();
+    return gaiaIsClosedGeom_r (NULL, geom);
+}
+
 GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance)
 {
@@ -1556,6 +2713,7 @@ gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance)
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return NULL;
     if (gaiaIsToxic (geom))
@@ -1581,12 +2739,57 @@ gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeomCollSimplify_r (const void *p_cache, gaiaGeomCollPtr geom,
+			double tolerance)
+{
+/* builds a simplified geometry using the Douglas-Peuker algorihtm */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSSimplify_r (handle, g1, tolerance);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance)
 {
 /* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return NULL;
     if (gaiaIsToxic (geom))
@@ -1612,12 +2815,57 @@ gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache,
+					gaiaGeomCollPtr geom, double tolerance)
+{
+/* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSTopologyPreserveSimplify_r (handle, g1, tolerance);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaConvexHull (gaiaGeomCollPtr geom)
 {
 /* builds a geometry that is the convex hull of GEOM */
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return NULL;
     if (gaiaIsToxic (geom))
@@ -1643,12 +2891,56 @@ gaiaConvexHull (gaiaGeomCollPtr geom)
 }
 
 GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaConvexHull_r (const void *p_cache, gaiaGeomCollPtr geom)
+{
+/* builds a geometry that is the convex hull of GEOM */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSConvexHull_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
 gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points)
 {
 /* builds a geometry that is the GIS buffer of GEOM */
     gaiaGeomCollPtr geo;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
     if (!geom)
 	return NULL;
     if (gaiaIsToxic (geom))
@@ -1673,8 +2965,53 @@ gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points)
     return geo;
 }
 
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaGeomCollBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, double radius,
+		      int points)
+{
+/* builds a geometry that is the GIS buffer of GEOM */
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSBuffer_r (handle, g1, radius, points);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
 static void
-auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result)
+auxFromGeosPolygon (GEOSContextHandle_t handle, const GEOSGeometry * geos,
+		    gaiaGeomCollPtr result)
 {
 /* converting a Polygon from GEOS to SpatiaLite */
     const GEOSGeometry *geos_ring;
@@ -1690,11 +3027,22 @@ auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result)
     gaiaPolygonPtr pg;
     gaiaRingPtr rng;
 
-    geos_ring = GEOSGetExteriorRing (geos);
-    interiors = GEOSGetNumInteriorRings (geos);
-    coords = GEOSGeom_getCoordSeq (geos_ring);
-    GEOSCoordSeq_getDimensions (coords, &geos_dims);
-    GEOSCoordSeq_getSize (coords, &pts);
+    if (handle != NULL)
+      {
+	  geos_ring = GEOSGetExteriorRing_r (handle, geos);
+	  interiors = GEOSGetNumInteriorRings_r (handle, geos);
+	  coords = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+	  GEOSCoordSeq_getDimensions_r (handle, coords, &geos_dims);
+	  GEOSCoordSeq_getSize_r (handle, coords, &pts);
+      }
+    else
+      {
+	  geos_ring = GEOSGetExteriorRing (geos);
+	  interiors = GEOSGetNumInteriorRings (geos);
+	  coords = GEOSGeom_getCoordSeq (geos_ring);
+	  GEOSCoordSeq_getDimensions (coords, &geos_dims);
+	  GEOSCoordSeq_getSize (coords, &pts);
+      }
 
     pg = gaiaAddPolygonToGeomColl (result, pts, interiors);
 /* setting up the Exterior ring */
@@ -1703,14 +3051,31 @@ auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result)
       {
 	  if (geos_dims == 3)
 	    {
-		GEOSCoordSeq_getX (coords, iv, &x);
-		GEOSCoordSeq_getY (coords, iv, &y);
-		GEOSCoordSeq_getZ (coords, iv, &z);
+		if (handle != NULL)
+		  {
+		      GEOSCoordSeq_getX_r (handle, coords, iv, &x);
+		      GEOSCoordSeq_getY_r (handle, coords, iv, &y);
+		      GEOSCoordSeq_getZ_r (handle, coords, iv, &z);
+		  }
+		else
+		  {
+		      GEOSCoordSeq_getX (coords, iv, &x);
+		      GEOSCoordSeq_getY (coords, iv, &y);
+		      GEOSCoordSeq_getZ (coords, iv, &z);
+		  }
 	    }
 	  else
 	    {
-		GEOSCoordSeq_getX (coords, iv, &x);
-		GEOSCoordSeq_getY (coords, iv, &y);
+		if (handle != NULL)
+		  {
+		      GEOSCoordSeq_getX_r (handle, coords, iv, &x);
+		      GEOSCoordSeq_getY_r (handle, coords, iv, &y);
+		  }
+		else
+		  {
+		      GEOSCoordSeq_getX (coords, iv, &x);
+		      GEOSCoordSeq_getY (coords, iv, &y);
+		  }
 		z = 0.0;
 	    }
 	  if (rng->DimensionModel == GAIA_XY_Z)
@@ -1734,24 +3099,51 @@ auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result)
     for (ib = 0; ib < interiors; ib++)
       {
 	  /* setting up any interior ring */
-	  geos_ring = GEOSGetInteriorRingN (geos, ib);
-	  coords = GEOSGeom_getCoordSeq (geos_ring);
-	  GEOSCoordSeq_getDimensions (coords, &geos_dims);
-	  GEOSCoordSeq_getSize (coords, &pts);
+	  if (handle != NULL)
+	    {
+		geos_ring = GEOSGetInteriorRingN_r (handle, geos, ib);
+		coords = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+		GEOSCoordSeq_getDimensions_r (handle, coords, &geos_dims);
+		GEOSCoordSeq_getSize_r (handle, coords, &pts);
+	    }
+	  else
+	    {
+		geos_ring = GEOSGetInteriorRingN (geos, ib);
+		coords = GEOSGeom_getCoordSeq (geos_ring);
+		GEOSCoordSeq_getDimensions (coords, &geos_dims);
+		GEOSCoordSeq_getSize (coords, &pts);
+	    }
 	  rng = gaiaAddInteriorRing (pg, ib, pts);
 	  for (iv = 0; iv < (int) pts; iv++)
 	    {
 		if (geos_dims == 3)
 		  {
-		      GEOSCoordSeq_getX (coords, iv, &x);
-		      GEOSCoordSeq_getY (coords, iv, &y);
-		      GEOSCoordSeq_getZ (coords, iv, &z);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_getX_r (handle, coords, iv, &x);
+			    GEOSCoordSeq_getY_r (handle, coords, iv, &y);
+			    GEOSCoordSeq_getZ_r (handle, coords, iv, &z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_getX (coords, iv, &x);
+			    GEOSCoordSeq_getY (coords, iv, &y);
+			    GEOSCoordSeq_getZ (coords, iv, &z);
+			}
 		  }
 		else
 		  {
-		      GEOSCoordSeq_getX (coords, iv, &x);
-		      GEOSCoordSeq_getY (coords, iv, &y);
-		      z = 0.0;
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_getX_r (handle, coords, iv, &x);
+			    GEOSCoordSeq_getY_r (handle, coords, iv, &y);
+			}
+		      else
+			{
+			    GEOSCoordSeq_getX (coords, iv, &x);
+			    GEOSCoordSeq_getY (coords, iv, &y);
+			}
+		      z = 0.0;
 		  }
 		if (rng->DimensionModel == GAIA_XY_Z)
 		  {
@@ -1774,8 +3166,9 @@ auxFromGeosPolygon (const GEOSGeometry * geos, gaiaGeomCollPtr result)
 }
 
 static void
-auxGeosMbr (const GEOSCoordSequence * cs, unsigned int pts, double *min_x,
-	    double *min_y, double *max_x, double *max_y)
+auxGeosMbr (GEOSContextHandle_t handle, const GEOSCoordSequence * cs,
+	    unsigned int pts, double *min_x, double *min_y, double *max_x,
+	    double *max_y)
 {
 /* computing the MBR */
     int iv;
@@ -1787,8 +3180,16 @@ auxGeosMbr (const GEOSCoordSequence * cs, unsigned int pts, double *min_x,
     *max_y = 0 - DBL_MAX;
     for (iv = 0; iv < (int) pts; iv++)
       {
-	  GEOSCoordSeq_getX (cs, iv, &x);
-	  GEOSCoordSeq_getY (cs, iv, &y);
+	  if (handle != NULL)
+	    {
+		GEOSCoordSeq_getX_r (handle, cs, iv, &x);
+		GEOSCoordSeq_getY_r (handle, cs, iv, &y);
+	    }
+	  else
+	    {
+		GEOSCoordSeq_getX (cs, iv, &x);
+		GEOSCoordSeq_getY (cs, iv, &y);
+	    }
 	  if (x < *min_x)
 	      *min_x = x;
 	  if (x > *max_x)
@@ -1800,8 +3201,9 @@ auxGeosMbr (const GEOSCoordSequence * cs, unsigned int pts, double *min_x,
       }
 }
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
+static gaiaGeomCollPtr
+gaiaPolygonizeCommon (const void *cache, GEOSContextHandle_t handle,
+		      gaiaGeomCollPtr geom, int force_multi)
 {
 /* attempts to rearrange a generic Geometry into a (multi)polygon */
     int ig;
@@ -1841,10 +3243,15 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
     double max_x2;
     double min_y2;
     double max_y2;
+    int ret;
 
     if (!geom)
 	return NULL;
-    if (gaiaIsToxic (geom))
+    if (cache != NULL)
+	ret = gaiaIsToxic_r (cache, geom);
+    else
+	ret = gaiaIsToxic (geom);
+    if (ret)
 	return NULL;
     pt = geom->FirstPoint;
     while (pt)
@@ -1886,7 +3293,10 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
     ln = geom->FirstLinestring;
     while (ln)
       {
-	  cs = GEOSCoordSeq_create (ln->Points, geos_dims);
+	  if (handle != NULL)
+	      cs = GEOSCoordSeq_create_r (handle, ln->Points, geos_dims);
+	  else
+	      cs = GEOSCoordSeq_create (ln->Points, geos_dims);
 	  for (iv = 0; iv < ln->Points; iv++)
 	    {
 		/* exterior ring segments */
@@ -1909,22 +3319,45 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
 		  }
 		if (geos_dims == 3)
 		  {
-		      GEOSCoordSeq_setX (cs, iv, x);
-		      GEOSCoordSeq_setY (cs, iv, y);
-		      GEOSCoordSeq_setZ (cs, iv, z);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_setX_r (handle, cs, iv, x);
+			    GEOSCoordSeq_setY_r (handle, cs, iv, y);
+			    GEOSCoordSeq_setZ_r (handle, cs, iv, z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_setX (cs, iv, x);
+			    GEOSCoordSeq_setY (cs, iv, y);
+			    GEOSCoordSeq_setZ (cs, iv, z);
+			}
 		  }
 		else
 		  {
-		      GEOSCoordSeq_setX (cs, iv, x);
-		      GEOSCoordSeq_setY (cs, iv, y);
+		      if (handle != NULL)
+			{
+			    GEOSCoordSeq_setX_r (handle, cs, iv, x);
+			    GEOSCoordSeq_setY_r (handle, cs, iv, y);
+			}
+		      else
+			{
+			    GEOSCoordSeq_setX (cs, iv, x);
+			    GEOSCoordSeq_setY (cs, iv, y);
+			}
 		  }
 	    }
-	  *p_item++ = GEOSGeom_createLineString (cs);
+	  if (handle != NULL)
+	      *p_item++ = GEOSGeom_createLineString_r (handle, cs);
+	  else
+	      *p_item++ = GEOSGeom_createLineString (cs);
 	  ln = ln->Next;
       }
 
 /* calling GEOSPolygonize */
-    geos = GEOSPolygonize (geos_list, lns);
+    if (handle != NULL)
+	geos = GEOSPolygonize_r (handle, geos_list, lns);
+    else
+	geos = GEOSPolygonize (geos_list, lns);
     if (geos == NULL)
 	goto cleanup;
 
@@ -1939,16 +3372,32 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
 /
 */
     error = 0;
-    items = GEOSGetNumGeometries (geos);
+    if (handle != NULL)
+	items = GEOSGetNumGeometries_r (handle, geos);
+    else
+	items = GEOSGetNumGeometries (geos);
     for (ig = 0; ig < items; ig++)
       {
 	  /* looping on elementaty GEOS geometries */
-	  geos_item = GEOSGetGeometryN (geos, ig);
-	  if (GEOSGeomTypeId (geos_item) != GEOS_POLYGON)
+	  if (handle != NULL)
 	    {
-		/* not a Polygon ... ouch ... */
-		error = 1;
-		goto cleanup;
+		geos_item = GEOSGetGeometryN_r (handle, geos, ig);
+		if (GEOSGeomTypeId_r (handle, geos_item) != GEOS_POLYGON)
+		  {
+		      /* not a Polygon ... ouch ... */
+		      error = 1;
+		      goto cleanup;
+		  }
+	    }
+	  else
+	    {
+		geos_item = GEOSGetGeometryN (geos, ig);
+		if (GEOSGeomTypeId (geos_item) != GEOS_POLYGON)
+		  {
+		      /* not a Polygon ... ouch ... */
+		      error = 1;
+		      goto cleanup;
+		  }
 	    }
       }
 
@@ -1959,15 +3408,34 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
     for (ig = 0; ig < items; ig++)
       {
 	  /* looping on elementaty GEOS Polygons */
-	  geos_item = GEOSGetGeometryN (geos, ig);
-	  interiors = GEOSGetNumInteriorRings (geos_item);
+	  if (handle != NULL)
+	    {
+		geos_item = GEOSGetGeometryN_r (handle, geos, ig);
+		interiors = GEOSGetNumInteriorRings_r (handle, geos_item);
+	    }
+	  else
+	    {
+		geos_item = GEOSGetGeometryN (geos, ig);
+		interiors = GEOSGetNumInteriorRings (geos_item);
+	    }
 	  for (ib = 0; ib < interiors; ib++)
 	    {
 		/* looping on any interior ring */
-		geos_ring = GEOSGetInteriorRingN (geos_item, ib);
-		coords = GEOSGeom_getCoordSeq (geos_ring);
-		GEOSCoordSeq_getSize (coords, &pts1);
-		auxGeosMbr (coords, pts1, &min_x1, &min_y1, &max_x1, &max_y1);
+		if (handle != NULL)
+		  {
+		      geos_ring =
+			  GEOSGetInteriorRingN_r (handle, geos_item, ib);
+		      coords = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+		      GEOSCoordSeq_getSize_r (handle, coords, &pts1);
+		  }
+		else
+		  {
+		      geos_ring = GEOSGetInteriorRingN (geos_item, ib);
+		      coords = GEOSGeom_getCoordSeq (geos_ring);
+		      GEOSCoordSeq_getSize (coords, &pts1);
+		  }
+		auxGeosMbr (handle, coords, pts1, &min_x1, &min_y1, &max_x1,
+			    &max_y1);
 		for (iv = 0; iv < items; iv++)
 		  {
 		      if (iv == ig)
@@ -1980,19 +3448,36 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
 			    /* skipping any already invalid Polygon */
 			    continue;
 			}
-		      geos_item2 = GEOSGetGeometryN (geos, iv);
-		      if (GEOSGetNumInteriorRings (geos_item2) > 0)
+		      if (handle != NULL)
 			{
-			    /* this Polygon contains holes [surely valid] */
-			    continue;
+			    geos_item2 = GEOSGetGeometryN_r (handle, geos, iv);
+			    if (GEOSGetNumInteriorRings_r (handle, geos_item2) >
+				0)
+			      {
+				  /* this Polygon contains holes [surely valid] */
+				  continue;
+			      }
+			    geos_ring =
+				GEOSGetExteriorRing_r (handle, geos_item2);
+			    coords = GEOSGeom_getCoordSeq_r (handle, geos_ring);
+			    GEOSCoordSeq_getSize_r (handle, coords, &pts2);
+			}
+		      else
+			{
+			    geos_item2 = GEOSGetGeometryN (geos, iv);
+			    if (GEOSGetNumInteriorRings (geos_item2) > 0)
+			      {
+				  /* this Polygon contains holes [surely valid] */
+				  continue;
+			      }
+			    geos_ring = GEOSGetExteriorRing (geos_item2);
+			    coords = GEOSGeom_getCoordSeq (geos_ring);
+			    GEOSCoordSeq_getSize (coords, &pts2);
 			}
-		      geos_ring = GEOSGetExteriorRing (geos_item2);
-		      coords = GEOSGeom_getCoordSeq (geos_ring);
-		      GEOSCoordSeq_getSize (coords, &pts2);
 		      if (pts1 == pts2)
 			{
-			    auxGeosMbr (coords, pts2, &min_x2, &min_y2, &max_x2,
-					&max_y2);
+			    auxGeosMbr (handle, coords, pts2, &min_x2, &min_y2,
+					&max_x2, &max_y2);
 			    if (min_x1 == min_x2 && min_y1 == min_y2
 				&& max_x1 == max_x2 && max_y1 == max_y2)
 			      {
@@ -2022,9 +3507,12 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
     for (ig = 0; ig < items; ig++)
       {
 	  /* looping on GEOS Polygons */
-	  geos_item = GEOSGetGeometryN (geos, ig);
+	  if (handle != NULL)
+	      geos_item = GEOSGetGeometryN_r (handle, geos, ig);
+	  else
+	      geos_item = GEOSGetGeometryN (geos, ig);
 	  if (valid_polygons[ig] == 'Y')
-	      auxFromGeosPolygon (geos_item, result);
+	      auxFromGeosPolygon (handle, geos_item, result);
       }
 
   cleanup:
@@ -2037,14 +3525,24 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
 	  for (iv = 0; iv < lns; iv++)
 	    {
 		if (*p_item != NULL)
-		    GEOSGeom_destroy (*p_item);
+		  {
+		      if (handle != NULL)
+			  GEOSGeom_destroy_r (handle, *p_item);
+		      else
+			  GEOSGeom_destroy (*p_item);
+		  }
 		p_item++;
 	    }
 	  p_item = (GEOSGeometry **) geos_list;
 	  free (p_item);
       }
     if (geos != NULL)
-	GEOSGeom_destroy (geos);
+      {
+	  if (handle != NULL)
+	      GEOSGeom_destroy_r (handle, geos);
+	  else
+	      GEOSGeom_destroy (geos);
+      }
     if (error || result->FirstPolygon == NULL)
       {
 	  gaiaFreeGeomColl (result);
@@ -2053,2926 +3551,268 @@ gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
     return result;
 }
 
-#ifdef GEOS_ADVANCED		/* GEOS advanced features */
-
 GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points,
-		 int left_right)
+gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi)
 {
-/*
-// builds a geometry that is the OffsetCurve of GEOM 
-// (which is expected to be of the LINESTRING type)
-//
-*/
-    gaiaGeomCollPtr geo;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    int pts = 0;
-    int lns = 0;
-    int pgs = 0;
-    int closed = 0;
-    if (!geom)
-	return NULL;
+/* attempts to rearrange a generic Geometry into a (multi)polygon */
+    gaiaResetGeosMsg ();
+    return gaiaPolygonizeCommon (NULL, NULL, geom, force_multi);
+}
 
-/* checking the input geometry for validity */
-    pt = geom->FirstPoint;
-    while (pt)
-      {
-	  /* counting how many POINTs are there */
-	  pts++;
-	  pt = pt->Next;
-      }
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  /* counting how many LINESTRINGs are there */
-	  lns++;
-	  if (gaiaIsClosed (ln))
-	      closed++;
-	  ln = ln->Next;
-      }
-    pg = geom->FirstPolygon;
-    while (pg)
-      {
-	  /* counting how many POLYGON are there */
-	  pgs++;
-	  pg = pg->Next;
-      }
-    if (pts > 0 || pgs > 0 || lns > 1 || closed > 0)
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaPolygonize_r (const void *p_cache, gaiaGeomCollPtr geom, int force_multi)
+{
+/* attempts to rearrange a generic Geometry into a (multi)polygon */
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
 	return NULL;
-
-/* all right: this one simply is a LINESTRING */
-    geom->DeclaredType = GAIA_LINESTRING;
-
-    g1 = gaiaToGeos (geom);
-    g2 = GEOSSingleSidedBuffer (g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0,
-				left_right);
-    GEOSGeom_destroy (g1);
-    if (!g2)
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
 	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	geo = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	geo = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	geo = gaiaFromGeos_XYZM (g2);
-    else
-	geo = gaiaFromGeos_XY (g2);
-    GEOSGeom_destroy (g2);
-    if (geo == NULL)
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
 	return NULL;
-    geo->Srid = geom->Srid;
-    return geo;
+    gaiaResetGeosMsg_r (cache);
+    return gaiaPolygonizeCommon (cache, handle, geom, force_multi);
 }
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points,
-		       int left_right)
+GAIAGEO_DECLARE int
+gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
-/*
-// builds a geometry that is the SingleSided BUFFER of GEOM 
-// (which is expected to be of the LINESTRING type)
-//
-*/
-    gaiaGeomCollPtr geo;
+/* checks if geom1 "spatially covers" geom2 */
+    int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
-    GEOSBufferParams *params = NULL;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    int pts = 0;
-    int lns = 0;
-    int pgs = 0;
-    int closed = 0;
-    if (!geom)
-	return NULL;
-
-/* checking the input geometry for validity */
-    pt = geom->FirstPoint;
-    while (pt)
-      {
-	  /* counting how many POINTs are there */
-	  pts++;
-	  pt = pt->Next;
-      }
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  /* counting how many LINESTRINGs are there */
-	  lns++;
-	  if (gaiaIsClosed (ln))
-	      closed++;
-	  ln = ln->Next;
-      }
-    pg = geom->FirstPolygon;
-    while (pg)
-      {
-	  /* counting how many POLYGON are there */
-	  pgs++;
-	  pg = pg->Next;
-      }
-    if (pts > 0 || pgs > 0 || lns > 1 || closed > 0)
-	return NULL;
+    gaiaResetGeosMsg ();
+    if (!geom1 || !geom2)
+	return -1;
 
-/* all right: this one simply is a LINESTRING */
-    geom->DeclaredType = GAIA_LINESTRING;
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_contains (geom1, geom2))
+	return 0;
 
-    g1 = gaiaToGeos (geom);
-/* setting up Buffer params */
-    params = GEOSBufferParams_create ();
-    GEOSBufferParams_setJoinStyle (params, GEOSBUF_JOIN_ROUND);
-    GEOSBufferParams_setMitreLimit (params, 5.0);
-    GEOSBufferParams_setQuadrantSegments (params, points);
-    GEOSBufferParams_setSingleSided (params, 1);
-
-/* creating the SingleSided Buffer */
-    if (left_right == 0)
-      {
-	  /* right-sided requires NEGATIVE radius */
-	  radius *= -1.0;
-      }
-    g2 = GEOSBufferWithParams (g1, params, radius);
+    g1 = gaiaToGeos (geom1);
+    g2 = gaiaToGeos (geom2);
+    ret = GEOSCovers (g1, g2);
     GEOSGeom_destroy (g1);
-    GEOSBufferParams_destroy (params);
-    if (!g2)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	geo = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	geo = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	geo = gaiaFromGeos_XYZM (g2);
-    else
-	geo = gaiaFromGeos_XY (g2);
     GEOSGeom_destroy (g2);
-    if (geo == NULL)
-	return NULL;
-    geo->Srid = geom->Srid;
-    return geo;
+    if (ret == 2)
+	return -1;
+    return ret;
 }
 
 GAIAGEO_DECLARE int
-gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
-		       double *xdist)
+gaiaGeomCollCovers_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		      gaiaGeomCollPtr geom2)
 {
-/* 
-/ computes the (discrete) Hausdorff distance intercurring 
-/ between GEOM-1 and GEOM-2 
-*/
-    double dist;
+/* checks if geom1 "spatially covers" geom2 */
     int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
     if (!geom1 || !geom2)
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_contains (geom1, geom2))
 	return 0;
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSHausdorffDistance (g1, g2, &dist);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (ret)
-	*xdist = dist;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSCovers_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret == 2)
+	return -1;
     return ret;
 }
 
-static gaiaGeomCollPtr
-geom_as_lines (gaiaGeomCollPtr geom)
+GAIAGEO_DECLARE int
+gaiaGeomCollPreparedCovers (const void *p_cache, gaiaGeomCollPtr geom1,
+			    unsigned char *blob1, int size1,
+			    gaiaGeomCollPtr geom2, unsigned char *blob2,
+			    int size2)
 {
-/* transforms a Geometry into a LINESTRING/MULTILINESTRING (if possible) */
-    gaiaGeomCollPtr result;
-    gaiaLinestringPtr ln;
-    gaiaLinestringPtr new_ln;
-    gaiaPolygonPtr pg;
-    gaiaRingPtr rng;
-    int iv;
-    int ib;
-    double x;
-    double y;
-    double z;
-    double m;
+/* checks if geom1 "spatially covers" geom2 */
+    int ret;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSPreparedGeometry *gPrep;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr geom;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
 
-    if (!geom)
-	return NULL;
-    if (geom->FirstPoint != NULL)
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_contains (geom1, geom2))
+	return 0;
+
+/* handling the internal GEOS cache */
+    if (evalGeosCache
+	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  /* invalid: GEOM contains at least one POINT */
-	  return NULL;
+	  g2 = gaiaToGeos_r (cache, geom);
+	  if (geom == geom2)
+	      ret = GEOSPreparedCovers_r (handle, gPrep, g2);
+	  else
+	      ret = GEOSPreparedCoveredBy_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
+	  if (ret == 2)
+	      return -1;
+	  return ret;
       }
 
-    switch (geom->DimensionModel)
-      {
-      case GAIA_XY_Z_M:
-	  result = gaiaAllocGeomCollXYZM ();
-	  break;
-      case GAIA_XY_Z:
-	  result = gaiaAllocGeomCollXYZ ();
-	  break;
-      case GAIA_XY_M:
-	  result = gaiaAllocGeomCollXYM ();
-	  break;
-      default:
-	  result = gaiaAllocGeomColl ();
-	  break;
-      };
-    result->Srid = geom->Srid;
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  /* copying any Linestring */
-	  new_ln = gaiaAddLinestringToGeomColl (result, ln->Points);
-	  for (iv = 0; iv < ln->Points; iv++)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      gaiaSetPointXYM (new_ln->Coords, iv, x, y, m);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      gaiaSetPoint (new_ln->Coords, iv, x, y);
-		  }
-	    }
-	  ln = ln->Next;
-      }
-    pg = geom->FirstPolygon;
-    while (pg)
-      {
-	  /* copying any Polygon Ring (as Linestring) */
-	  rng = pg->Exterior;
-	  new_ln = gaiaAddLinestringToGeomColl (result, rng->Points);
-	  for (iv = 0; iv < rng->Points; iv++)
-	    {
-		/* exterior Ring */
-		if (rng->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
-		      gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z);
-		  }
-		else if (rng->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
-		      gaiaSetPointXYM (new_ln->Coords, iv, x, y, m);
-		  }
-		else if (rng->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
-		      gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaGetPoint (rng->Coords, iv, &x, &y);
-		      gaiaSetPoint (new_ln->Coords, iv, x, y);
-		  }
-	    }
-	  for (ib = 0; ib < pg->NumInteriors; ib++)
-	    {
-		rng = pg->Interiors + ib;
-		new_ln = gaiaAddLinestringToGeomColl (result, rng->Points);
-		for (iv = 0; iv < rng->Points; iv++)
-		  {
-		      /* any interior Ring */
-		      if (rng->DimensionModel == GAIA_XY_Z)
-			{
-			    gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
-			    gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z);
-			}
-		      else if (rng->DimensionModel == GAIA_XY_M)
-			{
-			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
-			    gaiaSetPointXYM (new_ln->Coords, iv, x, y, m);
-			}
-		      else if (rng->DimensionModel == GAIA_XY_Z_M)
-			{
-			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
-			    gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m);
-			}
-		      else
-			{
-			    gaiaGetPoint (rng->Coords, iv, &x, &y);
-			    gaiaSetPoint (new_ln->Coords, iv, x, y);
-			}
-		  }
-	    }
-	  pg = pg->Next;
-      }
-    return result;
-}
-
-static void
-add_shared_linestring (gaiaGeomCollPtr geom, gaiaDynamicLinePtr dyn)
-{
-/* adding a LINESTRING from Dynamic Line */
-    int count = 0;
-    gaiaLinestringPtr ln;
-    gaiaPointPtr pt;
-    int iv;
-
-    if (!geom)
-	return;
-    if (!dyn)
-	return;
-    pt = dyn->First;
-    while (pt)
-      {
-	  /* counting how many Points are there */
-	  count++;
-	  pt = pt->Next;
-      }
-    if (count == 0)
-	return;
-    ln = gaiaAddLinestringToGeomColl (geom, count);
-    iv = 0;
-    pt = dyn->First;
-    while (pt)
-      {
-	  /* copying points into the LINESTRING */
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M);
-	    }
-	  else
-	    {
-		gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y);
-	    }
-	  iv++;
-	  pt = pt->Next;
-      }
-}
-
-static void
-append_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order)
-{
-/* appends a Shared Path item to Dynamic Line */
-    int iv;
-    double x;
-    double y;
-    double z;
-    double m;
-    if (order)
-      {
-	  /* reversed order */
-	  for (iv = ln->Points - 1; iv >= 0; iv--)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      if (x == dyn->Last->X && y == dyn->Last->Y
-			  && z == dyn->Last->Z)
-			  ;
-		      else
-			  gaiaAppendPointZToDynamicLine (dyn, x, y, z);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      if (x == dyn->Last->X && y == dyn->Last->Y
-			  && m == dyn->Last->M)
-			  ;
-		      else
-			  gaiaAppendPointMToDynamicLine (dyn, x, y, m);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      if (x == dyn->Last->X && y == dyn->Last->Y
-			  && z == dyn->Last->Z && m == dyn->Last->M)
-			  ;
-		      else
-			  gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      if (x == dyn->Last->X && y == dyn->Last->Y)
-			  ;
-		      else
-			  gaiaAppendPointToDynamicLine (dyn, x, y);
-		  }
-	    }
-      }
-    else
-      {
-	  /* conformant order */
-	  for (iv = 0; iv < ln->Points; iv++)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      if (x == dyn->Last->X && y == dyn->Last->Y
-			  && z == dyn->Last->Z)
-			  ;
-		      else
-			  gaiaAppendPointZToDynamicLine (dyn, x, y, z);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      if (x == dyn->Last->X && y == dyn->Last->Y
-			  && m == dyn->Last->M)
-			  ;
-		      else
-			  gaiaAppendPointMToDynamicLine (dyn, x, y, m);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      if (x == dyn->Last->X && y == dyn->Last->Y
-			  && z == dyn->Last->Z && m == dyn->Last->M)
-			  ;
-		      else
-			  gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      if (x == dyn->Last->X && y == dyn->Last->Y)
-			  ;
-		      else
-			  gaiaAppendPointToDynamicLine (dyn, x, y);
-		  }
-	    }
-      }
-}
-
-static void
-prepend_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order)
-{
-/* prepends a Shared Path item to Dynamic Line */
-    int iv;
-    double x;
-    double y;
-    double z;
-    double m;
-    if (order)
-      {
-	  /* reversed order */
-	  for (iv = 0; iv < ln->Points; iv++)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      if (x == dyn->First->X && y == dyn->First->Y
-			  && z == dyn->First->Z)
-			  ;
-		      else
-			  gaiaPrependPointZToDynamicLine (dyn, x, y, z);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      if (x == dyn->First->X && y == dyn->First->Y
-			  && m == dyn->First->M)
-			  ;
-		      else
-			  gaiaPrependPointMToDynamicLine (dyn, x, y, m);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      if (x == dyn->First->X && y == dyn->First->Y
-			  && z == dyn->First->Z && m == dyn->First->M)
-			  ;
-		      else
-			  gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      if (x == dyn->First->X && y == dyn->First->Y)
-			  ;
-		      else
-			  gaiaPrependPointToDynamicLine (dyn, x, y);
-		  }
-	    }
-      }
-    else
-      {
-	  /* conformant order */
-	  for (iv = ln->Points - 1; iv >= 0; iv--)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      if (x == dyn->First->X && y == dyn->First->Y
-			  && z == dyn->First->Z)
-			  ;
-		      else
-			  gaiaPrependPointZToDynamicLine (dyn, x, y, z);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      if (x == dyn->First->X && y == dyn->First->Y
-			  && m == dyn->First->M)
-			  ;
-		      else
-			  gaiaPrependPointMToDynamicLine (dyn, x, y, m);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      if (x == dyn->First->X && y == dyn->First->Y
-			  && z == dyn->First->Z && m == dyn->First->M)
-			  ;
-		      else
-			  gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      if (x == dyn->First->X && y == dyn->First->Y)
-			  ;
-		      else
-			  gaiaPrependPointToDynamicLine (dyn, x, y);
-		  }
-	    }
-      }
-}
-
-static gaiaGeomCollPtr
-arrange_shared_paths (gaiaGeomCollPtr geom)
-{
-/* final aggregation step for shared paths */
-    gaiaLinestringPtr ln;
-    gaiaLinestringPtr *ln_array;
-    gaiaGeomCollPtr result;
-    gaiaDynamicLinePtr dyn;
-    int count;
-    int i;
-    int i2;
-    int iv;
-    double x;
-    double y;
-    double z;
-    double m;
-    int ok;
-    int ok2;
-
-    if (!geom)
-	return NULL;
-    count = 0;
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  /* counting how many Linestrings are there */
-	  count++;
-	  ln = ln->Next;
-      }
-    if (count == 0)
-	return NULL;
-
-    ln_array = malloc (sizeof (gaiaLinestringPtr) * count);
-    i = 0;
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  /* populating the Linestring references array */
-	  ln_array[i++] = ln;
-	  ln = ln->Next;
-      }
-
-/* allocating a new Geometry [MULTILINESTRING] */
-    switch (geom->DimensionModel)
-      {
-      case GAIA_XY_Z_M:
-	  result = gaiaAllocGeomCollXYZM ();
-	  break;
-      case GAIA_XY_Z:
-	  result = gaiaAllocGeomCollXYZ ();
-	  break;
-      case GAIA_XY_M:
-	  result = gaiaAllocGeomCollXYM ();
-	  break;
-      default:
-	  result = gaiaAllocGeomColl ();
-	  break;
-      };
-    result->Srid = geom->Srid;
-    result->DeclaredType = GAIA_MULTILINESTRING;
-
-    ok = 1;
-    while (ok)
-      {
-	  /* looping until we have processed any input item */
-	  ok = 0;
-	  for (i = 0; i < count; i++)
-	    {
-		if (ln_array[i] != NULL)
-		  {
-		      /* starting a new LINESTRING */
-		      dyn = gaiaAllocDynamicLine ();
-		      ln = ln_array[i];
-		      ln_array[i] = NULL;
-		      for (iv = 0; iv < ln->Points; iv++)
-			{
-			    /* inserting the 'seed' path */
-			    if (ln->DimensionModel == GAIA_XY_Z)
-			      {
-				  gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-				  gaiaAppendPointZToDynamicLine (dyn, x, y, z);
-			      }
-			    else if (ln->DimensionModel == GAIA_XY_M)
-			      {
-				  gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-				  gaiaAppendPointMToDynamicLine (dyn, x, y, m);
-			      }
-			    else if (ln->DimensionModel == GAIA_XY_Z_M)
-			      {
-				  gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z,
-						    &m);
-				  gaiaAppendPointZMToDynamicLine (dyn, x, y, z,
-								  m);
-			      }
-			    else
-			      {
-				  gaiaGetPoint (ln->Coords, iv, &x, &y);
-				  gaiaAppendPointToDynamicLine (dyn, x, y);
-			      }
-			}
-		      ok2 = 1;
-		      while (ok2)
-			{
-			    /* looping until we have checked any other item */
-			    ok2 = 0;
-			    for (i2 = 0; i2 < count; i2++)
-			      {
-				  /* expanding the 'seed' path */
-				  if (ln_array[i2] == NULL)
-				      continue;
-				  ln = ln_array[i2];
-				  /* checking the first vertex */
-				  iv = 0;
-				  if (ln->DimensionModel == GAIA_XY_Z)
-				    {
-					gaiaGetPointXYZ (ln->Coords, iv, &x, &y,
-							 &z);
-				    }
-				  else if (ln->DimensionModel == GAIA_XY_M)
-				    {
-					gaiaGetPointXYM (ln->Coords, iv, &x, &y,
-							 &m);
-				    }
-				  else if (ln->DimensionModel == GAIA_XY_Z_M)
-				    {
-					gaiaGetPointXYZM (ln->Coords, iv, &x,
-							  &y, &z, &m);
-				    }
-				  else
-				    {
-					gaiaGetPoint (ln->Coords, iv, &x, &y);
-				    }
-				  if (x == dyn->Last->X && y == dyn->Last->Y)
-				    {
-					/* appending this item to the 'seed' (conformant order) */
-					append_shared_path (dyn, ln, 0);
-					ln_array[i2] = NULL;
-					ok2 = 1;
-					continue;
-				    }
-				  if (x == dyn->First->X && y == dyn->First->Y)
-				    {
-					/* prepending this item to the 'seed' (reversed order) */
-					prepend_shared_path (dyn, ln, 1);
-					ln_array[i2] = NULL;
-					ok2 = 1;
-					continue;
-				    }
-				  /* checking the last vertex */
-				  iv = ln->Points - 1;
-				  if (ln->DimensionModel == GAIA_XY_Z)
-				    {
-					gaiaGetPointXYZ (ln->Coords, iv, &x, &y,
-							 &z);
-				    }
-				  else if (ln->DimensionModel == GAIA_XY_M)
-				    {
-					gaiaGetPointXYM (ln->Coords, iv, &x, &y,
-							 &m);
-				    }
-				  else if (ln->DimensionModel == GAIA_XY_Z_M)
-				    {
-					gaiaGetPointXYZM (ln->Coords, iv, &x,
-							  &y, &z, &m);
-				    }
-				  else
-				    {
-					gaiaGetPoint (ln->Coords, iv, &x, &y);
-				    }
-				  if (x == dyn->Last->X && y == dyn->Last->Y)
-				    {
-					/* appending this item to the 'seed' (reversed order) */
-					append_shared_path (dyn, ln, 1);
-					ln_array[i2] = NULL;
-					ok2 = 1;
-					continue;
-				    }
-				  if (x == dyn->First->X && y == dyn->First->Y)
-				    {
-					/* prepending this item to the 'seed' (conformant order) */
-					prepend_shared_path (dyn, ln, 0);
-					ln_array[i2] = NULL;
-					ok2 = 1;
-					continue;
-				    }
-			      }
-			}
-		      add_shared_linestring (result, dyn);
-		      gaiaFreeDynamicLine (dyn);
-		      ok = 1;
-		      break;
-		  }
-	    }
-      }
-    free (ln_array);
-    return result;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/*
-// builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 
-// (which are expected to be of the LINESTRING/MULTILINESTRING type)
-//
-*/
-    gaiaGeomCollPtr geo;
-    gaiaGeomCollPtr result;
-    gaiaGeomCollPtr line1;
-    gaiaGeomCollPtr line2;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    GEOSGeometry *g3;
-    if (!geom1)
-	return NULL;
-    if (!geom2)
-	return NULL;
-/* transforming input geoms as Lines */
-    line1 = geom_as_lines (geom1);
-    line2 = geom_as_lines (geom2);
-    if (line1 == NULL || line2 == NULL)
-      {
-	  if (line1)
-	      gaiaFreeGeomColl (line1);
-	  if (line2)
-	      gaiaFreeGeomColl (line2);
-	  return NULL;
-      }
-
-    g1 = gaiaToGeos (line1);
-    g2 = gaiaToGeos (line2);
-    gaiaFreeGeomColl (line1);
-    gaiaFreeGeomColl (line2);
-    g3 = GEOSSharedPaths (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (!g3)
-	return NULL;
-    if (geom1->DimensionModel == GAIA_XY_Z)
-	geo = gaiaFromGeos_XYZ (g3);
-    else if (geom1->DimensionModel == GAIA_XY_M)
-	geo = gaiaFromGeos_XYM (g3);
-    else if (geom1->DimensionModel == GAIA_XY_Z_M)
-	geo = gaiaFromGeos_XYZM (g3);
-    else
-	geo = gaiaFromGeos_XY (g3);
-    GEOSGeom_destroy (g3);
-    if (geo == NULL)
-	return NULL;
-    geo->Srid = geom1->Srid;
-    result = arrange_shared_paths (geo);
-    gaiaFreeGeomColl (geo);
-    return result;
-}
-
-GAIAGEO_DECLARE int
-gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/* checks if geom1 "spatially covers" geom2 */
-    int ret;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    if (!geom1 || !geom2)
-	return -1;
-
-/* quick check based on MBRs comparison */
-    if (!splite_mbr_contains (geom1, geom2))
-	return 0;
-
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSCovers (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (ret == 2)
-	return -1;
-    return ret;
-}
-
-GAIAGEO_DECLARE int
-gaiaGeomCollPreparedCovers (void *p_cache, gaiaGeomCollPtr geom1,
-			    unsigned char *blob1, int size1,
-			    gaiaGeomCollPtr geom2, unsigned char *blob2,
-			    int size2)
-{
-/* checks if geom1 "spatially covers" geom2 */
-    int ret;
-    struct splite_internal_cache *cache =
-	(struct splite_internal_cache *) p_cache;
-    GEOSPreparedGeometry *gPrep;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    gaiaGeomCollPtr geom;
-    if (!geom1 || !geom2)
-	return -1;
-
-/* quick check based on MBRs comparison */
-    if (!splite_mbr_contains (geom1, geom2))
-	return 0;
-
-/* handling the internal GEOS cache */
-    if (evalGeosCache
-	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
-      {
-	  g2 = gaiaToGeos (geom);
-	  if (geom == geom2)
-	      ret = GEOSPreparedCovers (gPrep, g2);
-	  else
-	      ret = GEOSPreparedCoveredBy (gPrep, g2);
-	  GEOSGeom_destroy (g2);
-	  if (ret == 2)
-	      return -1;
-	  return ret;
-      }
-
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSCovers (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (ret == 2)
-	return -1;
-    return ret;
-}
-
-GAIAGEO_DECLARE int
-gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/* checks if geom1 is "spatially covered by" geom2 */
-    int ret;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    if (!geom1 || !geom2)
-	return -1;
-
-/* quick check based on MBRs comparison */
-    if (!splite_mbr_within (geom1, geom2))
-	return 0;
-
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSCoveredBy (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (ret == 2)
-	return -1;
-    return ret;
-}
-
-GAIAGEO_DECLARE int
-gaiaGeomCollPreparedCoveredBy (void *p_cache, gaiaGeomCollPtr geom1,
-			       unsigned char *blob1, int size1,
-			       gaiaGeomCollPtr geom2, unsigned char *blob2,
-			       int size2)
-{
-/* checks if geom1 is "spatially covered by" geom2 */
-    int ret;
-    struct splite_internal_cache *cache =
-	(struct splite_internal_cache *) p_cache;
-    GEOSPreparedGeometry *gPrep;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    gaiaGeomCollPtr geom;
-    if (!geom1 || !geom2)
-	return -1;
-
-/* quick check based on MBRs comparison */
-    if (!splite_mbr_within (geom1, geom2))
-	return 0;
-
-/* handling the internal GEOS cache */
-    if (evalGeosCache
-	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
-      {
-	  g2 = gaiaToGeos (geom);
-	  if (geom == geom2)
-	      ret = GEOSPreparedCoveredBy (gPrep, g2);
-	  else
-	      ret = GEOSPreparedCovers (gPrep, g2);
-	  GEOSGeom_destroy (g2);
-	  if (ret == 2)
-	      return -1;
-	  return ret;
-      }
-
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    ret = GEOSCoveredBy (g1, g2);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (ret == 2)
-	return -1;
-    return ret;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaLineInterpolatePoint (gaiaGeomCollPtr geom, double fraction)
-{
-/*
- * attempts to intepolate a point on line at dist "fraction" 
- *
- * the fraction is expressed into the range from 0.0 to 1.0
- */
-    int pts = 0;
-    int lns = 0;
-    int pgs = 0;
-    gaiaGeomCollPtr result;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    GEOSGeometry *g;
-    GEOSGeometry *g_pt;
-    double length;
-    double projection;
-    if (!geom)
-	return NULL;
-
-/* checking if a single Linestring has been passed */
-    pt = geom->FirstPoint;
-    while (pt)
-      {
-	  pts++;
-	  pt = pt->Next;
-      }
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  lns++;
-	  ln = ln->Next;
-      }
-    pg = geom->FirstPolygon;
-    while (pg)
-      {
-	  pgs++;
-	  pg = pg->Next;
-      }
-    if (pts == 0 && lns == 1 && pgs == 0)
-	;
-    else
-	return NULL;
-
-    g = gaiaToGeos (geom);
-    if (GEOSLength (g, &length))
-      {
-	  /* transforming fraction to length */
-	  if (fraction < 0.0)
-	      fraction = 0.0;
-	  if (fraction > 1.0)
-	      fraction = 1.0;
-	  projection = length * fraction;
-      }
-    else
-      {
-	  GEOSGeom_destroy (g);
-	  return NULL;
-      }
-    g_pt = GEOSInterpolate (g, projection);
-    GEOSGeom_destroy (g);
-    if (!g_pt)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g_pt);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g_pt);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g_pt);
-    else
-	result = gaiaFromGeos_XY (g_pt);
-    GEOSGeom_destroy (g_pt);
-    if (result == NULL)
-	return NULL;
-    result->Srid = geom->Srid;
-    return result;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr geom, double distance)
-{
-/*
- * attempts to intepolate a set of points on line at regular distances 
- */
-    int pts = 0;
-    int lns = 0;
-    int pgs = 0;
-    gaiaGeomCollPtr result;
-    gaiaGeomCollPtr xpt;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    GEOSGeometry *g;
-    GEOSGeometry *g_pt;
-    double length;
-    double current_length = 0.0;
-    if (!geom)
-	return NULL;
-    if (distance <= 0.0)
-	return NULL;
-
-/* checking if a single Linestring has been passed */
-    pt = geom->FirstPoint;
-    while (pt)
-      {
-	  pts++;
-	  pt = pt->Next;
-      }
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  lns++;
-	  ln = ln->Next;
-      }
-    pg = geom->FirstPolygon;
-    while (pg)
-      {
-	  pgs++;
-	  pg = pg->Next;
-      }
-    if (pts == 0 && lns == 1 && pgs == 0)
-	;
-    else
-	return NULL;
-
-    g = gaiaToGeos (geom);
-    if (GEOSLength (g, &length))
-      {
-	  if (length <= distance)
-	    {
-		/* the line is too short to apply interpolation */
-		GEOSGeom_destroy (g);
-		return NULL;
-	    }
-      }
-    else
-      {
-	  GEOSGeom_destroy (g);
-	  return NULL;
-      }
-
-/* creating the MultiPoint [always supporting M] */
-    if (geom->DimensionModel == GAIA_XY_Z
-	|| geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaAllocGeomCollXYZM ();
-    else
-	result = gaiaAllocGeomCollXYM ();
-    if (result == NULL)
-      {
-	  GEOSGeom_destroy (g);
-	  return NULL;
-      }
-
-    while (1)
-      {
-	  /* increasing the current distance */
-	  current_length += distance;
-	  if (current_length >= length)
-	      break;
-	  /* interpolating a point */
-	  g_pt = GEOSInterpolate (g, current_length);
-	  if (!g_pt)
-	      goto error;
-	  if (geom->DimensionModel == GAIA_XY_Z)
-	    {
-		xpt = gaiaFromGeos_XYZ (g_pt);
-		if (!xpt)
-		    goto error;
-		pt = xpt->FirstPoint;
-		if (!pt)
-		    goto error;
-		gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z,
-					    current_length);
-	    }
-	  else if (geom->DimensionModel == GAIA_XY_M)
-	    {
-		xpt = gaiaFromGeos_XYM (g_pt);
-		if (!xpt)
-		    goto error;
-		pt = xpt->FirstPoint;
-		if (!pt)
-		    goto error;
-		gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y,
-					   current_length);
-	    }
-	  else if (geom->DimensionModel == GAIA_XY_Z_M)
-	    {
-		xpt = gaiaFromGeos_XYZM (g_pt);
-		if (!xpt)
-		    goto error;
-		pt = xpt->FirstPoint;
-		if (!pt)
-		    goto error;
-		gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z,
-					    current_length);
-	    }
-	  else
-	    {
-		xpt = gaiaFromGeos_XY (g_pt);
-		if (!xpt)
-		    goto error;
-		pt = xpt->FirstPoint;
-		if (!pt)
-		    goto error;
-		gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y,
-					   current_length);
-	    }
-	  GEOSGeom_destroy (g_pt);
-	  gaiaFreeGeomColl (xpt);
-      }
-    GEOSGeom_destroy (g);
-    result->Srid = geom->Srid;
-    result->DeclaredType = GAIA_MULTIPOINT;
-    return result;
-
-  error:
-    if (g_pt)
-	GEOSGeom_destroy (g_pt);
-    GEOSGeom_destroy (g);
-    gaiaFreeGeomColl (result);
-    return NULL;
-}
-
-GAIAGEO_DECLARE double
-gaiaLineLocatePoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/* 
- * attempts to compute the location of the closest point on LineString 
- * to the given Point, as a fraction of total 2d line length 
- *
- * the fraction is expressed into the range from 0.0 to 1.0
- */
-    int pts1 = 0;
-    int lns1 = 0;
-    int pgs1 = 0;
-    int pts2 = 0;
-    int lns2 = 0;
-    int pgs2 = 0;
-    double length;
-    double projection;
-    double result;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    if (!geom1 || !geom2)
-	return -1.0;
-
-/* checking if a single Linestring has been passed */
-    pt = geom1->FirstPoint;
-    while (pt)
-      {
-	  pts1++;
-	  pt = pt->Next;
-      }
-    ln = geom1->FirstLinestring;
-    while (ln)
-      {
-	  lns1++;
-	  ln = ln->Next;
-      }
-    pg = geom1->FirstPolygon;
-    while (pg)
-      {
-	  pgs1++;
-	  pg = pg->Next;
-      }
-    if (pts1 == 0 && lns1 >= 1 && pgs1 == 0)
-	;
-    else
-	return -1.0;
-
-/* checking if a single Point has been passed */
-    pt = geom2->FirstPoint;
-    while (pt)
-      {
-	  pts2++;
-	  pt = pt->Next;
-      }
-    ln = geom2->FirstLinestring;
-    while (ln)
-      {
-	  lns2++;
-	  ln = ln->Next;
-      }
-    pg = geom2->FirstPolygon;
-    while (pg)
-      {
-	  pgs2++;
-	  pg = pg->Next;
-      }
-    if (pts2 == 1 && lns2 == 0 && pgs2 == 0)
-	;
-    else
-	return -1.0;
-
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    projection = GEOSProject (g1, g2);
-    if (GEOSLength (g1, &length))
-      {
-	  /* normalizing as a fraction between 0.0 and 1.0 */
-	  result = projection / length;
-      }
-    else
-	result = -1.0;
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    return result;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaLineSubstring (gaiaGeomCollPtr geom, double start_fraction,
-		   double end_fraction)
-{
-/* 
- * attempts to build a new Linestring being a substring of the input one starting 
- * and ending at the given fractions of total 2d length 
- */
-    int pts = 0;
-    int lns = 0;
-    int pgs = 0;
-    gaiaGeomCollPtr result;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaLinestringPtr out;
-    gaiaPolygonPtr pg;
-    GEOSGeometry *g;
-    GEOSGeometry *g_start;
-    GEOSGeometry *g_end;
-    GEOSCoordSequence *cs;
-    const GEOSCoordSequence *in_cs;
-    GEOSGeometry *segm;
-    double length;
-    double total = 0.0;
-    double start;
-    double end;
-    int iv;
-    int i_start = -1;
-    int i_end = -1;
-    int points;
-    double x;
-    double y;
-    double z;
-    double m;
-    unsigned int dims;
-    if (!geom)
-	return NULL;
-
-/* checking if a single Linestring has been passed */
-    pt = geom->FirstPoint;
-    while (pt)
-      {
-	  pts++;
-	  pt = pt->Next;
-      }
-    ln = geom->FirstLinestring;
-    while (ln)
-      {
-	  lns++;
-	  ln = ln->Next;
-      }
-    pg = geom->FirstPolygon;
-    while (pg)
-      {
-	  pgs++;
-	  pg = pg->Next;
-      }
-    if (pts == 0 && lns == 1 && pgs == 0)
-	;
-    else
-	return NULL;
-
-    if (start_fraction < 0.0)
-	start_fraction = 0.0;
-    if (start_fraction > 1.0)
-	start_fraction = 1.0;
-    if (end_fraction < 0.0)
-	end_fraction = 0.0;
-    if (end_fraction > 1.0)
-	end_fraction = 1.0;
-    if (start_fraction >= end_fraction)
-	return NULL;
-    g = gaiaToGeos (geom);
-    if (GEOSLength (g, &length))
-      {
-	  start = length * start_fraction;
-	  end = length * end_fraction;
-      }
-    else
-      {
-	  GEOSGeom_destroy (g);
-	  return NULL;
-      }
-    g_start = GEOSInterpolate (g, start);
-    g_end = GEOSInterpolate (g, end);
-    GEOSGeom_destroy (g);
-    if (!g_start || !g_end)
-	return NULL;
-
-/* identifying first and last valid vertex */
-    ln = geom->FirstLinestring;
-    for (iv = 0; iv < ln->Points; iv++)
-      {
-
-	  double x0;
-	  double y0;
-	  switch (ln->DimensionModel)
-	    {
-	    case GAIA_XY_Z:
-		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		break;
-	    case GAIA_XY_M:
-		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		break;
-	    case GAIA_XY_Z_M:
-		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		break;
-	    default:
-		gaiaGetPoint (ln->Coords, iv, &x, &y);
-		break;
-	    };
-
-	  if (iv > 0)
-	    {
-		cs = GEOSCoordSeq_create (2, 2);
-		GEOSCoordSeq_setX (cs, 0, x0);
-		GEOSCoordSeq_setY (cs, 0, y0);
-		GEOSCoordSeq_setX (cs, 1, x);
-		GEOSCoordSeq_setY (cs, 1, y);
-		segm = GEOSGeom_createLineString (cs);
-		GEOSLength (segm, &length);
-		total += length;
-		GEOSGeom_destroy (segm);
-		if (total > start && i_start < 0)
-		    i_start = iv;
-		if (total < end)
-		    i_end = iv;
-	    }
-	  x0 = x;
-	  y0 = y;
-      }
-    if (i_start < 0 || i_end < 0)
-      {
-	  i_start = -1;
-	  i_end = -1;
-	  points = 2;
-      }
-    else
-	points = i_end - i_start + 3;
-
-/* creating the output geometry */
-    switch (ln->DimensionModel)
-      {
-      case GAIA_XY_Z:
-	  result = gaiaAllocGeomCollXYZ ();
-	  break;
-      case GAIA_XY_M:
-	  result = gaiaAllocGeomCollXYM ();
-	  break;
-      case GAIA_XY_Z_M:
-	  result = gaiaAllocGeomCollXYZM ();
-	  break;
-      default:
-	  result = gaiaAllocGeomColl ();
-	  break;
-      };
-    result->Srid = geom->Srid;
-    out = gaiaAddLinestringToGeomColl (result, points);
-
-/* start vertex */
-    points = 0;
-    in_cs = GEOSGeom_getCoordSeq (g_start);
-    GEOSCoordSeq_getDimensions (in_cs, &dims);
-    if (dims == 3)
-      {
-	  GEOSCoordSeq_getX (in_cs, 0, &x);
-	  GEOSCoordSeq_getY (in_cs, 0, &y);
-	  GEOSCoordSeq_getZ (in_cs, 0, &z);
-	  m = 0.0;
-      }
-    else
-      {
-	  GEOSCoordSeq_getX (in_cs, 0, &x);
-	  GEOSCoordSeq_getY (in_cs, 0, &y);
-	  z = 0.0;
-	  m = 0.0;
-      }
-    GEOSGeom_destroy (g_start);
-    switch (out->DimensionModel)
-      {
-      case GAIA_XY_Z:
-	  gaiaSetPointXYZ (out->Coords, points, x, y, z);
-	  break;
-      case GAIA_XY_M:
-	  gaiaSetPointXYM (out->Coords, points, x, y, 0.0);
-	  break;
-      case GAIA_XY_Z_M:
-	  gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0);
-	  break;
-      default:
-	  gaiaSetPoint (out->Coords, points, x, y);
-	  break;
-      };
-    points++;
-
-    if (i_start < 0 || i_end < 0)
-	;
-    else
-      {
-	  for (iv = i_start; iv <= i_end; iv++)
-	    {
-		z = 0.0;
-		m = 0.0;
-		switch (ln->DimensionModel)
-		  {
-		  case GAIA_XY_Z:
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      break;
-		  case GAIA_XY_M:
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      break;
-		  case GAIA_XY_Z_M:
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      break;
-		  default:
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      break;
-		  };
-		switch (out->DimensionModel)
-		  {
-		  case GAIA_XY_Z:
-		      gaiaSetPointXYZ (out->Coords, points, x, y, z);
-		      break;
-		  case GAIA_XY_M:
-		      gaiaSetPointXYM (out->Coords, points, x, y, 0.0);
-		      break;
-		  case GAIA_XY_Z_M:
-		      gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0);
-		      break;
-		  default:
-		      gaiaSetPoint (out->Coords, points, x, y);
-		      break;
-		  };
-		points++;
-	    }
-      }
-
-/* end vertex */
-    in_cs = GEOSGeom_getCoordSeq (g_end);
-    GEOSCoordSeq_getDimensions (in_cs, &dims);
-    if (dims == 3)
-      {
-	  GEOSCoordSeq_getX (in_cs, 0, &x);
-	  GEOSCoordSeq_getY (in_cs, 0, &y);
-	  GEOSCoordSeq_getZ (in_cs, 0, &z);
-	  m = 0.0;
-      }
-    else
-      {
-	  GEOSCoordSeq_getX (in_cs, 0, &x);
-	  GEOSCoordSeq_getY (in_cs, 0, &y);
-	  z = 0.0;
-	  m = 0.0;
-      }
-    GEOSGeom_destroy (g_end);
-    switch (out->DimensionModel)
-      {
-      case GAIA_XY_Z:
-	  gaiaSetPointXYZ (out->Coords, points, x, y, z);
-	  break;
-      case GAIA_XY_M:
-	  gaiaSetPointXYM (out->Coords, points, x, y, 0.0);
-	  break;
-      case GAIA_XY_Z_M:
-	  gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0);
-	  break;
-      default:
-	  gaiaSetPoint (out->Coords, points, x, y);
-	  break;
-      };
-    return result;
-}
-
-static GEOSGeometry *
-buildGeosPoints (const gaiaGeomCollPtr gaia)
-{
-/* converting a GAIA Geometry into a GEOS Geometry of POINTS */
-    int pts = 0;
-    unsigned int dims;
-    int iv;
-    int ib;
-    int nItem;
-    double x;
-    double y;
-    double z;
-    double m;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    gaiaRingPtr rng;
-    GEOSGeometry *geos;
-    GEOSGeometry *geos_item;
-    GEOSGeometry **geos_coll;
-    GEOSCoordSequence *cs;
-    if (!gaia)
-	return NULL;
-    pt = gaia->FirstPoint;
-    while (pt)
-      {
-	  /* counting how many POINTs are there */
-	  pts++;
-	  pt = pt->Next;
-      }
-    ln = gaia->FirstLinestring;
-    while (ln)
-      {
-	  /* counting how many POINTs are there */
-	  pts += ln->Points;
-	  ln = ln->Next;
-      }
-    pg = gaia->FirstPolygon;
-    while (pg)
-      {
-	  /* counting how many POINTs are there */
-	  rng = pg->Exterior;
-	  pts += rng->Points - 1;	/* exterior ring */
-	  for (ib = 0; ib < pg->NumInteriors; ib++)
-	    {
-		/* interior ring */
-		rng = pg->Interiors + ib;
-		pts += rng->Points - 1;
-	    }
-	  pg = pg->Next;
-      }
-    if (pts == 0)
-	return NULL;
-    switch (gaia->DimensionModel)
-      {
-      case GAIA_XY_Z:
-      case GAIA_XY_Z_M:
-	  dims = 3;
-	  break;
-      default:
-	  dims = 2;
-	  break;
-      };
-    nItem = 0;
-    geos_coll = malloc (sizeof (GEOSGeometry *) * (pts));
-    pt = gaia->FirstPoint;
-    while (pt)
-      {
-	  cs = GEOSCoordSeq_create (1, dims);
-	  switch (pt->DimensionModel)
-	    {
-	    case GAIA_XY_Z:
-	    case GAIA_XY_Z_M:
-		GEOSCoordSeq_setX (cs, 0, pt->X);
-		GEOSCoordSeq_setY (cs, 0, pt->Y);
-		GEOSCoordSeq_setZ (cs, 0, pt->Z);
-		break;
-	    default:
-		GEOSCoordSeq_setX (cs, 0, pt->X);
-		GEOSCoordSeq_setY (cs, 0, pt->Y);
-		break;
-	    };
-	  geos_item = GEOSGeom_createPoint (cs);
-	  *(geos_coll + nItem++) = geos_item;
-	  pt = pt->Next;
-      }
-    ln = gaia->FirstLinestring;
-    while (ln)
-      {
-	  for (iv = 0; iv < ln->Points; iv++)
-	    {
-		z = 0.0;
-		m = 0.0;
-		switch (ln->DimensionModel)
-		  {
-		  case GAIA_XY_Z:
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      break;
-		  case GAIA_XY_M:
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      break;
-		  case GAIA_XY_Z_M:
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      break;
-		  default:
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      break;
-		  };
-		cs = GEOSCoordSeq_create (1, dims);
-		if (dims == 3)
-		  {
-		      GEOSCoordSeq_setX (cs, 0, x);
-		      GEOSCoordSeq_setY (cs, 0, y);
-		      GEOSCoordSeq_setZ (cs, 0, z);
-		  }
-		else
-		  {
-		      GEOSCoordSeq_setX (cs, 0, x);
-		      GEOSCoordSeq_setY (cs, 0, y);
-		  }
-		geos_item = GEOSGeom_createPoint (cs);
-		*(geos_coll + nItem++) = geos_item;
-	    }
-	  ln = ln->Next;
-      }
-    pg = gaia->FirstPolygon;
-    while (pg)
-      {
-	  rng = pg->Exterior;
-	  for (iv = 1; iv < rng->Points; iv++)
-	    {
-		/* exterior ring */
-		z = 0.0;
-		m = 0.0;
-		switch (rng->DimensionModel)
-		  {
-		  case GAIA_XY_Z:
-		      gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
-		      break;
-		  case GAIA_XY_M:
-		      gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
-		      break;
-		  case GAIA_XY_Z_M:
-		      gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
-		      break;
-		  default:
-		      gaiaGetPoint (rng->Coords, iv, &x, &y);
-		      break;
-		  };
-		cs = GEOSCoordSeq_create (1, dims);
-		if (dims == 3)
-		  {
-		      GEOSCoordSeq_setX (cs, 0, x);
-		      GEOSCoordSeq_setY (cs, 0, y);
-		      GEOSCoordSeq_setZ (cs, 0, z);
-		  }
-		else
-		  {
-		      GEOSCoordSeq_setX (cs, 0, x);
-		      GEOSCoordSeq_setY (cs, 0, y);
-		  }
-		geos_item = GEOSGeom_createPoint (cs);
-		*(geos_coll + nItem++) = geos_item;
-	    }
-	  for (ib = 0; ib < pg->NumInteriors; ib++)
-	    {
-		/* interior ring */
-		rng = pg->Interiors + ib;
-		for (iv = 1; iv < rng->Points; iv++)
-		  {
-		      /* exterior ring */
-		      z = 0.0;
-		      m = 0.0;
-		      switch (rng->DimensionModel)
-			{
-			case GAIA_XY_Z:
-			    gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
-			    break;
-			case GAIA_XY_M:
-			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
-			    break;
-			case GAIA_XY_Z_M:
-			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
-			    break;
-			default:
-			    gaiaGetPoint (rng->Coords, iv, &x, &y);
-			    break;
-			};
-		      cs = GEOSCoordSeq_create (1, dims);
-		      if (dims == 3)
-			{
-			    GEOSCoordSeq_setX (cs, 0, x);
-			    GEOSCoordSeq_setY (cs, 0, y);
-			    GEOSCoordSeq_setZ (cs, 0, z);
-			}
-		      else
-			{
-			    GEOSCoordSeq_setX (cs, 0, x);
-			    GEOSCoordSeq_setY (cs, 0, y);
-			}
-		      geos_item = GEOSGeom_createPoint (cs);
-		      *(geos_coll + nItem++) = geos_item;
-		  }
-	    }
-	  pg = pg->Next;
-      }
-    geos = GEOSGeom_createCollection (GEOS_MULTIPOINT, geos_coll, pts);
-    free (geos_coll);
-    GEOSSetSRID (geos, gaia->Srid);
-    return geos;
-}
-
-static GEOSGeometry *
-buildGeosSegments (const gaiaGeomCollPtr gaia)
-{
-/* converting a GAIA Geometry into a GEOS Geometry of SEGMENTS */
-    int segms = 0;
-    unsigned int dims;
-    int iv;
-    int ib;
-    int nItem;
-    double x;
-    double y;
-    double z;
-    double m;
-    double x0;
-    double y0;
-    double z0;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    gaiaRingPtr rng;
-    GEOSGeometry *geos;
-    GEOSGeometry *geos_item;
-    GEOSGeometry **geos_coll;
-    GEOSCoordSequence *cs;
-    if (!gaia)
-	return NULL;
-    ln = gaia->FirstLinestring;
-    while (ln)
-      {
-	  /* counting how many SEGMENTs are there */
-	  segms += ln->Points - 1;
-	  ln = ln->Next;
-      }
-    pg = gaia->FirstPolygon;
-    while (pg)
-      {
-	  /* counting how many SEGMENTs are there */
-	  rng = pg->Exterior;
-	  segms += rng->Points - 1;	/* exterior ring */
-	  for (ib = 0; ib < pg->NumInteriors; ib++)
-	    {
-		/* interior ring */
-		rng = pg->Interiors + ib;
-		segms += rng->Points - 1;
-	    }
-	  pg = pg->Next;
-      }
-    if (segms == 0)
-	return NULL;
-    switch (gaia->DimensionModel)
-      {
-      case GAIA_XY_Z:
-      case GAIA_XY_Z_M:
-	  dims = 3;
-	  break;
-      default:
-	  dims = 2;
-	  break;
-      };
-    nItem = 0;
-    geos_coll = malloc (sizeof (GEOSGeometry *) * (segms));
-    ln = gaia->FirstLinestring;
-    while (ln)
-      {
-	  for (iv = 0; iv < ln->Points; iv++)
-	    {
-		z = 0.0;
-		m = 0.0;
-		switch (ln->DimensionModel)
-		  {
-		  case GAIA_XY_Z:
-		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-		      break;
-		  case GAIA_XY_M:
-		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-		      break;
-		  case GAIA_XY_Z_M:
-		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-		      break;
-		  default:
-		      gaiaGetPoint (ln->Coords, iv, &x, &y);
-		      break;
-		  };
-		if (iv > 0)
-		  {
-		      cs = GEOSCoordSeq_create (2, dims);
-		      if (dims == 3)
-			{
-			    GEOSCoordSeq_setX (cs, 0, x0);
-			    GEOSCoordSeq_setY (cs, 0, y0);
-			    GEOSCoordSeq_setZ (cs, 0, z0);
-			    GEOSCoordSeq_setX (cs, 1, x);
-			    GEOSCoordSeq_setY (cs, 1, y);
-			    GEOSCoordSeq_setZ (cs, 1, z);
-			}
-		      else
-			{
-			    GEOSCoordSeq_setX (cs, 0, x0);
-			    GEOSCoordSeq_setY (cs, 0, y0);
-			    GEOSCoordSeq_setX (cs, 1, x);
-			    GEOSCoordSeq_setY (cs, 1, y);
-			}
-		      geos_item = GEOSGeom_createLineString (cs);
-		      *(geos_coll + nItem++) = geos_item;
-		  }
-		x0 = x;
-		y0 = y;
-		z0 = z;
-	    }
-	  ln = ln->Next;
-      }
-    pg = gaia->FirstPolygon;
-    while (pg)
-      {
-	  rng = pg->Exterior;
-	  for (iv = 0; iv < rng->Points; iv++)
-	    {
-		/* exterior ring */
-		z = 0.0;
-		m = 0.0;
-		switch (rng->DimensionModel)
-		  {
-		  case GAIA_XY_Z:
-		      gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
-		      break;
-		  case GAIA_XY_M:
-		      gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
-		      break;
-		  case GAIA_XY_Z_M:
-		      gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
-		      break;
-		  default:
-		      gaiaGetPoint (rng->Coords, iv, &x, &y);
-		      break;
-		  };
-		if (iv > 0)
-		  {
-		      cs = GEOSCoordSeq_create (2, dims);
-		      if (dims == 3)
-			{
-			    GEOSCoordSeq_setX (cs, 0, x0);
-			    GEOSCoordSeq_setY (cs, 0, y0);
-			    GEOSCoordSeq_setZ (cs, 0, z0);
-			    GEOSCoordSeq_setX (cs, 1, x);
-			    GEOSCoordSeq_setY (cs, 1, y);
-			    GEOSCoordSeq_setZ (cs, 1, z);
-			}
-		      else
-			{
-			    GEOSCoordSeq_setX (cs, 0, x0);
-			    GEOSCoordSeq_setY (cs, 0, y0);
-			    GEOSCoordSeq_setX (cs, 1, x);
-			    GEOSCoordSeq_setY (cs, 1, y);
-			}
-		      geos_item = GEOSGeom_createLineString (cs);
-		      *(geos_coll + nItem++) = geos_item;
-		  }
-		x0 = x;
-		y0 = y;
-		z0 = z;
-	    }
-	  for (ib = 0; ib < pg->NumInteriors; ib++)
-	    {
-		/* interior ring */
-		rng = pg->Interiors + ib;
-		for (iv = 0; iv < rng->Points; iv++)
-		  {
-		      /* exterior ring */
-		      z = 0.0;
-		      m = 0.0;
-		      switch (rng->DimensionModel)
-			{
-			case GAIA_XY_Z:
-			    gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
-			    break;
-			case GAIA_XY_M:
-			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
-			    break;
-			case GAIA_XY_Z_M:
-			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
-			    break;
-			default:
-			    gaiaGetPoint (rng->Coords, iv, &x, &y);
-			    break;
-			};
-		      if (iv > 0)
-			{
-			    cs = GEOSCoordSeq_create (2, dims);
-			    if (dims == 3)
-			      {
-				  GEOSCoordSeq_setX (cs, 0, x0);
-				  GEOSCoordSeq_setY (cs, 0, y0);
-				  GEOSCoordSeq_setZ (cs, 0, z0);
-				  GEOSCoordSeq_setX (cs, 1, x);
-				  GEOSCoordSeq_setY (cs, 1, y);
-				  GEOSCoordSeq_setZ (cs, 1, z);
-			      }
-			    else
-			      {
-				  GEOSCoordSeq_setX (cs, 0, x0);
-				  GEOSCoordSeq_setY (cs, 0, y0);
-				  GEOSCoordSeq_setX (cs, 1, x);
-				  GEOSCoordSeq_setY (cs, 1, y);
-			      }
-			    geos_item = GEOSGeom_createLineString (cs);
-			    *(geos_coll + nItem++) = geos_item;
-			}
-		      x0 = x;
-		      y0 = y;
-		      z0 = z;
-		  }
-	    }
-	  pg = pg->Next;
-      }
-    geos = GEOSGeom_createCollection (GEOS_MULTILINESTRING, geos_coll, segms);
-    free (geos_coll);
-    GEOSSetSRID (geos, gaia->Srid);
-    return geos;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/* attempts to compute the the shortest line between two geometries */
-    GEOSGeometry *g1_points;
-    GEOSGeometry *g1_segments;
-    const GEOSGeometry *g1_item;
-    GEOSGeometry *g2_points;
-    GEOSGeometry *g2_segments;
-    const GEOSGeometry *g2_item;
-    const GEOSCoordSequence *cs;
-    GEOSGeometry *g_pt;
-    gaiaGeomCollPtr result;
-    gaiaLinestringPtr ln;
-    int nItems1;
-    int nItems2;
-    int it1;
-    int it2;
-    unsigned int dims;
-    double x_ini;
-    double y_ini;
-    double z_ini;
-    double x_fin;
-    double y_fin;
-    double z_fin;
-    double dist;
-    double min_dist = DBL_MAX;
-    double projection;
-    if (!geom1 || !geom2)
-	return NULL;
-
-    g1_points = buildGeosPoints (geom1);
-    g1_segments = buildGeosSegments (geom1);
-    g2_points = buildGeosPoints (geom2);
-    g2_segments = buildGeosSegments (geom2);
-
-    if (g1_points && g2_points)
-      {
-	  /* computing distances between POINTs */
-	  nItems1 = GEOSGetNumGeometries (g1_points);
-	  nItems2 = GEOSGetNumGeometries (g2_points);
-	  for (it1 = 0; it1 < nItems1; it1++)
-	    {
-		g1_item = GEOSGetGeometryN (g1_points, it1);
-		for (it2 = 0; it2 < nItems2; it2++)
-		  {
-		      g2_item = GEOSGetGeometryN (g2_points, it2);
-		      if (GEOSDistance (g1_item, g2_item, &dist))
-			{
-			    if (dist < min_dist)
-			      {
-				  /* saving min-dist points */
-				  min_dist = dist;
-				  cs = GEOSGeom_getCoordSeq (g1_item);
-				  GEOSCoordSeq_getDimensions (cs, &dims);
-				  if (dims == 3)
-				    {
-					GEOSCoordSeq_getX (cs, 0, &x_ini);
-					GEOSCoordSeq_getY (cs, 0, &y_ini);
-					GEOSCoordSeq_getZ (cs, 0, &z_ini);
-				    }
-				  else
-				    {
-					GEOSCoordSeq_getX (cs, 0, &x_ini);
-					GEOSCoordSeq_getY (cs, 0, &y_ini);
-					z_ini = 0.0;
-				    }
-				  cs = GEOSGeom_getCoordSeq (g2_item);
-				  GEOSCoordSeq_getDimensions (cs, &dims);
-				  if (dims == 3)
-				    {
-					GEOSCoordSeq_getX (cs, 0, &x_fin);
-					GEOSCoordSeq_getY (cs, 0, &y_fin);
-					GEOSCoordSeq_getZ (cs, 0, &z_fin);
-				    }
-				  else
-				    {
-					GEOSCoordSeq_getX (cs, 0, &x_fin);
-					GEOSCoordSeq_getY (cs, 0, &y_fin);
-					z_fin = 0.0;
-				    }
-			      }
-			}
-		  }
-	    }
-      }
-
-    if (g1_points && g2_segments)
-      {
-	  /* computing distances between POINTs (g1) and SEGMENTs (g2) */
-	  nItems1 = GEOSGetNumGeometries (g1_points);
-	  nItems2 = GEOSGetNumGeometries (g2_segments);
-	  for (it1 = 0; it1 < nItems1; it1++)
-	    {
-		g1_item = GEOSGetGeometryN (g1_points, it1);
-		for (it2 = 0; it2 < nItems2; it2++)
-		  {
-		      g2_item = GEOSGetGeometryN (g2_segments, it2);
-		      if (GEOSDistance (g1_item, g2_item, &dist))
-			{
-			    if (dist < min_dist)
-			      {
-				  /* saving min-dist points */
-				  projection = GEOSProject (g2_item, g1_item);
-				  g_pt = GEOSInterpolate (g2_item, projection);
-				  if (g_pt)
-				    {
-					min_dist = dist;
-					cs = GEOSGeom_getCoordSeq (g1_item);
-					GEOSCoordSeq_getDimensions (cs, &dims);
-					if (dims == 3)
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_ini);
-					      GEOSCoordSeq_getY (cs, 0, &y_ini);
-					      GEOSCoordSeq_getZ (cs, 0, &z_ini);
-					  }
-					else
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_ini);
-					      GEOSCoordSeq_getY (cs, 0, &y_ini);
-					      z_ini = 0.0;
-					  }
-					cs = GEOSGeom_getCoordSeq (g_pt);
-					GEOSCoordSeq_getDimensions (cs, &dims);
-					if (dims == 3)
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_fin);
-					      GEOSCoordSeq_getY (cs, 0, &y_fin);
-					      GEOSCoordSeq_getZ (cs, 0, &z_fin);
-					  }
-					else
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_fin);
-					      GEOSCoordSeq_getY (cs, 0, &y_fin);
-					      z_fin = 0.0;
-					  }
-					GEOSGeom_destroy (g_pt);
-				    }
-			      }
-			}
-		  }
-	    }
-      }
-
-    if (g1_segments && g2_points)
-      {
-	  /* computing distances between SEGMENTs (g1) and POINTs (g2) */
-	  nItems1 = GEOSGetNumGeometries (g1_segments);
-	  nItems2 = GEOSGetNumGeometries (g2_points);
-	  for (it1 = 0; it1 < nItems1; it1++)
-	    {
-		g1_item = GEOSGetGeometryN (g1_segments, it1);
-		for (it2 = 0; it2 < nItems2; it2++)
-		  {
-		      g2_item = GEOSGetGeometryN (g2_points, it2);
-		      if (GEOSDistance (g1_item, g2_item, &dist))
-			{
-			    if (dist < min_dist)
-			      {
-				  /* saving min-dist points */
-				  projection = GEOSProject (g1_item, g2_item);
-				  g_pt = GEOSInterpolate (g1_item, projection);
-				  if (g_pt)
-				    {
-					min_dist = dist;
-					cs = GEOSGeom_getCoordSeq (g_pt);
-					GEOSCoordSeq_getDimensions (cs, &dims);
-					if (dims == 3)
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_ini);
-					      GEOSCoordSeq_getY (cs, 0, &y_ini);
-					      GEOSCoordSeq_getZ (cs, 0, &z_ini);
-					  }
-					else
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_ini);
-					      GEOSCoordSeq_getY (cs, 0, &y_ini);
-					      z_ini = 0.0;
-					  }
-					cs = GEOSGeom_getCoordSeq (g2_item);
-					GEOSCoordSeq_getDimensions (cs, &dims);
-					if (dims == 3)
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_fin);
-					      GEOSCoordSeq_getY (cs, 0, &y_fin);
-					      GEOSCoordSeq_getZ (cs, 0, &z_fin);
-					  }
-					else
-					  {
-					      GEOSCoordSeq_getX (cs, 0, &x_fin);
-					      GEOSCoordSeq_getY (cs, 0, &y_fin);
-					      z_fin = 0.0;
-					  }
-					GEOSGeom_destroy (g_pt);
-				    }
-			      }
-			}
-		  }
-	    }
-      }
-    if (g1_points)
-	GEOSGeom_destroy (g1_points);
-    if (g1_segments)
-	GEOSGeom_destroy (g1_segments);
-    if (g2_points)
-	GEOSGeom_destroy (g2_points);
-    if (g2_segments)
-	GEOSGeom_destroy (g2_segments);
-    if (min_dist == DBL_MAX || min_dist <= 0.0)
-	return NULL;
-
-/* building the shortest line */
-    switch (geom1->DimensionModel)
-      {
-      case GAIA_XY_Z:
-	  result = gaiaAllocGeomCollXYZ ();
-	  break;
-      case GAIA_XY_M:
-	  result = gaiaAllocGeomCollXYM ();
-	  break;
-      case GAIA_XY_Z_M:
-	  result = gaiaAllocGeomCollXYZM ();
-	  break;
-      default:
-	  result = gaiaAllocGeomColl ();
-	  break;
-      };
-    result->Srid = geom1->Srid;
-    ln = gaiaAddLinestringToGeomColl (result, 2);
-    switch (ln->DimensionModel)
-      {
-      case GAIA_XY_Z:
-	  gaiaSetPointXYZ (ln->Coords, 0, x_ini, y_ini, z_ini);
-	  gaiaSetPointXYZ (ln->Coords, 1, x_fin, y_fin, z_fin);
-	  break;
-      case GAIA_XY_M:
-	  gaiaSetPointXYM (ln->Coords, 0, x_ini, y_ini, 0.0);
-	  gaiaSetPointXYM (ln->Coords, 1, x_fin, y_fin, 0.0);
-	  break;
-      case GAIA_XY_Z_M:
-	  gaiaSetPointXYZM (ln->Coords, 0, x_ini, y_ini, z_ini, 0.0);
-	  gaiaSetPointXYZM (ln->Coords, 1, x_fin, y_fin, z_fin, 0.0);
-	  break;
-      default:
-	  gaiaSetPoint (ln->Coords, 0, x_ini, y_ini);
-	  gaiaSetPoint (ln->Coords, 1, x_fin, y_fin);
-	  break;
-      };
-    return result;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
-{
-/* attempts to "snap" geom1 on geom2 using the given tolerance */
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    GEOSGeometry *g3;
-    gaiaGeomCollPtr result;
-    if (!geom1 || !geom2)
-	return NULL;
-
-    g1 = gaiaToGeos (geom1);
-    g2 = gaiaToGeos (geom2);
-    g3 = GEOSSnap (g1, g2, tolerance);
-    GEOSGeom_destroy (g1);
-    GEOSGeom_destroy (g2);
-    if (!g3)
-	return NULL;
-    if (geom1->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g3);
-    else if (geom1->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g3);
-    else if (geom1->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g3);
-    else
-	result = gaiaFromGeos_XY (g3);
-    GEOSGeom_destroy (g3);
-    if (result == NULL)
-	return NULL;
-    result->Srid = geom1->Srid;
-    return result;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaLineMerge (gaiaGeomCollPtr geom)
-{
-/* attempts to reassemble lines from a collection of sparse fragments */
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    gaiaGeomCollPtr result;
-    if (!geom)
-	return NULL;
-    if (gaiaIsToxic (geom))
-	return NULL;
-
-    g1 = gaiaToGeos (geom);
-    g2 = GEOSLineMerge (g1);
-    GEOSGeom_destroy (g1);
-    if (!g2)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g2);
-    else
-	result = gaiaFromGeos_XY (g2);
-    GEOSGeom_destroy (g2);
-    if (result == NULL)
-	return NULL;
-    result->Srid = geom->Srid;
-    return result;
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaUnaryUnion (gaiaGeomCollPtr geom)
-{
-/* Unary Union (single Collection) */
-    GEOSGeometry *g1;
-    GEOSGeometry *g2;
-    gaiaGeomCollPtr result;
-    if (!geom)
-	return NULL;
-    if (gaiaIsToxic (geom))
-	return NULL;
-    g1 = gaiaToGeos (geom);
-    g2 = GEOSUnaryUnion (g1);
-    GEOSGeom_destroy (g1);
-    if (!g2)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g2);
-    else
-	result = gaiaFromGeos_XY (g2);
-    GEOSGeom_destroy (g2);
-    if (result == NULL)
-	return NULL;
-    result->Srid = geom->Srid;
-    return result;
-}
-
-static void
-rotateRingBeforeCut (gaiaLinestringPtr ln, gaiaPointPtr node)
-{
-/* rotating a Ring, so to ensure that Start/End points match the node */
-    int io = 0;
-    int iv;
-    int copy = 0;
-    int base_idx = -1;
-    double x;
-    double y;
-    double z;
-    double m;
-    gaiaLinestringPtr new_ln = NULL;
-
-    if (ln->DimensionModel == GAIA_XY_Z)
-	new_ln = gaiaAllocLinestringXYZ (ln->Points);
-    else if (ln->DimensionModel == GAIA_XY_M)
-	new_ln = gaiaAllocLinestringXYM (ln->Points);
-    else if (ln->DimensionModel == GAIA_XY_Z_M)
-	new_ln = gaiaAllocLinestringXYZM (ln->Points);
-    else
-	new_ln = gaiaAllocLinestring (ln->Points);
-
-/* first pass */
-    for (iv = 0; iv < ln->Points; iv++)
-      {
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-	    }
-	  else
-	    {
-		gaiaGetPoint (ln->Coords, iv, &x, &y);
-	    }
-	  if (!copy)		/* CAZZO */
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z
-		    || ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      if (node->X == x && node->Y == y && node->Z == z)
-			{
-			    base_idx = iv;
-			    copy = 1;
-			}
-		  }
-		else if (node->X == x && node->Y == y)
-		  {
-		      base_idx = iv;
-		      copy = 1;
-		  }
-	    }
-	  if (copy)
-	    {
-		/* copying points */
-		if (ln->DimensionModel == GAIA_XY_Z)
-		  {
-		      gaiaSetPointXYZ (new_ln->Coords, io, x, y, z);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_M)
-		  {
-		      gaiaSetPointXYM (new_ln->Coords, io, x, y, m);
-		  }
-		else if (ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m);
-		  }
-		else
-		  {
-		      gaiaSetPoint (new_ln->Coords, io, x, y);
-		  }
-		io++;
-	    }
-      }
-    if (base_idx <= 0)
-      {
-	  gaiaFreeLinestring (new_ln);
-	  return;
-      }
-
-/* second pass */
-    for (iv = 1; iv <= base_idx; iv++)
-      {
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-	    }
-	  else
-	    {
-		gaiaGetPoint (ln->Coords, iv, &x, &y);
-	    }
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaSetPointXYZ (new_ln->Coords, io, x, y, z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaSetPointXYM (new_ln->Coords, io, x, y, m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m);
-	    }
-	  else
-	    {
-		gaiaSetPoint (new_ln->Coords, io, x, y);
-	    }
-	  io++;
-      }
-
-/* copying back */
-    for (iv = 0; iv < new_ln->Points; iv++)
-      {
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaGetPointXYZ (new_ln->Coords, iv, &x, &y, &z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaGetPointXYM (new_ln->Coords, iv, &x, &y, &m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaGetPointXYZM (new_ln->Coords, iv, &x, &y, &z, &m);
-	    }
-	  else
-	    {
-		gaiaGetPoint (new_ln->Coords, iv, &x, &y);
-	    }
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaSetPointXYZ (ln->Coords, iv, x, y, z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaSetPointXYM (ln->Coords, iv, x, y, m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m);
-	    }
-	  else
-	    {
-		gaiaSetPoint (ln->Coords, iv, x, y);
-	    }
-      }
-    gaiaFreeLinestring (new_ln);
-}
-
-static void
-extractSubLine (gaiaGeomCollPtr result, gaiaLinestringPtr ln, int i_start,
-		int i_end)
-{
-/* extracting s SubLine */
-    int iv;
-    int io = 0;
-    int pts = i_end - i_start + 1;
-    gaiaLinestringPtr new_ln = NULL;
-    double x;
-    double y;
-    double z;
-    double m;
-
-    new_ln = gaiaAddLinestringToGeomColl (result, pts);
-
-    for (iv = i_start; iv <= i_end; iv++)
-      {
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-	    }
-	  else
-	    {
-		gaiaGetPoint (ln->Coords, iv, &x, &y);
-	    }
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaSetPointXYZ (new_ln->Coords, io, x, y, z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaSetPointXYM (new_ln->Coords, io, x, y, m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m);
-	    }
-	  else
-	    {
-		gaiaSetPoint (new_ln->Coords, io, x, y);
-	    }
-	  io++;
-      }
-}
-
-static void
-cutLineAtNodes (gaiaLinestringPtr ln, gaiaPointPtr pt_base,
-		gaiaGeomCollPtr result)
-{
-/* attempts to cut a single Line accordingly to given nodes */
-    int closed = 0;
-    int match = 0;
-    int iv;
-    int i_start;
-    double x;
-    double y;
-    double z;
-    double m;
-    gaiaPointPtr pt;
-    gaiaPointPtr node = NULL;
-
-    if (gaiaIsClosed (ln))
-	closed = 1;
-/* pre-check */
-    for (iv = 0; iv < ln->Points; iv++)
-      {
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-	    }
-	  else
-	    {
-		gaiaGetPoint (ln->Coords, iv, &x, &y);
-	    }
-	  pt = pt_base;
-	  while (pt)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z
-		    || ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      if (pt->X == x && pt->Y == y && pt->Z == z)
-			{
-			    node = pt;
-			    match++;
-			}
-		  }
-		else if (pt->X == x && pt->Y == y)
-		  {
-		      node = pt;
-		      match++;
-		  }
-		pt = pt->Next;
-	    }
-      }
-
-    if (closed && node)
-	rotateRingBeforeCut (ln, node);
-
-    i_start = 0;
-    for (iv = 1; iv < ln->Points - 1; iv++)
-      {
-	  /* identifying sub-linestrings */
-	  if (ln->DimensionModel == GAIA_XY_Z)
-	    {
-		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_M)
-	    {
-		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
-	    }
-	  else if (ln->DimensionModel == GAIA_XY_Z_M)
-	    {
-		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
-	    }
-	  else
-	    {
-		gaiaGetPoint (ln->Coords, iv, &x, &y);
-	    }
-	  match = 0;
-	  pt = pt_base;
-	  while (pt)
-	    {
-		if (ln->DimensionModel == GAIA_XY_Z
-		    || ln->DimensionModel == GAIA_XY_Z_M)
-		  {
-		      if (pt->X == x && pt->Y == y && pt->Z == z)
-			{
-			    match = 1;
-			    break;
-			}
-		  }
-		else if (pt->X == x && pt->Y == y)
-		  {
-		      match = 1;
-		      break;
-		  }
-		pt = pt->Next;
-	    }
-	  if (match)
-	    {
-		/* cutting the line */
-		extractSubLine (result, ln, i_start, iv);
-		i_start = iv;
-	    }
-      }
-    if (i_start != 0 && i_start != ln->Points - 1)
-      {
-	  /* extracting the last SubLine */
-	  extractSubLine (result, ln, i_start, ln->Points - 1);
-      }
-    else
-      {
-	  /* cloning the untouched Line */
-	  extractSubLine (result, ln, 0, ln->Points - 1);
-      }
-}
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
-{
-/* attempts to cut lines accordingly to nodes */
-    int pts1 = 0;
-    int lns1 = 0;
-    int pgs1 = 0;
-    int pts2 = 0;
-    int lns2 = 0;
-    int pgs2 = 0;
-    gaiaPointPtr pt;
-    gaiaLinestringPtr ln;
-    gaiaPolygonPtr pg;
-    gaiaGeomCollPtr result = NULL;
-
-    if (!geom1)
-	return NULL;
-    if (!geom2)
-	return NULL;
-
-/* both Geometryes should have identical Dimensions */
-    if (geom1->DimensionModel != geom2->DimensionModel)
-	return NULL;
-
-    pt = geom1->FirstPoint;
-    while (pt)
-      {
-	  pts1++;
-	  pt = pt->Next;
-      }
-    ln = geom1->FirstLinestring;
-    while (ln)
-      {
-	  lns1++;
-	  ln = ln->Next;
-      }
-    pg = geom1->FirstPolygon;
-    while (pg)
-      {
-	  pgs1++;
-	  pg = pg->Next;
-      }
-    pt = geom2->FirstPoint;
-    while (pt)
-      {
-	  pts2++;
-	  pt = pt->Next;
-      }
-    ln = geom2->FirstLinestring;
-    while (ln)
-      {
-	  lns2++;
-	  ln = ln->Next;
-      }
-    pg = geom2->FirstPolygon;
-    while (pg)
-      {
-	  pgs2++;
-	  pg = pg->Next;
-      }
-
-/* the first Geometry is expected to contain one or more Linestring(s) */
-    if (pts1 == 0 && lns1 > 0 && pgs1 == 0)
-	;
-    else
-	return NULL;
-/* the second Geometry is expected to contain one or more Point(s) */
-    if (pts2 > 0 && lns2 == 0 && pgs2 == 0)
-	;
-    else
-	return NULL;
-
-/* attempting to cut Lines accordingly to Nodes */
-    if (geom1->DimensionModel == GAIA_XY_Z)
-	result = gaiaAllocGeomCollXYZ ();
-    else if (geom1->DimensionModel == GAIA_XY_M)
-	result = gaiaAllocGeomCollXYM ();
-    else if (geom1->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaAllocGeomCollXYZM ();
-    else
-	result = gaiaAllocGeomColl ();
-    ln = geom1->FirstLinestring;
-    while (ln)
-      {
-	  cutLineAtNodes (ln, geom2->FirstPoint, result);
-	  ln = ln->Next;
-      }
-    if (result->FirstLinestring == NULL)
-      {
-	  gaiaFreeGeomColl (result);
-	  return NULL;
-      }
-    result->Srid = geom1->Srid;
-    return result;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSCovers_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret == 2)
+	return -1;
+    return ret;
 }
 
-#endif /* end GEOS advanced features */
-
-#ifdef GEOS_TRUNK		/* GEOS experimental features */
-
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance,
-			   int only_edges)
+GAIAGEO_DECLARE int
+gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
 {
-/* Delaunay Triangulation */
+/* checks if geom1 is "spatially covered by" geom2 */
+    int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
-    gaiaGeomCollPtr result;
-    if (!geom)
-	return NULL;
-    g1 = gaiaToGeos (geom);
-    g2 = GEOSDelaunayTriangulation (g1, tolerance, only_edges);
+    gaiaResetGeosMsg ();
+    if (!geom1 || !geom2)
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_within (geom1, geom2))
+	return 0;
+
+    g1 = gaiaToGeos (geom1);
+    g2 = gaiaToGeos (geom2);
+    ret = GEOSCoveredBy (g1, g2);
     GEOSGeom_destroy (g1);
-    if (!g2)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g2);
-    else
-	result = gaiaFromGeos_XY (g2);
     GEOSGeom_destroy (g2);
-    if (result == NULL)
-	return NULL;
-    result->Srid = geom->Srid;
-    if (only_edges)
-	result->DeclaredType = GAIA_MULTILINESTRING;
-    else
-	result->DeclaredType = GAIA_MULTIPOLYGON;
-    return result;
+    if (ret == 2)
+	return -1;
+    return ret;
 }
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size,
-		    double tolerance, int only_edges)
+GAIAGEO_DECLARE int
+gaiaGeomCollCoveredBy_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			 gaiaGeomCollPtr geom2)
 {
-/* Voronoj Diagram */
+/* checks if geom1 is "spatially covered by" geom2 */
+    int ret;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
-    gaiaGeomCollPtr result;
-    gaiaPolygonPtr pg;
-    int pgs = 0;
-    int errs = 0;
-    void *voronoj;
-    if (!geom)
-	return NULL;
-    g1 = gaiaToGeos (geom);
-    g2 = GEOSDelaunayTriangulation (g1, tolerance, 0);
-    GEOSGeom_destroy (g1);
-    if (!g2)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g2);
-    else
-	result = gaiaFromGeos_XY (g2);
-    GEOSGeom_destroy (g2);
-    if (result == NULL)
-	return NULL;
-    pg = result->FirstPolygon;
-    while (pg)
-      {
-	  /* counting how many triangles are in Delaunay */
-	  if (delaunay_triangle_check (pg))
-	      pgs++;
-	  else
-	      errs++;
-	  pg = pg->Next;
-      }
-    if (pgs == 0 || errs)
-      {
-	  gaiaFreeGeomColl (result);
-	  return NULL;
-      }
-
-/* building the Voronoj Diagram from Delaunay */
-    voronoj = voronoj_build (pgs, result->FirstPolygon, extra_frame_size);
-    gaiaFreeGeomColl (result);
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
 
-/* creating the Geometry representing Voronoj */
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaAllocGeomCollXYZ ();
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaAllocGeomCollXYM ();
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaAllocGeomCollXYZM ();
-    else
-	result = gaiaAllocGeomColl ();
-    result = voronoj_export (voronoj, result, only_edges);
-    voronoj_free (voronoj);
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_within (geom1, geom2))
+	return 0;
 
-    result->Srid = geom->Srid;
-    if (only_edges)
-	result->DeclaredType = GAIA_MULTILINESTRING;
-    else
-	result->DeclaredType = GAIA_MULTIPOLYGON;
-    return result;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSCoveredBy_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret == 2)
+	return -1;
+    return ret;
 }
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance,
-		 int allow_holes)
+GAIAGEO_DECLARE int
+gaiaGeomCollPreparedCoveredBy (const void *p_cache, gaiaGeomCollPtr geom1,
+			       unsigned char *blob1, int size1,
+			       gaiaGeomCollPtr geom2, unsigned char *blob2,
+			       int size2)
 {
-/* Concave Hull */
+/* checks if geom1 is "spatially covered by" geom2 */
+    int ret;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSPreparedGeometry *gPrep;
     GEOSGeometry *g1;
     GEOSGeometry *g2;
-    gaiaGeomCollPtr result;
-    gaiaGeomCollPtr concave_hull;
-    gaiaPolygonPtr pg;
-    int pgs = 0;
-    int errs = 0;
-    if (!geom)
-	return NULL;
-    g1 = gaiaToGeos (geom);
-    g2 = GEOSDelaunayTriangulation (g1, tolerance, 0);
-    GEOSGeom_destroy (g1);
-    if (!g2)
-	return NULL;
-    if (geom->DimensionModel == GAIA_XY_Z)
-	result = gaiaFromGeos_XYZ (g2);
-    else if (geom->DimensionModel == GAIA_XY_M)
-	result = gaiaFromGeos_XYM (g2);
-    else if (geom->DimensionModel == GAIA_XY_Z_M)
-	result = gaiaFromGeos_XYZM (g2);
-    else
-	result = gaiaFromGeos_XY (g2);
-    GEOSGeom_destroy (g2);
-    if (result == NULL)
-	return NULL;
-    pg = result->FirstPolygon;
-    while (pg)
+    GEOSContextHandle_t handle = NULL;
+    gaiaGeomCollPtr geom;
+    gaiaResetGeosMsg ();
+    if (cache == NULL)
+	return -1;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1;
+
+/* quick check based on MBRs comparison */
+    if (!splite_mbr_within (geom1, geom2))
+	return 0;
+
+/* handling the internal GEOS cache */
+    if (evalGeosCache
+	(cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom))
       {
-	  /* counting how many triangles are in Delaunay */
-	  if (delaunay_triangle_check (pg))
-	      pgs++;
+	  g2 = gaiaToGeos_r (cache, geom);
+	  if (geom == geom2)
+	      ret = GEOSPreparedCoveredBy_r (handle, gPrep, g2);
 	  else
-	      errs++;
-	  pg = pg->Next;
-      }
-    if (pgs == 0 || errs)
-      {
-	  gaiaFreeGeomColl (result);
-	  return NULL;
+	      ret = GEOSPreparedCovers_r (handle, gPrep, g2);
+	  GEOSGeom_destroy_r (handle, g2);
+	  if (ret == 2)
+	      return -1;
+	  return ret;
       }
 
-/* building the Concave Hull from Delaunay */
-    concave_hull =
-	concave_hull_build (result->FirstPolygon, geom->DimensionModel, factor,
-			    allow_holes);
-    gaiaFreeGeomColl (result);
-    if (!concave_hull)
-	return NULL;
-    result = concave_hull;
-
-    result->Srid = geom->Srid;
-    return result;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSCoveredBy_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret == 2)
+	return -1;
+    return ret;
 }
 
-#endif /* end GEOS experimental features */
-
 #endif /* end including GEOS */
diff --git a/src/gaiageo/gg_relations_ext.c b/src/gaiageo/gg_relations_ext.c
new file mode 100644
index 0000000..d38791a
--- /dev/null
+++ b/src/gaiageo/gg_relations_ext.c
@@ -0,0 +1,4405 @@
+/*
+
+ gg_relations_ext.c -- Gaia spatial relations [advanced]
+    
+ version 4.1, 2013 May 8
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2008-2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <float.h>
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#include "config-msvc.h"
+#else
+#include "config.h"
+#endif
+
+#ifndef OMIT_GEOS		/* including GEOS */
+#include <geos_c.h>
+#endif
+
+#include <spatialite_private.h>
+#include <spatialite/sqlite.h>
+
+#include <spatialite/gaiageo.h>
+
+#ifndef OMIT_GEOS		/* including GEOS */
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points,
+		 int left_right)
+{
+/*
+// builds a geometry that is the OffsetCurve of GEOM 
+// (which is expected to be of the LINESTRING type)
+//
+*/
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    int closed = 0;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+
+/* checking the input geometry for validity */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  /* counting how many POINTs are there */
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many LINESTRINGs are there */
+	  lns++;
+	  if (gaiaIsClosed (ln))
+	      closed++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many POLYGON are there */
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts > 0 || pgs > 0 || lns > 1 || closed > 0)
+	return NULL;
+
+/* all right: this one simply is a LINESTRING */
+    geom->DeclaredType = GAIA_LINESTRING;
+
+    g1 = gaiaToGeos (geom);
+    g2 = GEOSSingleSidedBuffer (g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0,
+				left_right);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM (g2);
+    else
+	geo = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaOffsetCurve_r (const void *p_cache, gaiaGeomCollPtr geom, double radius,
+		   int points, int left_right)
+{
+/*
+// builds a geometry that is the OffsetCurve of GEOM 
+// (which is expected to be of the LINESTRING type)
+//
+*/
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    int closed = 0;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+
+/* checking the input geometry for validity */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  /* counting how many POINTs are there */
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many LINESTRINGs are there */
+	  lns++;
+	  if (gaiaIsClosed (ln))
+	      closed++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many POLYGON are there */
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts > 0 || pgs > 0 || lns > 1 || closed > 0)
+	return NULL;
+
+/* all right: this one simply is a LINESTRING */
+    geom->DeclaredType = GAIA_LINESTRING;
+
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSSingleSidedBuffer_r (handle, g1, radius, points,
+				  GEOSBUF_JOIN_ROUND, 5.0, left_right);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points,
+		       int left_right)
+{
+/*
+// builds a geometry that is the SingleSided BUFFER of GEOM 
+// (which is expected to be of the LINESTRING type)
+//
+*/
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSBufferParams *params = NULL;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    int closed = 0;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+
+/* checking the input geometry for validity */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  /* counting how many POINTs are there */
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many LINESTRINGs are there */
+	  lns++;
+	  if (gaiaIsClosed (ln))
+	      closed++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many POLYGON are there */
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts > 0 || pgs > 0 || lns > 1 || closed > 0)
+	return NULL;
+
+/* all right: this one simply is a LINESTRING */
+    geom->DeclaredType = GAIA_LINESTRING;
+
+    g1 = gaiaToGeos (geom);
+/* setting up Buffer params */
+    params = GEOSBufferParams_create ();
+    GEOSBufferParams_setJoinStyle (params, GEOSBUF_JOIN_ROUND);
+    GEOSBufferParams_setMitreLimit (params, 5.0);
+    GEOSBufferParams_setQuadrantSegments (params, points);
+    GEOSBufferParams_setSingleSided (params, 1);
+
+/* creating the SingleSided Buffer */
+    if (left_right == 0)
+      {
+	  /* right-sided requires NEGATIVE radius */
+	  radius *= -1.0;
+      }
+    g2 = GEOSBufferWithParams (g1, params, radius);
+    GEOSGeom_destroy (g1);
+    GEOSBufferParams_destroy (params);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM (g2);
+    else
+	geo = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSingleSidedBuffer_r (const void *p_cache, gaiaGeomCollPtr geom,
+			 double radius, int points, int left_right)
+{
+/*
+// builds a geometry that is the SingleSided BUFFER of GEOM 
+// (which is expected to be of the LINESTRING type)
+//
+*/
+    gaiaGeomCollPtr geo;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSBufferParams *params = NULL;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    int closed = 0;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+
+/* checking the input geometry for validity */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  /* counting how many POINTs are there */
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many LINESTRINGs are there */
+	  lns++;
+	  if (gaiaIsClosed (ln))
+	      closed++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many POLYGON are there */
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts > 0 || pgs > 0 || lns > 1 || closed > 0)
+	return NULL;
+
+/* all right: this one simply is a LINESTRING */
+    geom->DeclaredType = GAIA_LINESTRING;
+
+    g1 = gaiaToGeos_r (cache, geom);
+/* setting up Buffer params */
+    params = GEOSBufferParams_create_r (handle);
+    GEOSBufferParams_setJoinStyle_r (handle, params, GEOSBUF_JOIN_ROUND);
+    GEOSBufferParams_setMitreLimit_r (handle, params, 5.0);
+    GEOSBufferParams_setQuadrantSegments_r (handle, params, points);
+    GEOSBufferParams_setSingleSided_r (handle, params, 1);
+
+/* creating the SingleSided Buffer */
+    if (left_right == 0)
+      {
+	  /* right-sided requires NEGATIVE radius */
+	  radius *= -1.0;
+      }
+    g2 = GEOSBufferWithParams_r (handle, g1, params, radius);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSBufferParams_destroy_r (handle, params);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom->Srid;
+    return geo;
+}
+
+GAIAGEO_DECLARE int
+gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
+		       double *xdist)
+{
+/* 
+/ computes the (discrete) Hausdorff distance intercurring 
+/ between GEOM-1 and GEOM-2 
+*/
+    double dist;
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
+    if (!geom1 || !geom2)
+	return 0;
+    g1 = gaiaToGeos (geom1);
+    g2 = gaiaToGeos (geom2);
+    ret = GEOSHausdorffDistance (g1, g2, &dist);
+    GEOSGeom_destroy (g1);
+    GEOSGeom_destroy (g2);
+    if (ret)
+	*xdist = dist;
+    return ret;
+}
+
+GAIAGEO_DECLARE int
+gaiaHausdorffDistance_r (const void *p_cache, gaiaGeomCollPtr geom1,
+			 gaiaGeomCollPtr geom2, double *xdist)
+{
+/* 
+/ computes the (discrete) Hausdorff distance intercurring 
+/ between GEOM-1 and GEOM-2 
+*/
+    double dist;
+    int ret;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return 0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return 0;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return 0;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return 0;
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    ret = GEOSHausdorffDistance_r (handle, g1, g2, &dist);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (ret)
+	*xdist = dist;
+    return ret;
+}
+
+static gaiaGeomCollPtr
+geom_as_lines (gaiaGeomCollPtr geom)
+{
+/* transforms a Geometry into a LINESTRING/MULTILINESTRING (if possible) */
+    gaiaGeomCollPtr result;
+    gaiaLinestringPtr ln;
+    gaiaLinestringPtr new_ln;
+    gaiaPolygonPtr pg;
+    gaiaRingPtr rng;
+    int iv;
+    int ib;
+    double x;
+    double y;
+    double z;
+    double m;
+
+    if (!geom)
+	return NULL;
+    if (geom->FirstPoint != NULL)
+      {
+	  /* invalid: GEOM contains at least one POINT */
+	  return NULL;
+      }
+
+    switch (geom->DimensionModel)
+      {
+      case GAIA_XY_Z_M:
+	  result = gaiaAllocGeomCollXYZM ();
+	  break;
+      case GAIA_XY_Z:
+	  result = gaiaAllocGeomCollXYZ ();
+	  break;
+      case GAIA_XY_M:
+	  result = gaiaAllocGeomCollXYM ();
+	  break;
+      default:
+	  result = gaiaAllocGeomColl ();
+	  break;
+      };
+    result->Srid = geom->Srid;
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* copying any Linestring */
+	  new_ln = gaiaAddLinestringToGeomColl (result, ln->Points);
+	  for (iv = 0; iv < ln->Points; iv++)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      gaiaSetPointXYM (new_ln->Coords, iv, x, y, m);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      gaiaSetPoint (new_ln->Coords, iv, x, y);
+		  }
+	    }
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  /* copying any Polygon Ring (as Linestring) */
+	  rng = pg->Exterior;
+	  new_ln = gaiaAddLinestringToGeomColl (result, rng->Points);
+	  for (iv = 0; iv < rng->Points; iv++)
+	    {
+		/* exterior Ring */
+		if (rng->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
+		      gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z);
+		  }
+		else if (rng->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
+		      gaiaSetPointXYM (new_ln->Coords, iv, x, y, m);
+		  }
+		else if (rng->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
+		      gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaGetPoint (rng->Coords, iv, &x, &y);
+		      gaiaSetPoint (new_ln->Coords, iv, x, y);
+		  }
+	    }
+	  for (ib = 0; ib < pg->NumInteriors; ib++)
+	    {
+		rng = pg->Interiors + ib;
+		new_ln = gaiaAddLinestringToGeomColl (result, rng->Points);
+		for (iv = 0; iv < rng->Points; iv++)
+		  {
+		      /* any interior Ring */
+		      if (rng->DimensionModel == GAIA_XY_Z)
+			{
+			    gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
+			    gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z);
+			}
+		      else if (rng->DimensionModel == GAIA_XY_M)
+			{
+			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
+			    gaiaSetPointXYM (new_ln->Coords, iv, x, y, m);
+			}
+		      else if (rng->DimensionModel == GAIA_XY_Z_M)
+			{
+			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
+			    gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m);
+			}
+		      else
+			{
+			    gaiaGetPoint (rng->Coords, iv, &x, &y);
+			    gaiaSetPoint (new_ln->Coords, iv, x, y);
+			}
+		  }
+	    }
+	  pg = pg->Next;
+      }
+    return result;
+}
+
+static void
+add_shared_linestring (gaiaGeomCollPtr geom, gaiaDynamicLinePtr dyn)
+{
+/* adding a LINESTRING from Dynamic Line */
+    int count = 0;
+    gaiaLinestringPtr ln;
+    gaiaPointPtr pt;
+    int iv;
+
+    if (!geom)
+	return;
+    if (!dyn)
+	return;
+    pt = dyn->First;
+    while (pt)
+      {
+	  /* counting how many Points are there */
+	  count++;
+	  pt = pt->Next;
+      }
+    if (count == 0)
+	return;
+    ln = gaiaAddLinestringToGeomColl (geom, count);
+    iv = 0;
+    pt = dyn->First;
+    while (pt)
+      {
+	  /* copying points into the LINESTRING */
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M);
+	    }
+	  else
+	    {
+		gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y);
+	    }
+	  iv++;
+	  pt = pt->Next;
+      }
+}
+
+static void
+append_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order)
+{
+/* appends a Shared Path item to Dynamic Line */
+    int iv;
+    double x;
+    double y;
+    double z;
+    double m;
+    if (order)
+      {
+	  /* reversed order */
+	  for (iv = ln->Points - 1; iv >= 0; iv--)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      if (x == dyn->Last->X && y == dyn->Last->Y
+			  && z == dyn->Last->Z)
+			  ;
+		      else
+			  gaiaAppendPointZToDynamicLine (dyn, x, y, z);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      if (x == dyn->Last->X && y == dyn->Last->Y
+			  && m == dyn->Last->M)
+			  ;
+		      else
+			  gaiaAppendPointMToDynamicLine (dyn, x, y, m);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      if (x == dyn->Last->X && y == dyn->Last->Y
+			  && z == dyn->Last->Z && m == dyn->Last->M)
+			  ;
+		      else
+			  gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      if (x == dyn->Last->X && y == dyn->Last->Y)
+			  ;
+		      else
+			  gaiaAppendPointToDynamicLine (dyn, x, y);
+		  }
+	    }
+      }
+    else
+      {
+	  /* conformant order */
+	  for (iv = 0; iv < ln->Points; iv++)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      if (x == dyn->Last->X && y == dyn->Last->Y
+			  && z == dyn->Last->Z)
+			  ;
+		      else
+			  gaiaAppendPointZToDynamicLine (dyn, x, y, z);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      if (x == dyn->Last->X && y == dyn->Last->Y
+			  && m == dyn->Last->M)
+			  ;
+		      else
+			  gaiaAppendPointMToDynamicLine (dyn, x, y, m);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      if (x == dyn->Last->X && y == dyn->Last->Y
+			  && z == dyn->Last->Z && m == dyn->Last->M)
+			  ;
+		      else
+			  gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      if (x == dyn->Last->X && y == dyn->Last->Y)
+			  ;
+		      else
+			  gaiaAppendPointToDynamicLine (dyn, x, y);
+		  }
+	    }
+      }
+}
+
+static void
+prepend_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order)
+{
+/* prepends a Shared Path item to Dynamic Line */
+    int iv;
+    double x;
+    double y;
+    double z;
+    double m;
+    if (order)
+      {
+	  /* reversed order */
+	  for (iv = 0; iv < ln->Points; iv++)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      if (x == dyn->First->X && y == dyn->First->Y
+			  && z == dyn->First->Z)
+			  ;
+		      else
+			  gaiaPrependPointZToDynamicLine (dyn, x, y, z);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      if (x == dyn->First->X && y == dyn->First->Y
+			  && m == dyn->First->M)
+			  ;
+		      else
+			  gaiaPrependPointMToDynamicLine (dyn, x, y, m);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      if (x == dyn->First->X && y == dyn->First->Y
+			  && z == dyn->First->Z && m == dyn->First->M)
+			  ;
+		      else
+			  gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      if (x == dyn->First->X && y == dyn->First->Y)
+			  ;
+		      else
+			  gaiaPrependPointToDynamicLine (dyn, x, y);
+		  }
+	    }
+      }
+    else
+      {
+	  /* conformant order */
+	  for (iv = ln->Points - 1; iv >= 0; iv--)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      if (x == dyn->First->X && y == dyn->First->Y
+			  && z == dyn->First->Z)
+			  ;
+		      else
+			  gaiaPrependPointZToDynamicLine (dyn, x, y, z);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      if (x == dyn->First->X && y == dyn->First->Y
+			  && m == dyn->First->M)
+			  ;
+		      else
+			  gaiaPrependPointMToDynamicLine (dyn, x, y, m);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      if (x == dyn->First->X && y == dyn->First->Y
+			  && z == dyn->First->Z && m == dyn->First->M)
+			  ;
+		      else
+			  gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      if (x == dyn->First->X && y == dyn->First->Y)
+			  ;
+		      else
+			  gaiaPrependPointToDynamicLine (dyn, x, y);
+		  }
+	    }
+      }
+}
+
+static gaiaGeomCollPtr
+arrange_shared_paths (gaiaGeomCollPtr geom)
+{
+/* final aggregation step for shared paths */
+    gaiaLinestringPtr ln;
+    gaiaLinestringPtr *ln_array;
+    gaiaGeomCollPtr result;
+    gaiaDynamicLinePtr dyn;
+    int count;
+    int i;
+    int i2;
+    int iv;
+    double x;
+    double y;
+    double z;
+    double m;
+    int ok;
+    int ok2;
+
+    if (!geom)
+	return NULL;
+    count = 0;
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many Linestrings are there */
+	  count++;
+	  ln = ln->Next;
+      }
+    if (count == 0)
+	return NULL;
+
+    ln_array = malloc (sizeof (gaiaLinestringPtr) * count);
+    i = 0;
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  /* populating the Linestring references array */
+	  ln_array[i++] = ln;
+	  ln = ln->Next;
+      }
+
+/* allocating a new Geometry [MULTILINESTRING] */
+    switch (geom->DimensionModel)
+      {
+      case GAIA_XY_Z_M:
+	  result = gaiaAllocGeomCollXYZM ();
+	  break;
+      case GAIA_XY_Z:
+	  result = gaiaAllocGeomCollXYZ ();
+	  break;
+      case GAIA_XY_M:
+	  result = gaiaAllocGeomCollXYM ();
+	  break;
+      default:
+	  result = gaiaAllocGeomColl ();
+	  break;
+      };
+    result->Srid = geom->Srid;
+    result->DeclaredType = GAIA_MULTILINESTRING;
+
+    ok = 1;
+    while (ok)
+      {
+	  /* looping until we have processed any input item */
+	  ok = 0;
+	  for (i = 0; i < count; i++)
+	    {
+		if (ln_array[i] != NULL)
+		  {
+		      /* starting a new LINESTRING */
+		      dyn = gaiaAllocDynamicLine ();
+		      ln = ln_array[i];
+		      ln_array[i] = NULL;
+		      for (iv = 0; iv < ln->Points; iv++)
+			{
+			    /* inserting the 'seed' path */
+			    if (ln->DimensionModel == GAIA_XY_Z)
+			      {
+				  gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+				  gaiaAppendPointZToDynamicLine (dyn, x, y, z);
+			      }
+			    else if (ln->DimensionModel == GAIA_XY_M)
+			      {
+				  gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+				  gaiaAppendPointMToDynamicLine (dyn, x, y, m);
+			      }
+			    else if (ln->DimensionModel == GAIA_XY_Z_M)
+			      {
+				  gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z,
+						    &m);
+				  gaiaAppendPointZMToDynamicLine (dyn, x, y, z,
+								  m);
+			      }
+			    else
+			      {
+				  gaiaGetPoint (ln->Coords, iv, &x, &y);
+				  gaiaAppendPointToDynamicLine (dyn, x, y);
+			      }
+			}
+		      ok2 = 1;
+		      while (ok2)
+			{
+			    /* looping until we have checked any other item */
+			    ok2 = 0;
+			    for (i2 = 0; i2 < count; i2++)
+			      {
+				  /* expanding the 'seed' path */
+				  if (ln_array[i2] == NULL)
+				      continue;
+				  ln = ln_array[i2];
+				  /* checking the first vertex */
+				  iv = 0;
+				  if (ln->DimensionModel == GAIA_XY_Z)
+				    {
+					gaiaGetPointXYZ (ln->Coords, iv, &x, &y,
+							 &z);
+				    }
+				  else if (ln->DimensionModel == GAIA_XY_M)
+				    {
+					gaiaGetPointXYM (ln->Coords, iv, &x, &y,
+							 &m);
+				    }
+				  else if (ln->DimensionModel == GAIA_XY_Z_M)
+				    {
+					gaiaGetPointXYZM (ln->Coords, iv, &x,
+							  &y, &z, &m);
+				    }
+				  else
+				    {
+					gaiaGetPoint (ln->Coords, iv, &x, &y);
+				    }
+				  if (x == dyn->Last->X && y == dyn->Last->Y)
+				    {
+					/* appending this item to the 'seed' (conformant order) */
+					append_shared_path (dyn, ln, 0);
+					ln_array[i2] = NULL;
+					ok2 = 1;
+					continue;
+				    }
+				  if (x == dyn->First->X && y == dyn->First->Y)
+				    {
+					/* prepending this item to the 'seed' (reversed order) */
+					prepend_shared_path (dyn, ln, 1);
+					ln_array[i2] = NULL;
+					ok2 = 1;
+					continue;
+				    }
+				  /* checking the last vertex */
+				  iv = ln->Points - 1;
+				  if (ln->DimensionModel == GAIA_XY_Z)
+				    {
+					gaiaGetPointXYZ (ln->Coords, iv, &x, &y,
+							 &z);
+				    }
+				  else if (ln->DimensionModel == GAIA_XY_M)
+				    {
+					gaiaGetPointXYM (ln->Coords, iv, &x, &y,
+							 &m);
+				    }
+				  else if (ln->DimensionModel == GAIA_XY_Z_M)
+				    {
+					gaiaGetPointXYZM (ln->Coords, iv, &x,
+							  &y, &z, &m);
+				    }
+				  else
+				    {
+					gaiaGetPoint (ln->Coords, iv, &x, &y);
+				    }
+				  if (x == dyn->Last->X && y == dyn->Last->Y)
+				    {
+					/* appending this item to the 'seed' (reversed order) */
+					append_shared_path (dyn, ln, 1);
+					ln_array[i2] = NULL;
+					ok2 = 1;
+					continue;
+				    }
+				  if (x == dyn->First->X && y == dyn->First->Y)
+				    {
+					/* prepending this item to the 'seed' (conformant order) */
+					prepend_shared_path (dyn, ln, 0);
+					ln_array[i2] = NULL;
+					ok2 = 1;
+					continue;
+				    }
+			      }
+			}
+		      add_shared_linestring (result, dyn);
+		      gaiaFreeDynamicLine (dyn);
+		      ok = 1;
+		      break;
+		  }
+	    }
+      }
+    free (ln_array);
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+/*
+// builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 
+// (which are expected to be of the LINESTRING/MULTILINESTRING type)
+//
+*/
+    gaiaGeomCollPtr geo;
+    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr line1;
+    gaiaGeomCollPtr line2;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    gaiaResetGeosMsg ();
+    if (!geom1)
+	return NULL;
+    if (!geom2)
+	return NULL;
+/* transforming input geoms as Lines */
+    line1 = geom_as_lines (geom1);
+    line2 = geom_as_lines (geom2);
+    if (line1 == NULL || line2 == NULL)
+      {
+	  if (line1)
+	      gaiaFreeGeomColl (line1);
+	  if (line2)
+	      gaiaFreeGeomColl (line2);
+	  return NULL;
+      }
+
+    g1 = gaiaToGeos (line1);
+    g2 = gaiaToGeos (line2);
+    gaiaFreeGeomColl (line1);
+    gaiaFreeGeomColl (line2);
+    g3 = GEOSSharedPaths (g1, g2);
+    GEOSGeom_destroy (g1);
+    GEOSGeom_destroy (g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ (g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM (g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM (g3);
+    else
+	geo = gaiaFromGeos_XY (g3);
+    GEOSGeom_destroy (g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    result = arrange_shared_paths (geo);
+    gaiaFreeGeomColl (geo);
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSharedPaths_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		   gaiaGeomCollPtr geom2)
+{
+/*
+// builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 
+// (which are expected to be of the LINESTRING/MULTILINESTRING type)
+//
+*/
+    gaiaGeomCollPtr geo;
+    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr line1;
+    gaiaGeomCollPtr line2;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1)
+	return NULL;
+    if (!geom2)
+	return NULL;
+/* transforming input geoms as Lines */
+    line1 = geom_as_lines (geom1);
+    line2 = geom_as_lines (geom2);
+    if (line1 == NULL || line2 == NULL)
+      {
+	  if (line1)
+	      gaiaFreeGeomColl (line1);
+	  if (line2)
+	      gaiaFreeGeomColl (line2);
+	  return NULL;
+      }
+
+    g1 = gaiaToGeos_r (cache, line1);
+    g2 = gaiaToGeos_r (cache, line2);
+    gaiaFreeGeomColl (line1);
+    gaiaFreeGeomColl (line2);
+    g3 = GEOSSharedPaths_r (handle, g1, g2);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	geo = gaiaFromGeos_XYZ_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	geo = gaiaFromGeos_XYM_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	geo = gaiaFromGeos_XYZM_r (cache, g3);
+    else
+	geo = gaiaFromGeos_XY_r (cache, g3);
+    GEOSGeom_destroy_r (handle, g3);
+    if (geo == NULL)
+	return NULL;
+    geo->Srid = geom1->Srid;
+    result = arrange_shared_paths (geo);
+    gaiaFreeGeomColl (geo);
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineInterpolatePoint (gaiaGeomCollPtr geom, double fraction)
+{
+/*
+ * attempts to intepolate a point on line at dist "fraction" 
+ *
+ * the fraction is expressed into the range from 0.0 to 1.0
+ */
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    gaiaGeomCollPtr result;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    GEOSGeometry *g;
+    GEOSGeometry *g_pt;
+    double length;
+    double projection;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+
+/* checking if a single Linestring has been passed */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  lns++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts == 0 && lns == 1 && pgs == 0)
+	;
+    else
+	return NULL;
+
+    g = gaiaToGeos (geom);
+    if (GEOSLength (g, &length))
+      {
+	  /* transforming fraction to length */
+	  if (fraction < 0.0)
+	      fraction = 0.0;
+	  if (fraction > 1.0)
+	      fraction = 1.0;
+	  projection = length * fraction;
+      }
+    else
+      {
+	  GEOSGeom_destroy (g);
+	  return NULL;
+      }
+    g_pt = GEOSInterpolate (g, projection);
+    GEOSGeom_destroy (g);
+    if (!g_pt)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g_pt);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g_pt);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g_pt);
+    else
+	result = gaiaFromGeos_XY (g_pt);
+    GEOSGeom_destroy (g_pt);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineInterpolatePoint_r (const void *p_cache, gaiaGeomCollPtr geom,
+			    double fraction)
+{
+/*
+ * attempts to intepolate a point on line at dist "fraction" 
+ *
+ * the fraction is expressed into the range from 0.0 to 1.0
+ */
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    gaiaGeomCollPtr result;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    GEOSGeometry *g;
+    GEOSGeometry *g_pt;
+    double length;
+    double projection;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+
+/* checking if a single Linestring has been passed */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  lns++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts == 0 && lns == 1 && pgs == 0)
+	;
+    else
+	return NULL;
+
+    g = gaiaToGeos_r (cache, geom);
+    if (GEOSLength_r (handle, g, &length))
+      {
+	  /* transforming fraction to length */
+	  if (fraction < 0.0)
+	      fraction = 0.0;
+	  if (fraction > 1.0)
+	      fraction = 1.0;
+	  projection = length * fraction;
+      }
+    else
+      {
+	  GEOSGeom_destroy_r (handle, g);
+	  return NULL;
+      }
+    g_pt = GEOSInterpolate_r (handle, g, projection);
+    GEOSGeom_destroy_r (handle, g);
+    if (!g_pt)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g_pt);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g_pt);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g_pt);
+    else
+	result = gaiaFromGeos_XY_r (cache, g_pt);
+    GEOSGeom_destroy_r (handle, g_pt);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+static gaiaGeomCollPtr
+gaiaLineInterpolateEquidistantPointsCommon (struct splite_internal_cache *cache,
+					    gaiaGeomCollPtr geom,
+					    double distance)
+{
+/*
+ * attempts to intepolate a set of points on line at regular distances 
+ */
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr xpt;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    GEOSGeometry *g;
+    GEOSGeometry *g_pt;
+    double length;
+    double current_length = 0.0;
+    GEOSContextHandle_t handle = NULL;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	      return NULL;
+	  handle = cache->GEOS_handle;
+	  if (handle == NULL)
+	      return NULL;
+      }
+    if (!geom)
+	return NULL;
+    if (distance <= 0.0)
+	return NULL;
+
+/* checking if a single Linestring has been passed */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  lns++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts == 0 && lns == 1 && pgs == 0)
+	;
+    else
+	return NULL;
+
+    if (cache != NULL)
+      {
+	  g = gaiaToGeos_r (cache, geom);
+	  if (GEOSLength_r (handle, g, &length))
+	    {
+		if (length <= distance)
+		  {
+		      /* the line is too short to apply interpolation */
+		      GEOSGeom_destroy_r (handle, g);
+		      return NULL;
+		  }
+	    }
+	  else
+	    {
+		GEOSGeom_destroy_r (handle, g);
+		return NULL;
+	    }
+      }
+    else
+      {
+	  g = gaiaToGeos (geom);
+	  if (GEOSLength (g, &length))
+	    {
+		if (length <= distance)
+		  {
+		      /* the line is too short to apply interpolation */
+		      GEOSGeom_destroy (g);
+		      return NULL;
+		  }
+	    }
+	  else
+	    {
+		GEOSGeom_destroy (g);
+		return NULL;
+	    }
+      }
+
+/* creating the MultiPoint [always supporting M] */
+    if (geom->DimensionModel == GAIA_XY_Z
+	|| geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaAllocGeomCollXYZM ();
+    else
+	result = gaiaAllocGeomCollXYM ();
+    if (result == NULL)
+      {
+	  GEOSGeom_destroy (g);
+	  return NULL;
+      }
+
+    while (1)
+      {
+	  /* increasing the current distance */
+	  current_length += distance;
+	  if (current_length >= length)
+	      break;
+	  /* interpolating a point */
+	  if (handle != NULL)
+	      g_pt = GEOSInterpolate_r (handle, g, current_length);
+	  else
+	      g_pt = GEOSInterpolate (g, current_length);
+	  if (!g_pt)
+	      goto error;
+	  if (geom->DimensionModel == GAIA_XY_Z)
+	    {
+		if (cache != NULL)
+		    xpt = gaiaFromGeos_XYZ_r (cache, g_pt);
+		else
+		    xpt = gaiaFromGeos_XYZ (g_pt);
+		if (!xpt)
+		    goto error;
+		pt = xpt->FirstPoint;
+		if (!pt)
+		    goto error;
+		gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z,
+					    current_length);
+	    }
+	  else if (geom->DimensionModel == GAIA_XY_M)
+	    {
+		if (cache != NULL)
+		    xpt = gaiaFromGeos_XYM_r (cache, g_pt);
+		else
+		    xpt = gaiaFromGeos_XYM (g_pt);
+		if (!xpt)
+		    goto error;
+		pt = xpt->FirstPoint;
+		if (!pt)
+		    goto error;
+		gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y,
+					   current_length);
+	    }
+	  else if (geom->DimensionModel == GAIA_XY_Z_M)
+	    {
+		if (cache != NULL)
+		    xpt = gaiaFromGeos_XYZM_r (cache, g_pt);
+		else
+		    xpt = gaiaFromGeos_XYZM (g_pt);
+		if (!xpt)
+		    goto error;
+		pt = xpt->FirstPoint;
+		if (!pt)
+		    goto error;
+		gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z,
+					    current_length);
+	    }
+	  else
+	    {
+		if (cache != NULL)
+		    xpt = gaiaFromGeos_XY_r (cache, g_pt);
+		else
+		    xpt = gaiaFromGeos_XY (g_pt);
+		if (!xpt)
+		    goto error;
+		pt = xpt->FirstPoint;
+		if (!pt)
+		    goto error;
+		gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y,
+					   current_length);
+	    }
+	  if (handle != NULL)
+	      GEOSGeom_destroy_r (handle, g_pt);
+	  else
+	      GEOSGeom_destroy (g_pt);
+	  gaiaFreeGeomColl (xpt);
+      }
+    if (handle != NULL)
+	GEOSGeom_destroy_r (handle, g);
+    else
+	GEOSGeom_destroy (g);
+    result->Srid = geom->Srid;
+    result->DeclaredType = GAIA_MULTIPOINT;
+    return result;
+
+  error:
+    if (handle != NULL)
+      {
+	  if (g_pt)
+	      GEOSGeom_destroy_r (handle, g_pt);
+	  GEOSGeom_destroy_r (handle, g);
+      }
+    else
+      {
+	  if (g_pt)
+	      GEOSGeom_destroy (g_pt);
+	  GEOSGeom_destroy (g);
+      }
+    gaiaFreeGeomColl (result);
+    return NULL;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr geom, double distance)
+{
+    gaiaResetGeosMsg ();
+    return gaiaLineInterpolateEquidistantPointsCommon (NULL, geom, distance);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineInterpolateEquidistantPoints_r (const void *p_cache,
+					gaiaGeomCollPtr geom, double distance)
+{
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    return gaiaLineInterpolateEquidistantPointsCommon (cache, geom, distance);
+}
+
+GAIAGEO_DECLARE double
+gaiaLineLocatePoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+/* 
+ * attempts to compute the location of the closest point on LineString 
+ * to the given Point, as a fraction of total 2d line length 
+ *
+ * the fraction is expressed into the range from 0.0 to 1.0
+ */
+    int pts1 = 0;
+    int lns1 = 0;
+    int pgs1 = 0;
+    int pts2 = 0;
+    int lns2 = 0;
+    int pgs2 = 0;
+    double length;
+    double projection;
+    double result;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaResetGeosMsg ();
+    if (!geom1 || !geom2)
+	return -1.0;
+
+/* checking if a single Linestring has been passed */
+    pt = geom1->FirstPoint;
+    while (pt)
+      {
+	  pts1++;
+	  pt = pt->Next;
+      }
+    ln = geom1->FirstLinestring;
+    while (ln)
+      {
+	  lns1++;
+	  ln = ln->Next;
+      }
+    pg = geom1->FirstPolygon;
+    while (pg)
+      {
+	  pgs1++;
+	  pg = pg->Next;
+      }
+    if (pts1 == 0 && lns1 >= 1 && pgs1 == 0)
+	;
+    else
+	return -1.0;
+
+/* checking if a single Point has been passed */
+    pt = geom2->FirstPoint;
+    while (pt)
+      {
+	  pts2++;
+	  pt = pt->Next;
+      }
+    ln = geom2->FirstLinestring;
+    while (ln)
+      {
+	  lns2++;
+	  ln = ln->Next;
+      }
+    pg = geom2->FirstPolygon;
+    while (pg)
+      {
+	  pgs2++;
+	  pg = pg->Next;
+      }
+    if (pts2 == 1 && lns2 == 0 && pgs2 == 0)
+	;
+    else
+	return -1.0;
+
+    g1 = gaiaToGeos (geom1);
+    g2 = gaiaToGeos (geom2);
+    projection = GEOSProject (g1, g2);
+    if (GEOSLength (g1, &length))
+      {
+	  /* normalizing as a fraction between 0.0 and 1.0 */
+	  result = projection / length;
+      }
+    else
+	result = -1.0;
+    GEOSGeom_destroy (g1);
+    GEOSGeom_destroy (g2);
+    return result;
+}
+
+GAIAGEO_DECLARE double
+gaiaLineLocatePoint_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		       gaiaGeomCollPtr geom2)
+{
+/* 
+ * attempts to compute the location of the closest point on LineString 
+ * to the given Point, as a fraction of total 2d line length 
+ *
+ * the fraction is expressed into the range from 0.0 to 1.0
+ */
+    int pts1 = 0;
+    int lns1 = 0;
+    int pgs1 = 0;
+    int pts2 = 0;
+    int lns2 = 0;
+    int pgs2 = 0;
+    double length;
+    double projection;
+    double result;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return -1.0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return -1.0;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return -1.0;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return -1.0;
+
+/* checking if a single Linestring has been passed */
+    pt = geom1->FirstPoint;
+    while (pt)
+      {
+	  pts1++;
+	  pt = pt->Next;
+      }
+    ln = geom1->FirstLinestring;
+    while (ln)
+      {
+	  lns1++;
+	  ln = ln->Next;
+      }
+    pg = geom1->FirstPolygon;
+    while (pg)
+      {
+	  pgs1++;
+	  pg = pg->Next;
+      }
+    if (pts1 == 0 && lns1 >= 1 && pgs1 == 0)
+	;
+    else
+	return -1.0;
+
+/* checking if a single Point has been passed */
+    pt = geom2->FirstPoint;
+    while (pt)
+      {
+	  pts2++;
+	  pt = pt->Next;
+      }
+    ln = geom2->FirstLinestring;
+    while (ln)
+      {
+	  lns2++;
+	  ln = ln->Next;
+      }
+    pg = geom2->FirstPolygon;
+    while (pg)
+      {
+	  pgs2++;
+	  pg = pg->Next;
+      }
+    if (pts2 == 1 && lns2 == 0 && pgs2 == 0)
+	;
+    else
+	return -1.0;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    projection = GEOSProject_r (handle, g1, g2);
+    if (GEOSLength_r (handle, g1, &length))
+      {
+	  /* normalizing as a fraction between 0.0 and 1.0 */
+	  result = projection / length;
+      }
+    else
+	result = -1.0;
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    return result;
+}
+
+static gaiaGeomCollPtr
+gaiaLineSubstringCommon (struct splite_internal_cache *cache,
+			 gaiaGeomCollPtr geom, double start_fraction,
+			 double end_fraction)
+{
+/* 
+ * attempts to build a new Linestring being a substring of the input one starting 
+ * and ending at the given fractions of total 2d length 
+ */
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    gaiaGeomCollPtr result;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaLinestringPtr out;
+    gaiaPolygonPtr pg;
+    GEOSGeometry *g;
+    GEOSGeometry *g_start;
+    GEOSGeometry *g_end;
+    GEOSCoordSequence *cs;
+    const GEOSCoordSequence *in_cs;
+    GEOSGeometry *segm;
+    double length;
+    double total = 0.0;
+    double start;
+    double end;
+    int iv;
+    int i_start = -1;
+    int i_end = -1;
+    int points;
+    double x;
+    double y;
+    double z;
+    double m;
+    unsigned int dims;
+    GEOSContextHandle_t handle = NULL;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	      return NULL;
+	  handle = cache->GEOS_handle;
+	  if (handle == NULL)
+	      return NULL;
+      }
+    if (!geom)
+	return NULL;
+
+/* checking if a single Linestring has been passed */
+    pt = geom->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = geom->FirstLinestring;
+    while (ln)
+      {
+	  lns++;
+	  ln = ln->Next;
+      }
+    pg = geom->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pts == 0 && lns == 1 && pgs == 0)
+	;
+    else
+	return NULL;
+
+    if (start_fraction < 0.0)
+	start_fraction = 0.0;
+    if (start_fraction > 1.0)
+	start_fraction = 1.0;
+    if (end_fraction < 0.0)
+	end_fraction = 0.0;
+    if (end_fraction > 1.0)
+	end_fraction = 1.0;
+    if (start_fraction >= end_fraction)
+	return NULL;
+    if (cache != NULL)
+      {
+	  g = gaiaToGeos_r (cache, geom);
+	  if (GEOSLength_r (handle, g, &length))
+	    {
+		start = length * start_fraction;
+		end = length * end_fraction;
+	    }
+	  else
+	    {
+		GEOSGeom_destroy_r (handle, g);
+		return NULL;
+	    }
+	  g_start = GEOSInterpolate_r (handle, g, start);
+	  g_end = GEOSInterpolate_r (handle, g, end);
+	  GEOSGeom_destroy_r (handle, g);
+      }
+    else
+      {
+	  g = gaiaToGeos (geom);
+	  if (GEOSLength (g, &length))
+	    {
+		start = length * start_fraction;
+		end = length * end_fraction;
+	    }
+	  else
+	    {
+		GEOSGeom_destroy (g);
+		return NULL;
+	    }
+	  g_start = GEOSInterpolate (g, start);
+	  g_end = GEOSInterpolate (g, end);
+	  GEOSGeom_destroy (g);
+      }
+    if (!g_start || !g_end)
+	return NULL;
+
+/* identifying first and last valid vertex */
+    ln = geom->FirstLinestring;
+    for (iv = 0; iv < ln->Points; iv++)
+      {
+
+	  double x0;
+	  double y0;
+	  switch (ln->DimensionModel)
+	    {
+	    case GAIA_XY_Z:
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		break;
+	    case GAIA_XY_M:
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		break;
+	    case GAIA_XY_Z_M:
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		break;
+	    default:
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+		break;
+	    };
+
+	  if (iv > 0)
+	    {
+		if (handle != NULL)
+		  {
+		      cs = GEOSCoordSeq_create_r (handle, 2, 2);
+		      GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+		      GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+		      GEOSCoordSeq_setX_r (handle, cs, 1, x);
+		      GEOSCoordSeq_setY_r (handle, cs, 1, y);
+		      segm = GEOSGeom_createLineString_r (handle, cs);
+		      GEOSLength_r (handle, segm, &length);
+		      total += length;
+		      GEOSGeom_destroy_r (handle, segm);
+		  }
+		else
+		  {
+		      cs = GEOSCoordSeq_create (2, 2);
+		      GEOSCoordSeq_setX (cs, 0, x0);
+		      GEOSCoordSeq_setY (cs, 0, y0);
+		      GEOSCoordSeq_setX (cs, 1, x);
+		      GEOSCoordSeq_setY (cs, 1, y);
+		      segm = GEOSGeom_createLineString (cs);
+		      GEOSLength (segm, &length);
+		      total += length;
+		      GEOSGeom_destroy (segm);
+		  }
+		if (total > start && i_start < 0)
+		    i_start = iv;
+		if (total < end)
+		    i_end = iv;
+	    }
+	  x0 = x;
+	  y0 = y;
+      }
+    if (i_start < 0 || i_end < 0)
+      {
+	  i_start = -1;
+	  i_end = -1;
+	  points = 2;
+      }
+    else
+	points = i_end - i_start + 3;
+
+/* creating the output geometry */
+    switch (ln->DimensionModel)
+      {
+      case GAIA_XY_Z:
+	  result = gaiaAllocGeomCollXYZ ();
+	  break;
+      case GAIA_XY_M:
+	  result = gaiaAllocGeomCollXYM ();
+	  break;
+      case GAIA_XY_Z_M:
+	  result = gaiaAllocGeomCollXYZM ();
+	  break;
+      default:
+	  result = gaiaAllocGeomColl ();
+	  break;
+      };
+    result->Srid = geom->Srid;
+    out = gaiaAddLinestringToGeomColl (result, points);
+
+/* start vertex */
+    points = 0;
+    if (handle)
+      {
+	  in_cs = GEOSGeom_getCoordSeq_r (handle, g_start);
+	  GEOSCoordSeq_getDimensions_r (handle, in_cs, &dims);
+	  if (dims == 3)
+	    {
+		GEOSCoordSeq_getX_r (handle, in_cs, 0, &x);
+		GEOSCoordSeq_getY_r (handle, in_cs, 0, &y);
+		GEOSCoordSeq_getZ_r (handle, in_cs, 0, &z);
+		m = 0.0;
+	    }
+	  else
+	    {
+		GEOSCoordSeq_getX_r (handle, in_cs, 0, &x);
+		GEOSCoordSeq_getY_r (handle, in_cs, 0, &y);
+		z = 0.0;
+		m = 0.0;
+	    }
+	  GEOSGeom_destroy_r (handle, g_start);
+      }
+    else
+      {
+	  in_cs = GEOSGeom_getCoordSeq (g_start);
+	  GEOSCoordSeq_getDimensions (in_cs, &dims);
+	  if (dims == 3)
+	    {
+		GEOSCoordSeq_getX (in_cs, 0, &x);
+		GEOSCoordSeq_getY (in_cs, 0, &y);
+		GEOSCoordSeq_getZ (in_cs, 0, &z);
+		m = 0.0;
+	    }
+	  else
+	    {
+		GEOSCoordSeq_getX (in_cs, 0, &x);
+		GEOSCoordSeq_getY (in_cs, 0, &y);
+		z = 0.0;
+		m = 0.0;
+	    }
+	  GEOSGeom_destroy (g_start);
+      }
+    switch (out->DimensionModel)
+      {
+      case GAIA_XY_Z:
+	  gaiaSetPointXYZ (out->Coords, points, x, y, z);
+	  break;
+      case GAIA_XY_M:
+	  gaiaSetPointXYM (out->Coords, points, x, y, 0.0);
+	  break;
+      case GAIA_XY_Z_M:
+	  gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0);
+	  break;
+      default:
+	  gaiaSetPoint (out->Coords, points, x, y);
+	  break;
+      };
+    points++;
+
+    if (i_start < 0 || i_end < 0)
+	;
+    else
+      {
+	  for (iv = i_start; iv <= i_end; iv++)
+	    {
+		z = 0.0;
+		m = 0.0;
+		switch (ln->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      break;
+		  case GAIA_XY_M:
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      break;
+		  case GAIA_XY_Z_M:
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      break;
+		  default:
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      break;
+		  };
+		switch (out->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		      gaiaSetPointXYZ (out->Coords, points, x, y, z);
+		      break;
+		  case GAIA_XY_M:
+		      gaiaSetPointXYM (out->Coords, points, x, y, 0.0);
+		      break;
+		  case GAIA_XY_Z_M:
+		      gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0);
+		      break;
+		  default:
+		      gaiaSetPoint (out->Coords, points, x, y);
+		      break;
+		  };
+		points++;
+	    }
+      }
+
+/* end vertex */
+    if (handle != NULL)
+      {
+	  in_cs = GEOSGeom_getCoordSeq_r (handle, g_end);
+	  GEOSCoordSeq_getDimensions_r (handle, in_cs, &dims);
+	  if (dims == 3)
+	    {
+		GEOSCoordSeq_getX_r (handle, in_cs, 0, &x);
+		GEOSCoordSeq_getY_r (handle, in_cs, 0, &y);
+		GEOSCoordSeq_getZ_r (handle, in_cs, 0, &z);
+		m = 0.0;
+	    }
+	  else
+	    {
+		GEOSCoordSeq_getX_r (handle, in_cs, 0, &x);
+		GEOSCoordSeq_getY_r (handle, in_cs, 0, &y);
+		z = 0.0;
+		m = 0.0;
+	    }
+	  GEOSGeom_destroy_r (handle, g_end);
+      }
+    else
+      {
+	  in_cs = GEOSGeom_getCoordSeq (g_end);
+	  GEOSCoordSeq_getDimensions (in_cs, &dims);
+	  if (dims == 3)
+	    {
+		GEOSCoordSeq_getX (in_cs, 0, &x);
+		GEOSCoordSeq_getY (in_cs, 0, &y);
+		GEOSCoordSeq_getZ (in_cs, 0, &z);
+		m = 0.0;
+	    }
+	  else
+	    {
+		GEOSCoordSeq_getX (in_cs, 0, &x);
+		GEOSCoordSeq_getY (in_cs, 0, &y);
+		z = 0.0;
+		m = 0.0;
+	    }
+	  GEOSGeom_destroy (g_end);
+      }
+    switch (out->DimensionModel)
+      {
+      case GAIA_XY_Z:
+	  gaiaSetPointXYZ (out->Coords, points, x, y, z);
+	  break;
+      case GAIA_XY_M:
+	  gaiaSetPointXYM (out->Coords, points, x, y, 0.0);
+	  break;
+      case GAIA_XY_Z_M:
+	  gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0);
+	  break;
+      default:
+	  gaiaSetPoint (out->Coords, points, x, y);
+	  break;
+      };
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineSubstring (gaiaGeomCollPtr geom, double start_fraction,
+		   double end_fraction)
+{
+    gaiaResetGeosMsg ();
+    return gaiaLineSubstringCommon (NULL, geom, start_fraction, end_fraction);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineSubstring_r (const void *p_cache, gaiaGeomCollPtr geom,
+		     double start_fraction, double end_fraction)
+{
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    return gaiaLineSubstringCommon (cache, geom, start_fraction, end_fraction);
+}
+
+static GEOSGeometry *
+buildGeosPoints (GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia)
+{
+/* converting a GAIA Geometry into a GEOS Geometry of POINTS */
+    int pts = 0;
+    unsigned int dims;
+    int iv;
+    int ib;
+    int nItem;
+    double x;
+    double y;
+    double z;
+    double m;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    gaiaRingPtr rng;
+    GEOSGeometry *geos;
+    GEOSGeometry *geos_item;
+    GEOSGeometry **geos_coll;
+    GEOSCoordSequence *cs;
+    if (!gaia)
+	return NULL;
+    pt = gaia->FirstPoint;
+    while (pt)
+      {
+	  /* counting how many POINTs are there */
+	  pts++;
+	  pt = pt->Next;
+      }
+    ln = gaia->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many POINTs are there */
+	  pts += ln->Points;
+	  ln = ln->Next;
+      }
+    pg = gaia->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many POINTs are there */
+	  rng = pg->Exterior;
+	  pts += rng->Points - 1;	/* exterior ring */
+	  for (ib = 0; ib < pg->NumInteriors; ib++)
+	    {
+		/* interior ring */
+		rng = pg->Interiors + ib;
+		pts += rng->Points - 1;
+	    }
+	  pg = pg->Next;
+      }
+    if (pts == 0)
+	return NULL;
+    switch (gaia->DimensionModel)
+      {
+      case GAIA_XY_Z:
+      case GAIA_XY_Z_M:
+	  dims = 3;
+	  break;
+      default:
+	  dims = 2;
+	  break;
+      };
+    nItem = 0;
+    geos_coll = malloc (sizeof (GEOSGeometry *) * (pts));
+    pt = gaia->FirstPoint;
+    while (pt)
+      {
+	  if (handle != NULL)
+	    {
+		cs = GEOSCoordSeq_create_r (handle, 1, dims);
+		switch (pt->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		  case GAIA_XY_Z_M:
+		      GEOSCoordSeq_setX_r (handle, cs, 0, pt->X);
+		      GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y);
+		      GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z);
+		      break;
+		  default:
+		      GEOSCoordSeq_setX_r (handle, cs, 0, pt->X);
+		      GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y);
+		      break;
+		  };
+		geos_item = GEOSGeom_createPoint_r (handle, cs);
+	    }
+	  else
+	    {
+		cs = GEOSCoordSeq_create (1, dims);
+		switch (pt->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		  case GAIA_XY_Z_M:
+		      GEOSCoordSeq_setX (cs, 0, pt->X);
+		      GEOSCoordSeq_setY (cs, 0, pt->Y);
+		      GEOSCoordSeq_setZ (cs, 0, pt->Z);
+		      break;
+		  default:
+		      GEOSCoordSeq_setX (cs, 0, pt->X);
+		      GEOSCoordSeq_setY (cs, 0, pt->Y);
+		      break;
+		  };
+		geos_item = GEOSGeom_createPoint (cs);
+	    }
+	  *(geos_coll + nItem++) = geos_item;
+	  pt = pt->Next;
+      }
+    ln = gaia->FirstLinestring;
+    while (ln)
+      {
+	  for (iv = 0; iv < ln->Points; iv++)
+	    {
+		z = 0.0;
+		m = 0.0;
+		switch (ln->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      break;
+		  case GAIA_XY_M:
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      break;
+		  case GAIA_XY_Z_M:
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      break;
+		  default:
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      break;
+		  };
+		if (handle != NULL)
+		  {
+		      cs = GEOSCoordSeq_create_r (handle, 1, dims);
+		      if (dims == 3)
+			{
+			    GEOSCoordSeq_setX_r (handle, cs, 0, x);
+			    GEOSCoordSeq_setY_r (handle, cs, 0, y);
+			    GEOSCoordSeq_setZ_r (handle, cs, 0, z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_setX_r (handle, cs, 0, x);
+			    GEOSCoordSeq_setY_r (handle, cs, 0, y);
+			}
+		      geos_item = GEOSGeom_createPoint_r (handle, cs);
+		  }
+		else
+		  {
+		      cs = GEOSCoordSeq_create (1, dims);
+		      if (dims == 3)
+			{
+			    GEOSCoordSeq_setX (cs, 0, x);
+			    GEOSCoordSeq_setY (cs, 0, y);
+			    GEOSCoordSeq_setZ (cs, 0, z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_setX (cs, 0, x);
+			    GEOSCoordSeq_setY (cs, 0, y);
+			}
+		      geos_item = GEOSGeom_createPoint (cs);
+		  }
+		*(geos_coll + nItem++) = geos_item;
+	    }
+	  ln = ln->Next;
+      }
+    pg = gaia->FirstPolygon;
+    while (pg)
+      {
+	  rng = pg->Exterior;
+	  for (iv = 1; iv < rng->Points; iv++)
+	    {
+		/* exterior ring */
+		z = 0.0;
+		m = 0.0;
+		switch (rng->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		      gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
+		      break;
+		  case GAIA_XY_M:
+		      gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
+		      break;
+		  case GAIA_XY_Z_M:
+		      gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
+		      break;
+		  default:
+		      gaiaGetPoint (rng->Coords, iv, &x, &y);
+		      break;
+		  };
+		if (handle != NULL)
+		  {
+		      cs = GEOSCoordSeq_create_r (handle, 1, dims);
+		      if (dims == 3)
+			{
+			    GEOSCoordSeq_setX_r (handle, cs, 0, x);
+			    GEOSCoordSeq_setY_r (handle, cs, 0, y);
+			    GEOSCoordSeq_setZ_r (handle, cs, 0, z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_setX_r (handle, cs, 0, x);
+			    GEOSCoordSeq_setY_r (handle, cs, 0, y);
+			}
+		      geos_item = GEOSGeom_createPoint_r (handle, cs);
+		  }
+		else
+		  {
+		      cs = GEOSCoordSeq_create (1, dims);
+		      if (dims == 3)
+			{
+			    GEOSCoordSeq_setX (cs, 0, x);
+			    GEOSCoordSeq_setY (cs, 0, y);
+			    GEOSCoordSeq_setZ (cs, 0, z);
+			}
+		      else
+			{
+			    GEOSCoordSeq_setX (cs, 0, x);
+			    GEOSCoordSeq_setY (cs, 0, y);
+			}
+		      geos_item = GEOSGeom_createPoint (cs);
+		  }
+		*(geos_coll + nItem++) = geos_item;
+	    }
+	  for (ib = 0; ib < pg->NumInteriors; ib++)
+	    {
+		/* interior ring */
+		rng = pg->Interiors + ib;
+		for (iv = 1; iv < rng->Points; iv++)
+		  {
+		      /* exterior ring */
+		      z = 0.0;
+		      m = 0.0;
+		      switch (rng->DimensionModel)
+			{
+			case GAIA_XY_Z:
+			    gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
+			    break;
+			case GAIA_XY_M:
+			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
+			    break;
+			case GAIA_XY_Z_M:
+			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
+			    break;
+			default:
+			    gaiaGetPoint (rng->Coords, iv, &x, &y);
+			    break;
+			};
+		      if (handle != NULL)
+			{
+			    cs = GEOSCoordSeq_create_r (handle, 1, dims);
+			    if (dims == 3)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, x);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, 0, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, x);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, y);
+			      }
+			    geos_item = GEOSGeom_createPoint_r (handle, cs);
+			}
+		      else
+			{
+			    cs = GEOSCoordSeq_create (1, dims);
+			    if (dims == 3)
+			      {
+				  GEOSCoordSeq_setX (cs, 0, x);
+				  GEOSCoordSeq_setY (cs, 0, y);
+				  GEOSCoordSeq_setZ (cs, 0, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, 0, x);
+				  GEOSCoordSeq_setY (cs, 0, y);
+			      }
+			    geos_item = GEOSGeom_createPoint (cs);
+			}
+		      *(geos_coll + nItem++) = geos_item;
+		  }
+	    }
+	  pg = pg->Next;
+      }
+    if (handle != NULL)
+      {
+	  geos =
+	      GEOSGeom_createCollection_r (handle, GEOS_MULTIPOINT, geos_coll,
+					   pts);
+	  free (geos_coll);
+	  GEOSSetSRID_r (handle, geos, gaia->Srid);
+      }
+    else
+      {
+	  geos = GEOSGeom_createCollection (GEOS_MULTIPOINT, geos_coll, pts);
+	  free (geos_coll);
+	  GEOSSetSRID (geos, gaia->Srid);
+      }
+    return geos;
+}
+
+static GEOSGeometry *
+buildGeosSegments (GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia)
+{
+/* converting a GAIA Geometry into a GEOS Geometry of SEGMENTS */
+    int segms = 0;
+    unsigned int dims;
+    int iv;
+    int ib;
+    int nItem;
+    double x;
+    double y;
+    double z;
+    double m;
+    double x0;
+    double y0;
+    double z0;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    gaiaRingPtr rng;
+    GEOSGeometry *geos;
+    GEOSGeometry *geos_item;
+    GEOSGeometry **geos_coll;
+    GEOSCoordSequence *cs;
+    if (!gaia)
+	return NULL;
+    ln = gaia->FirstLinestring;
+    while (ln)
+      {
+	  /* counting how many SEGMENTs are there */
+	  segms += ln->Points - 1;
+	  ln = ln->Next;
+      }
+    pg = gaia->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many SEGMENTs are there */
+	  rng = pg->Exterior;
+	  segms += rng->Points - 1;	/* exterior ring */
+	  for (ib = 0; ib < pg->NumInteriors; ib++)
+	    {
+		/* interior ring */
+		rng = pg->Interiors + ib;
+		segms += rng->Points - 1;
+	    }
+	  pg = pg->Next;
+      }
+    if (segms == 0)
+	return NULL;
+    switch (gaia->DimensionModel)
+      {
+      case GAIA_XY_Z:
+      case GAIA_XY_Z_M:
+	  dims = 3;
+	  break;
+      default:
+	  dims = 2;
+	  break;
+      };
+    nItem = 0;
+    geos_coll = malloc (sizeof (GEOSGeometry *) * (segms));
+    ln = gaia->FirstLinestring;
+    while (ln)
+      {
+	  for (iv = 0; iv < ln->Points; iv++)
+	    {
+		z = 0.0;
+		m = 0.0;
+		switch (ln->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		      gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		      break;
+		  case GAIA_XY_M:
+		      gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		      break;
+		  case GAIA_XY_Z_M:
+		      gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		      break;
+		  default:
+		      gaiaGetPoint (ln->Coords, iv, &x, &y);
+		      break;
+		  };
+		if (iv > 0)
+		  {
+		      if (handle != NULL)
+			{
+			    cs = GEOSCoordSeq_create_r (handle, 2, dims);
+			    if (dims == 3)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+				  GEOSCoordSeq_setZ_r (handle, cs, 0, z0);
+				  GEOSCoordSeq_setX_r (handle, cs, 1, x);
+				  GEOSCoordSeq_setY_r (handle, cs, 1, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, 1, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+				  GEOSCoordSeq_setX_r (handle, cs, 1, x);
+				  GEOSCoordSeq_setY_r (handle, cs, 1, y);
+			      }
+			    geos_item =
+				GEOSGeom_createLineString_r (handle, cs);
+			}
+		      else
+			{
+			    cs = GEOSCoordSeq_create (2, dims);
+			    if (dims == 3)
+			      {
+				  GEOSCoordSeq_setX (cs, 0, x0);
+				  GEOSCoordSeq_setY (cs, 0, y0);
+				  GEOSCoordSeq_setZ (cs, 0, z0);
+				  GEOSCoordSeq_setX (cs, 1, x);
+				  GEOSCoordSeq_setY (cs, 1, y);
+				  GEOSCoordSeq_setZ (cs, 1, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, 0, x0);
+				  GEOSCoordSeq_setY (cs, 0, y0);
+				  GEOSCoordSeq_setX (cs, 1, x);
+				  GEOSCoordSeq_setY (cs, 1, y);
+			      }
+			    geos_item = GEOSGeom_createLineString (cs);
+			}
+		      *(geos_coll + nItem++) = geos_item;
+		  }
+		x0 = x;
+		y0 = y;
+		z0 = z;
+	    }
+	  ln = ln->Next;
+      }
+    pg = gaia->FirstPolygon;
+    while (pg)
+      {
+	  rng = pg->Exterior;
+	  for (iv = 0; iv < rng->Points; iv++)
+	    {
+		/* exterior ring */
+		z = 0.0;
+		m = 0.0;
+		switch (rng->DimensionModel)
+		  {
+		  case GAIA_XY_Z:
+		      gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
+		      break;
+		  case GAIA_XY_M:
+		      gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
+		      break;
+		  case GAIA_XY_Z_M:
+		      gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
+		      break;
+		  default:
+		      gaiaGetPoint (rng->Coords, iv, &x, &y);
+		      break;
+		  };
+		if (iv > 0)
+		  {
+		      if (handle != NULL)
+			{
+			    cs = GEOSCoordSeq_create_r (handle, 2, dims);
+			    if (dims == 3)
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+				  GEOSCoordSeq_setZ_r (handle, cs, 0, z0);
+				  GEOSCoordSeq_setX_r (handle, cs, 1, x);
+				  GEOSCoordSeq_setY_r (handle, cs, 1, y);
+				  GEOSCoordSeq_setZ_r (handle, cs, 1, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+				  GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+				  GEOSCoordSeq_setX_r (handle, cs, 1, x);
+				  GEOSCoordSeq_setY_r (handle, cs, 1, y);
+			      }
+			    geos_item =
+				GEOSGeom_createLineString_r (handle, cs);
+			}
+		      else
+			{
+			    cs = GEOSCoordSeq_create (2, dims);
+			    if (dims == 3)
+			      {
+				  GEOSCoordSeq_setX (cs, 0, x0);
+				  GEOSCoordSeq_setY (cs, 0, y0);
+				  GEOSCoordSeq_setZ (cs, 0, z0);
+				  GEOSCoordSeq_setX (cs, 1, x);
+				  GEOSCoordSeq_setY (cs, 1, y);
+				  GEOSCoordSeq_setZ (cs, 1, z);
+			      }
+			    else
+			      {
+				  GEOSCoordSeq_setX (cs, 0, x0);
+				  GEOSCoordSeq_setY (cs, 0, y0);
+				  GEOSCoordSeq_setX (cs, 1, x);
+				  GEOSCoordSeq_setY (cs, 1, y);
+			      }
+			    geos_item = GEOSGeom_createLineString (cs);
+			}
+		      *(geos_coll + nItem++) = geos_item;
+		  }
+		x0 = x;
+		y0 = y;
+		z0 = z;
+	    }
+	  for (ib = 0; ib < pg->NumInteriors; ib++)
+	    {
+		/* interior ring */
+		rng = pg->Interiors + ib;
+		for (iv = 0; iv < rng->Points; iv++)
+		  {
+		      /* exterior ring */
+		      z = 0.0;
+		      m = 0.0;
+		      switch (rng->DimensionModel)
+			{
+			case GAIA_XY_Z:
+			    gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z);
+			    break;
+			case GAIA_XY_M:
+			    gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m);
+			    break;
+			case GAIA_XY_Z_M:
+			    gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m);
+			    break;
+			default:
+			    gaiaGetPoint (rng->Coords, iv, &x, &y);
+			    break;
+			};
+		      if (iv > 0)
+			{
+			    if (handle != NULL)
+			      {
+				  cs = GEOSCoordSeq_create_r (handle, 2, dims);
+				  if (dims == 3)
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+					GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+					GEOSCoordSeq_setZ_r (handle, cs, 0, z0);
+					GEOSCoordSeq_setX_r (handle, cs, 1, x);
+					GEOSCoordSeq_setY_r (handle, cs, 1, y);
+					GEOSCoordSeq_setZ_r (handle, cs, 1, z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX_r (handle, cs, 0, x0);
+					GEOSCoordSeq_setY_r (handle, cs, 0, y0);
+					GEOSCoordSeq_setX_r (handle, cs, 1, x);
+					GEOSCoordSeq_setY_r (handle, cs, 1, y);
+				    }
+				  geos_item =
+				      GEOSGeom_createLineString_r (handle, cs);
+			      }
+			    else
+			      {
+				  cs = GEOSCoordSeq_create (2, dims);
+				  if (dims == 3)
+				    {
+					GEOSCoordSeq_setX (cs, 0, x0);
+					GEOSCoordSeq_setY (cs, 0, y0);
+					GEOSCoordSeq_setZ (cs, 0, z0);
+					GEOSCoordSeq_setX (cs, 1, x);
+					GEOSCoordSeq_setY (cs, 1, y);
+					GEOSCoordSeq_setZ (cs, 1, z);
+				    }
+				  else
+				    {
+					GEOSCoordSeq_setX (cs, 0, x0);
+					GEOSCoordSeq_setY (cs, 0, y0);
+					GEOSCoordSeq_setX (cs, 1, x);
+					GEOSCoordSeq_setY (cs, 1, y);
+				    }
+				  geos_item = GEOSGeom_createLineString (cs);
+			      }
+			    *(geos_coll + nItem++) = geos_item;
+			}
+		      x0 = x;
+		      y0 = y;
+		      z0 = z;
+		  }
+	    }
+	  pg = pg->Next;
+      }
+    if (handle != NULL)
+      {
+	  geos =
+	      GEOSGeom_createCollection_r (handle, GEOS_MULTILINESTRING,
+					   geos_coll, segms);
+	  free (geos_coll);
+	  GEOSSetSRID_r (handle, geos, gaia->Srid);
+      }
+    else
+      {
+	  geos =
+	      GEOSGeom_createCollection (GEOS_MULTILINESTRING, geos_coll,
+					 segms);
+	  free (geos_coll);
+	  GEOSSetSRID (geos, gaia->Srid);
+      }
+    return geos;
+}
+
+static gaiaGeomCollPtr
+gaiaShortestLineCommon (struct splite_internal_cache *cache,
+			gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+/* attempts to compute the the shortest line between two geometries */
+    GEOSGeometry *g1_points;
+    GEOSGeometry *g1_segments;
+    const GEOSGeometry *g1_item;
+    GEOSGeometry *g2_points;
+    GEOSGeometry *g2_segments;
+    const GEOSGeometry *g2_item;
+    const GEOSCoordSequence *cs;
+    GEOSGeometry *g_pt;
+    gaiaGeomCollPtr result;
+    gaiaLinestringPtr ln;
+    int nItems1;
+    int nItems2;
+    int it1;
+    int it2;
+    unsigned int dims;
+    double x_ini;
+    double y_ini;
+    double z_ini;
+    double x_fin;
+    double y_fin;
+    double z_fin;
+    double dist;
+    double min_dist = DBL_MAX;
+    double projection;
+    GEOSContextHandle_t handle = NULL;
+    if (cache != NULL)
+      {
+	  if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	      || cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	      return NULL;
+	  handle = cache->GEOS_handle;
+	  if (handle == NULL)
+	      return NULL;
+      }
+    if (!geom1 || !geom2)
+	return NULL;
+
+    g1_points = buildGeosPoints (handle, geom1);
+    g1_segments = buildGeosSegments (handle, geom1);
+    g2_points = buildGeosPoints (handle, geom2);
+    g2_segments = buildGeosSegments (handle, geom2);
+
+    if (g1_points && g2_points)
+      {
+	  /* computing distances between POINTs */
+	  if (handle != NULL)
+	    {
+		nItems1 = GEOSGetNumGeometries_r (handle, g1_points);
+		nItems2 = GEOSGetNumGeometries_r (handle, g2_points);
+	    }
+	  else
+	    {
+		nItems1 = GEOSGetNumGeometries (g1_points);
+		nItems2 = GEOSGetNumGeometries (g2_points);
+	    }
+	  for (it1 = 0; it1 < nItems1; it1++)
+	    {
+		if (handle != NULL)
+		    g1_item = GEOSGetGeometryN_r (handle, g1_points, it1);
+		else
+		    g1_item = GEOSGetGeometryN (g1_points, it1);
+		for (it2 = 0; it2 < nItems2; it2++)
+		  {
+		      int distret;
+		      if (handle != NULL)
+			{
+			    g2_item =
+				GEOSGetGeometryN_r (handle, g2_points, it2);
+			    distret =
+				GEOSDistance_r (handle, g1_item, g2_item,
+						&dist);
+			}
+		      else
+			{
+			    g2_item = GEOSGetGeometryN (g2_points, it2);
+			    distret = GEOSDistance (g1_item, g2_item, &dist);
+			}
+		      if (distret)
+			{
+			    if (dist < min_dist)
+			      {
+				  /* saving min-dist points */
+				  min_dist = dist;
+				  if (handle != NULL)
+				    {
+					cs = GEOSGeom_getCoordSeq_r (handle,
+								     g1_item);
+					GEOSCoordSeq_getDimensions_r (handle,
+								      cs,
+								      &dims);
+					if (dims == 3)
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   0, &x_ini);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   0, &y_ini);
+					      GEOSCoordSeq_getZ_r (handle, cs,
+								   0, &z_ini);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   0, &x_ini);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   0, &y_ini);
+					      z_ini = 0.0;
+					  }
+					cs = GEOSGeom_getCoordSeq_r (handle,
+								     g2_item);
+					GEOSCoordSeq_getDimensions_r (handle,
+								      cs,
+								      &dims);
+					if (dims == 3)
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   0, &x_fin);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   0, &y_fin);
+					      GEOSCoordSeq_getZ_r (handle, cs,
+								   0, &z_fin);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX_r (handle, cs,
+								   0, &x_fin);
+					      GEOSCoordSeq_getY_r (handle, cs,
+								   0, &y_fin);
+					      z_fin = 0.0;
+					  }
+				    }
+				  else
+				    {
+					cs = GEOSGeom_getCoordSeq (g1_item);
+					GEOSCoordSeq_getDimensions (cs, &dims);
+					if (dims == 3)
+					  {
+					      GEOSCoordSeq_getX (cs, 0, &x_ini);
+					      GEOSCoordSeq_getY (cs, 0, &y_ini);
+					      GEOSCoordSeq_getZ (cs, 0, &z_ini);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX (cs, 0, &x_ini);
+					      GEOSCoordSeq_getY (cs, 0, &y_ini);
+					      z_ini = 0.0;
+					  }
+					cs = GEOSGeom_getCoordSeq (g2_item);
+					GEOSCoordSeq_getDimensions (cs, &dims);
+					if (dims == 3)
+					  {
+					      GEOSCoordSeq_getX (cs, 0, &x_fin);
+					      GEOSCoordSeq_getY (cs, 0, &y_fin);
+					      GEOSCoordSeq_getZ (cs, 0, &z_fin);
+					  }
+					else
+					  {
+					      GEOSCoordSeq_getX (cs, 0, &x_fin);
+					      GEOSCoordSeq_getY (cs, 0, &y_fin);
+					      z_fin = 0.0;
+					  }
+				    }
+			      }
+			}
+		  }
+	    }
+      }
+
+    if (g1_points && g2_segments)
+      {
+	  /* computing distances between POINTs (g1) and SEGMENTs (g2) */
+	  if (handle != NULL)
+	    {
+		nItems1 = GEOSGetNumGeometries_r (handle, g1_points);
+		nItems2 = GEOSGetNumGeometries_r (handle, g2_segments);
+	    }
+	  else
+	    {
+		nItems1 = GEOSGetNumGeometries (g1_points);
+		nItems2 = GEOSGetNumGeometries (g2_segments);
+	    }
+	  for (it1 = 0; it1 < nItems1; it1++)
+	    {
+		if (handle != NULL)
+		    g1_item = GEOSGetGeometryN_r (handle, g1_points, it1);
+		else
+		    g1_item = GEOSGetGeometryN (g1_points, it1);
+		for (it2 = 0; it2 < nItems2; it2++)
+		  {
+		      int distret;
+		      if (handle != NULL)
+			{
+			    g2_item =
+				GEOSGetGeometryN_r (handle, g2_segments, it2);
+			    distret =
+				GEOSDistance_r (handle, g1_item, g2_item,
+						&dist);
+			}
+		      else
+			{
+			    g2_item = GEOSGetGeometryN (g2_segments, it2);
+			    distret = GEOSDistance (g1_item, g2_item, &dist);
+			}
+		      if (distret)
+			{
+			    if (dist < min_dist)
+			      {
+				  /* saving min-dist points */
+				  if (handle != NULL)
+				    {
+					projection =
+					    GEOSProject_r (handle, g2_item,
+							   g1_item);
+					g_pt =
+					    GEOSInterpolate_r (handle, g2_item,
+							       projection);
+					if (g_pt)
+					  {
+					      min_dist = dist;
+					      cs = GEOSGeom_getCoordSeq_r
+						  (handle, g1_item);
+					      GEOSCoordSeq_getDimensions_r
+						  (handle, cs, &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_ini);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_ini);
+						    GEOSCoordSeq_getZ_r (handle,
+									 cs, 0,
+									 &z_ini);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_ini);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_ini);
+						    z_ini = 0.0;
+						}
+					      cs = GEOSGeom_getCoordSeq_r
+						  (handle, g_pt);
+					      GEOSCoordSeq_getDimensions_r
+						  (handle, cs, &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_fin);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_fin);
+						    GEOSCoordSeq_getZ_r (handle,
+									 cs, 0,
+									 &z_fin);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_fin);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_fin);
+						    z_fin = 0.0;
+						}
+					      GEOSGeom_destroy_r (handle, g_pt);
+					  }
+				    }
+				  else
+				    {
+					projection =
+					    GEOSProject (g2_item, g1_item);
+					g_pt =
+					    GEOSInterpolate (g2_item,
+							     projection);
+					if (g_pt)
+					  {
+					      min_dist = dist;
+					      cs = GEOSGeom_getCoordSeq
+						  (g1_item);
+					      GEOSCoordSeq_getDimensions (cs,
+									  &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_ini);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_ini);
+						    GEOSCoordSeq_getZ (cs, 0,
+								       &z_ini);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_ini);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_ini);
+						    z_ini = 0.0;
+						}
+					      cs = GEOSGeom_getCoordSeq (g_pt);
+					      GEOSCoordSeq_getDimensions (cs,
+									  &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_fin);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_fin);
+						    GEOSCoordSeq_getZ (cs, 0,
+								       &z_fin);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_fin);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_fin);
+						    z_fin = 0.0;
+						}
+					      GEOSGeom_destroy (g_pt);
+					  }
+				    }
+			      }
+			}
+		  }
+	    }
+      }
+
+    if (g1_segments && g2_points)
+      {
+	  /* computing distances between SEGMENTs (g1) and POINTs (g2) */
+	  if (handle != NULL)
+	    {
+		nItems1 = GEOSGetNumGeometries_r (handle, g1_segments);
+		nItems2 = GEOSGetNumGeometries_r (handle, g2_points);
+	    }
+	  else
+	    {
+		nItems1 = GEOSGetNumGeometries (g1_segments);
+		nItems2 = GEOSGetNumGeometries (g2_points);
+	    }
+	  for (it1 = 0; it1 < nItems1; it1++)
+	    {
+		if (handle != NULL)
+		    g1_item = GEOSGetGeometryN_r (handle, g1_segments, it1);
+		else
+		    g1_item = GEOSGetGeometryN (g1_segments, it1);
+		for (it2 = 0; it2 < nItems2; it2++)
+		  {
+		      int distret;
+		      if (handle != NULL)
+			{
+			    g2_item =
+				GEOSGetGeometryN_r (handle, g2_points, it2);
+			    distret =
+				GEOSDistance_r (handle, g1_item, g2_item,
+						&dist);
+			}
+		      else
+			{
+			    g2_item = GEOSGetGeometryN (g2_points, it2);
+			    distret = GEOSDistance (g1_item, g2_item, &dist);
+			}
+		      if (distret)
+			{
+			    if (dist < min_dist)
+			      {
+				  /* saving min-dist points */
+				  if (handle != NULL)
+				    {
+					projection =
+					    GEOSProject_r (handle, g1_item,
+							   g2_item);
+					g_pt =
+					    GEOSInterpolate_r (handle, g1_item,
+							       projection);
+					if (g_pt)
+					  {
+					      min_dist = dist;
+					      cs = GEOSGeom_getCoordSeq_r
+						  (handle, g_pt);
+					      GEOSCoordSeq_getDimensions_r
+						  (handle, cs, &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_ini);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_ini);
+						    GEOSCoordSeq_getZ_r (handle,
+									 cs, 0,
+									 &z_ini);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_ini);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_ini);
+						    z_ini = 0.0;
+						}
+					      cs = GEOSGeom_getCoordSeq_r
+						  (handle, g2_item);
+					      GEOSCoordSeq_getDimensions_r
+						  (handle, cs, &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_fin);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_fin);
+						    GEOSCoordSeq_getZ_r (handle,
+									 cs, 0,
+									 &z_fin);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX_r (handle,
+									 cs, 0,
+									 &x_fin);
+						    GEOSCoordSeq_getY_r (handle,
+									 cs, 0,
+									 &y_fin);
+						    z_fin = 0.0;
+						}
+					      GEOSGeom_destroy_r (handle, g_pt);
+					  }
+				    }
+				  else
+				    {
+					projection =
+					    GEOSProject (g1_item, g2_item);
+					g_pt =
+					    GEOSInterpolate (g1_item,
+							     projection);
+					if (g_pt)
+					  {
+					      min_dist = dist;
+					      cs = GEOSGeom_getCoordSeq (g_pt);
+					      GEOSCoordSeq_getDimensions (cs,
+									  &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_ini);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_ini);
+						    GEOSCoordSeq_getZ (cs, 0,
+								       &z_ini);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_ini);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_ini);
+						    z_ini = 0.0;
+						}
+					      cs = GEOSGeom_getCoordSeq
+						  (g2_item);
+					      GEOSCoordSeq_getDimensions (cs,
+									  &dims);
+					      if (dims == 3)
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_fin);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_fin);
+						    GEOSCoordSeq_getZ (cs, 0,
+								       &z_fin);
+						}
+					      else
+						{
+						    GEOSCoordSeq_getX (cs, 0,
+								       &x_fin);
+						    GEOSCoordSeq_getY (cs, 0,
+								       &y_fin);
+						    z_fin = 0.0;
+						}
+					      GEOSGeom_destroy (g_pt);
+					  }
+				    }
+			      }
+			}
+		  }
+	    }
+      }
+    if (handle != NULL)
+      {
+	  if (g1_points)
+	      GEOSGeom_destroy_r (handle, g1_points);
+	  if (g1_segments)
+	      GEOSGeom_destroy_r (handle, g1_segments);
+	  if (g2_points)
+	      GEOSGeom_destroy_r (handle, g2_points);
+	  if (g2_segments)
+	      GEOSGeom_destroy_r (handle, g2_segments);
+      }
+    else
+      {
+	  if (g1_points)
+	      GEOSGeom_destroy (g1_points);
+	  if (g1_segments)
+	      GEOSGeom_destroy (g1_segments);
+	  if (g2_points)
+	      GEOSGeom_destroy (g2_points);
+	  if (g2_segments)
+	      GEOSGeom_destroy (g2_segments);
+      }
+    if (min_dist == DBL_MAX || min_dist <= 0.0)
+	return NULL;
+
+/* building the shortest line */
+    switch (geom1->DimensionModel)
+      {
+      case GAIA_XY_Z:
+	  result = gaiaAllocGeomCollXYZ ();
+	  break;
+      case GAIA_XY_M:
+	  result = gaiaAllocGeomCollXYM ();
+	  break;
+      case GAIA_XY_Z_M:
+	  result = gaiaAllocGeomCollXYZM ();
+	  break;
+      default:
+	  result = gaiaAllocGeomColl ();
+	  break;
+      };
+    result->Srid = geom1->Srid;
+    ln = gaiaAddLinestringToGeomColl (result, 2);
+    switch (ln->DimensionModel)
+      {
+      case GAIA_XY_Z:
+	  gaiaSetPointXYZ (ln->Coords, 0, x_ini, y_ini, z_ini);
+	  gaiaSetPointXYZ (ln->Coords, 1, x_fin, y_fin, z_fin);
+	  break;
+      case GAIA_XY_M:
+	  gaiaSetPointXYM (ln->Coords, 0, x_ini, y_ini, 0.0);
+	  gaiaSetPointXYM (ln->Coords, 1, x_fin, y_fin, 0.0);
+	  break;
+      case GAIA_XY_Z_M:
+	  gaiaSetPointXYZM (ln->Coords, 0, x_ini, y_ini, z_ini, 0.0);
+	  gaiaSetPointXYZM (ln->Coords, 1, x_fin, y_fin, z_fin, 0.0);
+	  break;
+      default:
+	  gaiaSetPoint (ln->Coords, 0, x_ini, y_ini);
+	  gaiaSetPoint (ln->Coords, 1, x_fin, y_fin);
+	  break;
+      };
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+    gaiaResetGeosMsg ();
+    return gaiaShortestLineCommon (NULL, geom1, geom2);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaShortestLine_r (const void *p_cache, gaiaGeomCollPtr geom1,
+		    gaiaGeomCollPtr geom2)
+{
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    return gaiaShortestLineCommon (cache, geom1, geom2);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
+{
+/* attempts to "snap" geom1 on geom2 using the given tolerance */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    gaiaGeomCollPtr result;
+    gaiaResetGeosMsg ();
+    if (!geom1 || !geom2)
+	return NULL;
+
+    g1 = gaiaToGeos (geom1);
+    g2 = gaiaToGeos (geom2);
+    g3 = GEOSSnap (g1, g2, tolerance);
+    GEOSGeom_destroy (g1);
+    GEOSGeom_destroy (g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g3);
+    else
+	result = gaiaFromGeos_XY (g3);
+    GEOSGeom_destroy (g3);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom1->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaSnap_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2,
+	    double tolerance)
+{
+/* attempts to "snap" geom1 on geom2 using the given tolerance */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    GEOSGeometry *g3;
+    gaiaGeomCollPtr result;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom1 || !geom2)
+	return NULL;
+
+    g1 = gaiaToGeos_r (cache, geom1);
+    g2 = gaiaToGeos_r (cache, geom2);
+    g3 = GEOSSnap_r (handle, g1, g2, tolerance);
+    GEOSGeom_destroy_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g2);
+    if (!g3)
+	return NULL;
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g3);
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g3);
+    else
+	result = gaiaFromGeos_XY_r (cache, g3);
+    GEOSGeom_destroy_r (handle, g3);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom1->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineMerge (gaiaGeomCollPtr geom)
+{
+/* attempts to reassemble lines from a collection of sparse fragments */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic (geom))
+	return NULL;
+
+    g1 = gaiaToGeos (geom);
+    g2 = GEOSLineMerge (g1);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g2);
+    else
+	result = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLineMerge_r (const void *p_cache, gaiaGeomCollPtr geom)
+{
+/* attempts to reassemble lines from a collection of sparse fragments */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSLineMerge_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	result = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaUnaryUnion (gaiaGeomCollPtr geom)
+{
+/* Unary Union (single Collection) */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic (geom))
+	return NULL;
+    g1 = gaiaToGeos (geom);
+    g2 = GEOSUnaryUnion (g1);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g2);
+    else
+	result = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaUnaryUnion_r (const void *p_cache, gaiaGeomCollPtr geom)
+{
+/* Unary Union (single Collection) */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    if (gaiaIsToxic_r (cache, geom))
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSUnaryUnion_r (handle, g1);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	result = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    return result;
+}
+
+static void
+rotateRingBeforeCut (gaiaLinestringPtr ln, gaiaPointPtr node)
+{
+/* rotating a Ring, so to ensure that Start/End points match the node */
+    int io = 0;
+    int iv;
+    int copy = 0;
+    int base_idx = -1;
+    double x;
+    double y;
+    double z;
+    double m;
+    gaiaLinestringPtr new_ln = NULL;
+
+    if (ln->DimensionModel == GAIA_XY_Z)
+	new_ln = gaiaAllocLinestringXYZ (ln->Points);
+    else if (ln->DimensionModel == GAIA_XY_M)
+	new_ln = gaiaAllocLinestringXYM (ln->Points);
+    else if (ln->DimensionModel == GAIA_XY_Z_M)
+	new_ln = gaiaAllocLinestringXYZM (ln->Points);
+    else
+	new_ln = gaiaAllocLinestring (ln->Points);
+
+/* first pass */
+    for (iv = 0; iv < ln->Points; iv++)
+      {
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+	    }
+	  if (!copy)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z
+		    || ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      if (node->X == x && node->Y == y && node->Z == z)
+			{
+			    base_idx = iv;
+			    copy = 1;
+			}
+		  }
+		else if (node->X == x && node->Y == y)
+		  {
+		      base_idx = iv;
+		      copy = 1;
+		  }
+	    }
+	  if (copy)
+	    {
+		/* copying points */
+		if (ln->DimensionModel == GAIA_XY_Z)
+		  {
+		      gaiaSetPointXYZ (new_ln->Coords, io, x, y, z);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_M)
+		  {
+		      gaiaSetPointXYM (new_ln->Coords, io, x, y, m);
+		  }
+		else if (ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m);
+		  }
+		else
+		  {
+		      gaiaSetPoint (new_ln->Coords, io, x, y);
+		  }
+		io++;
+	    }
+      }
+    if (base_idx <= 0)
+      {
+	  gaiaFreeLinestring (new_ln);
+	  return;
+      }
+
+/* second pass */
+    for (iv = 1; iv <= base_idx; iv++)
+      {
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+	    }
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaSetPointXYZ (new_ln->Coords, io, x, y, z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaSetPointXYM (new_ln->Coords, io, x, y, m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m);
+	    }
+	  else
+	    {
+		gaiaSetPoint (new_ln->Coords, io, x, y);
+	    }
+	  io++;
+      }
+
+/* copying back */
+    for (iv = 0; iv < new_ln->Points; iv++)
+      {
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (new_ln->Coords, iv, &x, &y, &z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (new_ln->Coords, iv, &x, &y, &m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (new_ln->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (new_ln->Coords, iv, &x, &y);
+	    }
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaSetPointXYZ (ln->Coords, iv, x, y, z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaSetPointXYM (ln->Coords, iv, x, y, m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m);
+	    }
+	  else
+	    {
+		gaiaSetPoint (ln->Coords, iv, x, y);
+	    }
+      }
+    gaiaFreeLinestring (new_ln);
+}
+
+static void
+extractSubLine (gaiaGeomCollPtr result, gaiaLinestringPtr ln, int i_start,
+		int i_end)
+{
+/* extracting s SubLine */
+    int iv;
+    int io = 0;
+    int pts = i_end - i_start + 1;
+    gaiaLinestringPtr new_ln = NULL;
+    double x;
+    double y;
+    double z;
+    double m;
+
+    new_ln = gaiaAddLinestringToGeomColl (result, pts);
+
+    for (iv = i_start; iv <= i_end; iv++)
+      {
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+	    }
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaSetPointXYZ (new_ln->Coords, io, x, y, z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaSetPointXYM (new_ln->Coords, io, x, y, m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m);
+	    }
+	  else
+	    {
+		gaiaSetPoint (new_ln->Coords, io, x, y);
+	    }
+	  io++;
+      }
+}
+
+static void
+cutLineAtNodes (gaiaLinestringPtr ln, gaiaPointPtr pt_base,
+		gaiaGeomCollPtr result)
+{
+/* attempts to cut a single Line accordingly to given nodes */
+    int closed = 0;
+    int match = 0;
+    int iv;
+    int i_start;
+    double x;
+    double y;
+    double z;
+    double m;
+    gaiaPointPtr pt;
+    gaiaPointPtr node = NULL;
+
+    if (gaiaIsClosed (ln))
+	closed = 1;
+/* pre-check */
+    for (iv = 0; iv < ln->Points; iv++)
+      {
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+	    }
+	  pt = pt_base;
+	  while (pt)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z
+		    || ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      if (pt->X == x && pt->Y == y && pt->Z == z)
+			{
+			    node = pt;
+			    match++;
+			}
+		  }
+		else if (pt->X == x && pt->Y == y)
+		  {
+		      node = pt;
+		      match++;
+		  }
+		pt = pt->Next;
+	    }
+      }
+
+    if (closed && node)
+	rotateRingBeforeCut (ln, node);
+
+    i_start = 0;
+    for (iv = 1; iv < ln->Points - 1; iv++)
+      {
+	  /* identifying sub-linestrings */
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+	    }
+	  match = 0;
+	  pt = pt_base;
+	  while (pt)
+	    {
+		if (ln->DimensionModel == GAIA_XY_Z
+		    || ln->DimensionModel == GAIA_XY_Z_M)
+		  {
+		      if (pt->X == x && pt->Y == y && pt->Z == z)
+			{
+			    match = 1;
+			    break;
+			}
+		  }
+		else if (pt->X == x && pt->Y == y)
+		  {
+		      match = 1;
+		      break;
+		  }
+		pt = pt->Next;
+	    }
+	  if (match)
+	    {
+		/* cutting the line */
+		extractSubLine (result, ln, i_start, iv);
+		i_start = iv;
+	    }
+      }
+    if (i_start != 0 && i_start != ln->Points - 1)
+      {
+	  /* extracting the last SubLine */
+	  extractSubLine (result, ln, i_start, ln->Points - 1);
+      }
+    else
+      {
+	  /* cloning the untouched Line */
+	  extractSubLine (result, ln, 0, ln->Points - 1);
+      }
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
+{
+/* attempts to cut lines accordingly to nodes */
+    int pts1 = 0;
+    int lns1 = 0;
+    int pgs1 = 0;
+    int pts2 = 0;
+    int lns2 = 0;
+    int pgs2 = 0;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    gaiaGeomCollPtr result = NULL;
+
+    if (!geom1)
+	return NULL;
+    if (!geom2)
+	return NULL;
+
+/* both Geometryes should have identical Dimensions */
+    if (geom1->DimensionModel != geom2->DimensionModel)
+	return NULL;
+
+    pt = geom1->FirstPoint;
+    while (pt)
+      {
+	  pts1++;
+	  pt = pt->Next;
+      }
+    ln = geom1->FirstLinestring;
+    while (ln)
+      {
+	  lns1++;
+	  ln = ln->Next;
+      }
+    pg = geom1->FirstPolygon;
+    while (pg)
+      {
+	  pgs1++;
+	  pg = pg->Next;
+      }
+    pt = geom2->FirstPoint;
+    while (pt)
+      {
+	  pts2++;
+	  pt = pt->Next;
+      }
+    ln = geom2->FirstLinestring;
+    while (ln)
+      {
+	  lns2++;
+	  ln = ln->Next;
+      }
+    pg = geom2->FirstPolygon;
+    while (pg)
+      {
+	  pgs2++;
+	  pg = pg->Next;
+      }
+
+/* the first Geometry is expected to contain one or more Linestring(s) */
+    if (pts1 == 0 && lns1 > 0 && pgs1 == 0)
+	;
+    else
+	return NULL;
+/* the second Geometry is expected to contain one or more Point(s) */
+    if (pts2 > 0 && lns2 == 0 && pgs2 == 0)
+	;
+    else
+	return NULL;
+
+/* attempting to cut Lines accordingly to Nodes */
+    if (geom1->DimensionModel == GAIA_XY_Z)
+	result = gaiaAllocGeomCollXYZ ();
+    else if (geom1->DimensionModel == GAIA_XY_M)
+	result = gaiaAllocGeomCollXYM ();
+    else if (geom1->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaAllocGeomCollXYZM ();
+    else
+	result = gaiaAllocGeomColl ();
+    ln = geom1->FirstLinestring;
+    while (ln)
+      {
+	  cutLineAtNodes (ln, geom2->FirstPoint, result);
+	  ln = ln->Next;
+      }
+    if (result->FirstLinestring == NULL)
+      {
+	  gaiaFreeGeomColl (result);
+	  return NULL;
+      }
+    result->Srid = geom1->Srid;
+    return result;
+}
+
+#ifdef GEOS_ADVANCED		/* GEOS advanced features - 3.4.0 */
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance,
+			   int only_edges)
+{
+/* Delaunay Triangulation */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+    g1 = gaiaToGeos (geom);
+    g2 = GEOSDelaunayTriangulation (g1, tolerance, only_edges);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g2);
+    else
+	result = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    if (only_edges)
+	result->DeclaredType = GAIA_MULTILINESTRING;
+    else
+	result->DeclaredType = GAIA_MULTIPOLYGON;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaDelaunayTriangulation_r (const void *p_cache, gaiaGeomCollPtr geom,
+			     double tolerance, int only_edges)
+{
+/* Delaunay Triangulation */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, only_edges);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	result = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (result == NULL)
+	return NULL;
+    result->Srid = geom->Srid;
+    if (only_edges)
+	result->DeclaredType = GAIA_MULTILINESTRING;
+    else
+	result->DeclaredType = GAIA_MULTIPOLYGON;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size,
+		    double tolerance, int only_edges)
+{
+/* Voronoj Diagram */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaPolygonPtr pg;
+    int pgs = 0;
+    int errs = 0;
+    void *voronoj;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+    g1 = gaiaToGeos (geom);
+    g2 = GEOSDelaunayTriangulation (g1, tolerance, 0);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g2);
+    else
+	result = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (result == NULL)
+	return NULL;
+    pg = result->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many triangles are in Delaunay */
+	  if (delaunay_triangle_check (pg))
+	      pgs++;
+	  else
+	      errs++;
+	  pg = pg->Next;
+      }
+    if (pgs == 0 || errs)
+      {
+	  gaiaFreeGeomColl (result);
+	  return NULL;
+      }
+
+/* building the Voronoj Diagram from Delaunay */
+    voronoj = voronoj_build (pgs, result->FirstPolygon, extra_frame_size);
+    gaiaFreeGeomColl (result);
+
+/* creating the Geometry representing Voronoj */
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaAllocGeomCollXYZ ();
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaAllocGeomCollXYM ();
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaAllocGeomCollXYZM ();
+    else
+	result = gaiaAllocGeomColl ();
+    result = voronoj_export (voronoj, result, only_edges);
+    voronoj_free (voronoj);
+
+    result->Srid = geom->Srid;
+    if (only_edges)
+	result->DeclaredType = GAIA_MULTILINESTRING;
+    else
+	result->DeclaredType = GAIA_MULTIPOLYGON;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaVoronojDiagram_r (const void *p_cache, gaiaGeomCollPtr geom,
+		      double extra_frame_size, double tolerance, int only_edges)
+{
+/* Voronoj Diagram */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaPolygonPtr pg;
+    int pgs = 0;
+    int errs = 0;
+    void *voronoj;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, 0);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	result = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (result == NULL)
+	return NULL;
+    pg = result->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many triangles are in Delaunay */
+	  if (delaunay_triangle_check (pg))
+	      pgs++;
+	  else
+	      errs++;
+	  pg = pg->Next;
+      }
+    if (pgs == 0 || errs)
+      {
+	  gaiaFreeGeomColl (result);
+	  return NULL;
+      }
+
+/* building the Voronoj Diagram from Delaunay */
+    voronoj =
+	voronoj_build_r (cache, pgs, result->FirstPolygon, extra_frame_size);
+    gaiaFreeGeomColl (result);
+
+/* creating the Geometry representing Voronoj */
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaAllocGeomCollXYZ ();
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaAllocGeomCollXYM ();
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaAllocGeomCollXYZM ();
+    else
+	result = gaiaAllocGeomColl ();
+    result = voronoj_export_r (cache, voronoj, result, only_edges);
+    voronoj_free (voronoj);
+
+    result->Srid = geom->Srid;
+    if (only_edges)
+	result->DeclaredType = GAIA_MULTILINESTRING;
+    else
+	result->DeclaredType = GAIA_MULTIPOLYGON;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance,
+		 int allow_holes)
+{
+/* Concave Hull */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr concave_hull;
+    gaiaPolygonPtr pg;
+    int pgs = 0;
+    int errs = 0;
+    gaiaResetGeosMsg ();
+    if (!geom)
+	return NULL;
+    g1 = gaiaToGeos (geom);
+    g2 = GEOSDelaunayTriangulation (g1, tolerance, 0);
+    GEOSGeom_destroy (g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ (g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM (g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM (g2);
+    else
+	result = gaiaFromGeos_XY (g2);
+    GEOSGeom_destroy (g2);
+    if (result == NULL)
+	return NULL;
+    pg = result->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many triangles are in Delaunay */
+	  if (delaunay_triangle_check (pg))
+	      pgs++;
+	  else
+	      errs++;
+	  pg = pg->Next;
+      }
+    if (pgs == 0 || errs)
+      {
+	  gaiaFreeGeomColl (result);
+	  return NULL;
+      }
+
+/* building the Concave Hull from Delaunay */
+    concave_hull =
+	concave_hull_build (result->FirstPolygon, geom->DimensionModel, factor,
+			    allow_holes);
+    gaiaFreeGeomColl (result);
+    if (!concave_hull)
+	return NULL;
+    result = concave_hull;
+
+    result->Srid = geom->Srid;
+    return result;
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaConcaveHull_r (const void *p_cache, gaiaGeomCollPtr geom, double factor,
+		   double tolerance, int allow_holes)
+{
+/* Concave Hull */
+    GEOSGeometry *g1;
+    GEOSGeometry *g2;
+    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr concave_hull;
+    gaiaPolygonPtr pg;
+    int pgs = 0;
+    int errs = 0;
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    GEOSContextHandle_t handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->GEOS_handle;
+    if (handle == NULL)
+	return NULL;
+    gaiaResetGeosMsg_r (cache);
+    if (!geom)
+	return NULL;
+    g1 = gaiaToGeos_r (cache, geom);
+    g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, 0);
+    GEOSGeom_destroy_r (handle, g1);
+    if (!g2)
+	return NULL;
+    if (geom->DimensionModel == GAIA_XY_Z)
+	result = gaiaFromGeos_XYZ_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_M)
+	result = gaiaFromGeos_XYM_r (cache, g2);
+    else if (geom->DimensionModel == GAIA_XY_Z_M)
+	result = gaiaFromGeos_XYZM_r (cache, g2);
+    else
+	result = gaiaFromGeos_XY_r (cache, g2);
+    GEOSGeom_destroy_r (handle, g2);
+    if (result == NULL)
+	return NULL;
+    pg = result->FirstPolygon;
+    while (pg)
+      {
+	  /* counting how many triangles are in Delaunay */
+	  if (delaunay_triangle_check (pg))
+	      pgs++;
+	  else
+	      errs++;
+	  pg = pg->Next;
+      }
+    if (pgs == 0 || errs)
+      {
+	  gaiaFreeGeomColl (result);
+	  return NULL;
+      }
+
+/* building the Concave Hull from Delaunay */
+    concave_hull =
+	concave_hull_build_r (p_cache, result->FirstPolygon,
+			      geom->DimensionModel, factor, allow_holes);
+    gaiaFreeGeomColl (result);
+    if (!concave_hull)
+	return NULL;
+    result = concave_hull;
+
+    result->Srid = geom->Srid;
+    return result;
+}
+
+#endif /* end GEOS advanced features */
+
+#endif /* end including GEOS */
diff --git a/src/gaiageo/gg_shape.c b/src/gaiageo/gg_shape.c
index ff44b66..3a4b3c4 100644
--- a/src/gaiageo/gg_shape.c
+++ b/src/gaiageo/gg_shape.c
@@ -83,6 +83,7 @@ extern const char *locale_charset (void);
 #include <spatialite/sqlite.h>
 
 #include <spatialite/gaiageo.h>
+#include <spatialite/debug.h>
 
 #ifdef _WIN32
 #define atoll	_atoi64
@@ -530,8 +531,41 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom,
     rd = fread (bf, sizeof (unsigned char), 32, fl_dbf);
     if (rd != 32)
 	goto error;
-    if (*bf != 0x03)		/* checks the DBF magic number */
-	goto error;
+    switch (*bf)
+      {
+	  /* checks the DBF magic number */
+      case 0x03:
+      case 0x83:
+	  break;
+      case 0x02:
+      case 0xF8:
+	  sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxBASE format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      case 0xF5:
+	  sprintf (errMsg,
+		   "'%s'\ninvalid magic number %02x [FoxPro 2.x (or earlier) format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      case 0x30:
+      case 0x31:
+      case 0x32:
+	  sprintf (errMsg,
+		   "'%s'\ninvalid magic number %02x [Visual FoxPro format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      case 0x43:
+      case 0x63:
+      case 0xBB:
+      case 0xCB:
+	  sprintf (errMsg, "'%s'\ninvalid magic number %02x [dBASE IV format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      default:
+	  sprintf (errMsg, "'%s'\ninvalid magic number %02x [unknown format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      };
     dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch);
     dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch);
     dbf_size--;
@@ -543,6 +577,17 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom,
 	  rd = fread (bf, sizeof (unsigned char), 32, fl_dbf);
 	  if (rd != 32)
 	      goto error;
+	  if (*(bf + 11) == 'M')
+	    {
+		/* skipping any MEMO field */
+		memcpy (field_name, bf, 11);
+		field_name[11] = '\0';
+		off_dbf += *(bf + 16);
+		spatialite_e
+		    ("WARNING: column \"%s\" is of the MEMO type and will be ignored\n",
+		     field_name);
+		continue;
+	    }
 	  memcpy (field_name, bf, 11);
 	  field_name[11] = '\0';
 	  len = strlen ((char *) field_name);
@@ -648,6 +693,20 @@ gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom,
     if (fl_dbf)
 	fclose (fl_dbf);
     return;
+  dbf_bad_magic:
+/* the DBF has an invalid magin number */
+    if (shp->LastError)
+	free (shp->LastError);
+    len = strlen (errMsg);
+    shp->LastError = malloc (len + 1);
+    strcpy (shp->LastError, errMsg);
+    gaiaFreeDbfList (dbf_list);
+    if (buf_shp)
+	free (buf_shp);
+    fclose (fl_shx);
+    fclose (fl_shp);
+    fclose (fl_dbf);
+    return;
   error:
 /* the shapefile is invalid or corrupted */
     if (shp->LastError)
@@ -1256,6 +1315,11 @@ parseDbfField (unsigned char *buf_dbf, void *iconv_obj, gaiaDbfFieldPtr pFld)
 		else
 		    gaiaSetIntValue (pFld, atoll ((char *) buf));
 	    }
+	  else if (pFld->Type == 'M')
+	    {
+		/* MEMO value - assumed to always be NULL */
+		gaiaSetNullValue (pFld);
+	    }
 	  else if (pFld->Type == 'F')
 	    {
 		/* FLOAT value */
@@ -4629,8 +4693,41 @@ gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom,
     rd = fread (bf, sizeof (unsigned char), 32, fl_dbf);
     if (rd != 32)
 	goto error;
-    if (*bf != 0x03)		/* checks the DBF magic number */
-	goto error;
+    switch (*bf)
+      {
+	  /* checks the DBF magic number */
+      case 0x03:
+      case 0x83:
+	  break;
+      case 0x02:
+      case 0xF8:
+	  sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxBASE format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      case 0xF5:
+	  sprintf (errMsg,
+		   "'%s'\ninvalid magic number %02x [FoxPro 2.x (or earlier) format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      case 0x30:
+      case 0x31:
+      case 0x32:
+	  sprintf (errMsg,
+		   "'%s'\ninvalid magic number %02x [Visual FoxPro format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      case 0x43:
+      case 0x63:
+      case 0xBB:
+      case 0xCB:
+	  sprintf (errMsg, "'%s'\ninvalid magic number %02x [dBASE IV format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      default:
+	  sprintf (errMsg, "'%s'\ninvalid magic number %02x [unknown format]",
+		   path, *bf);
+	  goto dbf_bad_magic;
+      };
     dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch);
     dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch);
     dbf_size--;
@@ -4642,6 +4739,17 @@ gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom,
 	  rd = fread (bf, sizeof (unsigned char), 32, fl_dbf);
 	  if (rd != 32)
 	      goto error;
+	  if (*(bf + 11) == 'M')
+	    {
+		/* skipping any MEMO field */
+		memcpy (field_name, bf, 11);
+		field_name[11] = '\0';
+		off_dbf += *(bf + 16);
+		spatialite_e
+		    ("WARNING: column \"%s\" is of the MEMO type and will be ignored\n",
+		     field_name);
+		continue;
+	    }
 	  memcpy (field_name, bf, 11);
 	  field_name[11] = '\0';
 	  len = strlen ((char *) field_name);
@@ -4704,6 +4812,16 @@ gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom,
     gaiaFreeDbfList (dbf_list);
     fclose (fl_dbf);
     return;
+  dbf_bad_magic:
+/* the DBF has an invalid magic number */
+    if (dbf->LastError)
+	free (dbf->LastError);
+    len = strlen (errMsg);
+    dbf->LastError = malloc (len + 1);
+    strcpy (dbf->LastError, errMsg);
+    gaiaFreeDbfList (dbf_list);
+    fclose (fl_dbf);
+    return;
   illegal_dbf:
 /* the DBF-file contains unsupported data types */
     if (dbf->LastError)
diff --git a/src/gaiageo/gg_transform.c b/src/gaiageo/gg_transform.c
index 2ebd8f5..01f0e94 100644
--- a/src/gaiageo/gg_transform.c
+++ b/src/gaiageo/gg_transform.c
@@ -58,6 +58,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #endif
 
 #include <spatialite/sqlite.h>
+#include <spatialite_private.h>
 
 #include <spatialite/gaiageo.h>
 
@@ -1589,8 +1590,9 @@ gaiaDegsToRads (double degs)
     return degs * DEG_TO_RAD;
 }
 
-GAIAGEO_DECLARE gaiaGeomCollPtr
-gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to)
+static gaiaGeomCollPtr
+gaiaTransformCommon (projCtx handle, gaiaGeomCollPtr org, char *proj_from,
+		     char *proj_to)
 {
 /* creates a new GEOMETRY reprojecting coordinates from the original one */
     int ib;
@@ -1614,9 +1616,19 @@ gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to)
     gaiaPolygonPtr dst_pg;
     gaiaRingPtr rng;
     gaiaRingPtr dst_rng;
-    projPJ from_cs = pj_init_plus (proj_from);
-    projPJ to_cs = pj_init_plus (proj_to);
+    projPJ from_cs;
+    projPJ to_cs;
     gaiaGeomCollPtr dst;
+    if (handle != NULL)
+      {
+	  from_cs = pj_init_plus_ctx (handle, proj_from);
+	  to_cs = pj_init_plus_ctx (handle, proj_to);
+      }
+    else
+      {
+	  from_cs = pj_init_plus (proj_from);
+	  to_cs = pj_init_plus (proj_to);
+      }
     if (!from_cs)
       {
 	  if (to_cs)
@@ -2101,4 +2113,28 @@ gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to)
     return dst;
 }
 
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to)
+{
+    return gaiaTransformCommon (NULL, org, proj_from, proj_to);
+}
+
+GAIAGEO_DECLARE gaiaGeomCollPtr
+gaiaTransform_r (const void *p_cache, gaiaGeomCollPtr org, char *proj_from,
+		 char *proj_to)
+{
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
+    projCtx handle = NULL;
+    if (cache == NULL)
+	return NULL;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return NULL;
+    handle = cache->PROJ_handle;
+    if (handle == NULL)
+	return NULL;
+    return gaiaTransformCommon (handle, org, proj_from, proj_to);
+}
+
 #endif /* end including PROJ.4 */
diff --git a/src/gaiageo/gg_vanuatu.c b/src/gaiageo/gg_vanuatu.c
index ac4da2d..49d6c51 100644
--- a/src/gaiageo/gg_vanuatu.c
+++ b/src/gaiageo/gg_vanuatu.c
@@ -214,8 +214,8 @@ vanuatuMapDynAlloc (struct vanuatu_data *p_data, int type, void *ptr)
 	  p_data->vanuatu_last_dyn_block->next = p;
 	  p_data->vanuatu_last_dyn_block = p;
       }
-    p_data->vanuatu_last_dyn_block->type[p_data->vanuatu_last_dyn_block->
-					 index] = type;
+    p_data->vanuatu_last_dyn_block->type[p_data->
+					 vanuatu_last_dyn_block->index] = type;
     p_data->vanuatu_last_dyn_block->ptr[p_data->vanuatu_last_dyn_block->index] =
 	ptr;
     p_data->vanuatu_last_dyn_block->index++;
diff --git a/src/gaiageo/gg_voronoj.c b/src/gaiageo/gg_voronoj.c
index d65adcc..0ad545d 100644
--- a/src/gaiageo/gg_voronoj.c
+++ b/src/gaiageo/gg_voronoj.c
@@ -61,7 +61,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include <spatialite/gaiageo.h>
 
-#ifdef GEOS_TRUNK		/* GEOS experimental features */
+#ifdef GEOS_ADVANCED		/* GEOS advanced features */
 
 struct voronoj_triangle
 {
@@ -390,7 +390,7 @@ voronoj_same_edge (double ax1, double ay1, double ax2, double ay2, double bx1,
 }
 
 static int
-voronoj_internal (struct voronoj_triangle *triangle)
+voronoj_internal (const void *p_cache, struct voronoj_triangle *triangle)
 {
 /* checking if the circumcenter falls inside the triangle */
     int ret;
@@ -405,15 +405,18 @@ voronoj_internal (struct voronoj_triangle *triangle)
     gaiaAddPointToGeomColl (pt, triangle->cx, triangle->cy);
     gaiaMbrGeometry (pt);
     gaiaMbrGeometry (tri);
-    ret = gaiaGeomCollIntersects (tri, pt);
+    if (p_cache != NULL)
+	ret = gaiaGeomCollIntersects_r (p_cache, tri, pt);
+    else
+	ret = gaiaGeomCollIntersects (tri, pt);
     gaiaFreeGeomColl (pt);
     gaiaFreeGeomColl (tri);
     return ret;
 }
 
 static double
-voronoj_test_point (double x1, double y1, double x2, double y2, double x,
-		    double y)
+voronoj_test_point (const void *p_cache, double x1, double y1, double x2,
+		    double y2, double x, double y)
 {
 /* point-segment distance */
     double dist;
@@ -423,14 +426,18 @@ voronoj_test_point (double x1, double y1, double x2, double y2, double x,
     gaiaSetPoint (ln->Coords, 0, x1, y1);
     gaiaSetPoint (ln->Coords, 1, x2, y2);
     gaiaAddPointToGeomColl (pt, x, y);
-    gaiaGeomCollDistance (segm, pt, &dist);
+    if (p_cache != NULL)
+	gaiaGeomCollDistance_r (p_cache, segm, pt, &dist);
+    else
+	gaiaGeomCollDistance (segm, pt, &dist);
     gaiaFreeGeomColl (pt);
     gaiaFreeGeomColl (segm);
     return dist;
 }
 
 static int
-voronoj_check_nearest_edge (struct voronoj_triangle *tri, int which)
+voronoj_check_nearest_edge (const void *p_cache, struct voronoj_triangle *tri,
+			    int which)
 {
 /* testing if direction outside */
     double d_1_2;
@@ -442,19 +449,28 @@ voronoj_check_nearest_edge (struct voronoj_triangle *tri, int which)
     gaiaSetPoint (ln->Coords, 0, tri->x1, tri->y1);
     gaiaSetPoint (ln->Coords, 1, tri->x2, tri->y2);
     gaiaAddPointToGeomColl (pt, tri->cx, tri->cy);
-    gaiaGeomCollDistance (segm, pt, &d_1_2);
+    if (p_cache != NULL)
+	gaiaGeomCollDistance_r (p_cache, segm, pt, &d_1_2);
+    else
+	gaiaGeomCollDistance (segm, pt, &d_1_2);
     gaiaFreeGeomColl (segm);
     segm = gaiaAllocGeomColl ();
     ln = gaiaAddLinestringToGeomColl (segm, 2);
     gaiaSetPoint (ln->Coords, 0, tri->x2, tri->y2);
     gaiaSetPoint (ln->Coords, 1, tri->x3, tri->y3);
-    gaiaGeomCollDistance (segm, pt, &d_2_3);
+    if (p_cache != NULL)
+	gaiaGeomCollDistance_r (p_cache, segm, pt, &d_2_3);
+    else
+	gaiaGeomCollDistance (segm, pt, &d_2_3);
     gaiaFreeGeomColl (segm);
     segm = gaiaAllocGeomColl ();
     ln = gaiaAddLinestringToGeomColl (segm, 2);
     gaiaSetPoint (ln->Coords, 0, tri->x3, tri->y3);
     gaiaSetPoint (ln->Coords, 1, tri->x1, tri->y1);
-    gaiaGeomCollDistance (segm, pt, &d_3_1);
+    if (p_cache != NULL)
+	gaiaGeomCollDistance_r (p_cache, segm, pt, &d_3_1);
+    else
+	gaiaGeomCollDistance (segm, pt, &d_3_1);
     gaiaFreeGeomColl (segm);
     gaiaFreeGeomColl (pt);
 
@@ -483,7 +499,7 @@ voronoj_minmax (double x, double y, double *minx, double *miny, double *maxx,
 }
 
 static void
-voronoj_frame_point (double intercept, double slope,
+voronoj_frame_point (const void *p_cache, double intercept, double slope,
 		     struct voronoj_aux *voronoj, double cx, double cy,
 		     double mx, double my, int direct, double *x, double *y)
 {
@@ -571,8 +587,8 @@ voronoj_frame_point (double intercept, double slope,
     if (direct)
       {
 	  /* cutting the edge in two */
-	  d1 = voronoj_test_point (cx, cy, pre_x1, pre_y1, mx, my);
-	  d2 = voronoj_test_point (cx, cy, pre_x2, pre_y2, mx, my);
+	  d1 = voronoj_test_point (p_cache, cx, cy, pre_x1, pre_y1, mx, my);
+	  d2 = voronoj_test_point (p_cache, cx, cy, pre_x2, pre_y2, mx, my);
 	  if (d1 < d2)
 	    {
 		*x = pre_x1;
@@ -587,8 +603,8 @@ voronoj_frame_point (double intercept, double slope,
     else
       {
 	  /* going outside */
-	  d1 = voronoj_test_point (cx, cy, pre_x1, pre_y1, mx, my);
-	  d2 = voronoj_test_point (cx, cy, pre_x2, pre_y2, mx, my);
+	  d1 = voronoj_test_point (p_cache, cx, cy, pre_x1, pre_y1, mx, my);
+	  d2 = voronoj_test_point (p_cache, cx, cy, pre_x2, pre_y2, mx, my);
 	  if (d1 > d2)
 	    {
 		*x = pre_x1;
@@ -605,6 +621,13 @@ voronoj_frame_point (double intercept, double slope,
 SPATIALITE_PRIVATE void *
 voronoj_build (int count, void *p_first, double extra_frame_size)
 {
+    return voronoj_build_r (NULL, count, p_first, extra_frame_size);
+}
+
+SPATIALITE_PRIVATE void *
+voronoj_build_r (const void *p_cache, int count, void *p_first,
+		 double extra_frame_size)
+{
 /* building the Voronoj auxiliary struct */
     gaiaPolygonPtr first = (gaiaPolygonPtr) p_first;
     struct voronoj_aux *voronoj = NULL;
@@ -881,10 +904,11 @@ voronoj_build (int count, void *p_first, double extra_frame_size)
 		      intercept = my - (slope * mx);
 		  }
 		direct = 1;
-		if (!voronoj_internal (triangle))
-		    direct = voronoj_check_nearest_edge (triangle, 12);
-		voronoj_frame_point (intercept, slope, voronoj, triangle->cx,
-				     triangle->cy, mx, my, direct, &x, &y);
+		if (!voronoj_internal (p_cache, triangle))
+		    direct = voronoj_check_nearest_edge (p_cache, triangle, 12);
+		voronoj_frame_point (p_cache, intercept, slope, voronoj,
+				     triangle->cx, triangle->cy, mx, my, direct,
+				     &x, &y);
 		triangle->x_1_2 = x;
 		triangle->y_1_2 = y;
 	    }
@@ -900,10 +924,11 @@ voronoj_build (int count, void *p_first, double extra_frame_size)
 		      intercept = my - (slope * mx);
 		  }
 		direct = 1;
-		if (!voronoj_internal (triangle))
-		    direct = voronoj_check_nearest_edge (triangle, 23);
-		voronoj_frame_point (intercept, slope, voronoj, triangle->cx,
-				     triangle->cy, mx, my, direct, &x, &y);
+		if (!voronoj_internal (p_cache, triangle))
+		    direct = voronoj_check_nearest_edge (p_cache, triangle, 23);
+		voronoj_frame_point (p_cache, intercept, slope, voronoj,
+				     triangle->cx, triangle->cy, mx, my, direct,
+				     &x, &y);
 		triangle->x_2_3 = x;
 		triangle->y_2_3 = y;
 	    }
@@ -919,10 +944,11 @@ voronoj_build (int count, void *p_first, double extra_frame_size)
 		      intercept = my - (slope * mx);
 		  }
 		direct = 1;
-		if (!voronoj_internal (triangle))
-		    direct = voronoj_check_nearest_edge (triangle, 31);
-		voronoj_frame_point (intercept, slope, voronoj, triangle->cx,
-				     triangle->cy, mx, my, direct, &x, &y);
+		if (!voronoj_internal (p_cache, triangle))
+		    direct = voronoj_check_nearest_edge (p_cache, triangle, 31);
+		voronoj_frame_point (p_cache, intercept, slope, voronoj,
+				     triangle->cx, triangle->cy, mx, my, direct,
+				     &x, &y);
 		triangle->x_3_1 = x;
 		triangle->y_3_1 = y;
 	    }
@@ -930,8 +956,9 @@ voronoj_build (int count, void *p_first, double extra_frame_size)
     return voronoj;
 }
 
-SPATIALITE_PRIVATE void *
-voronoj_export (void *p_voronoj, void *p_result, int only_edges)
+static void *
+voronoj_export_common (const void *p_cache, void *p_voronoj, void *p_result,
+		       int only_edges)
 {
 /* building the Geometry representing Voronoj */
     gaiaGeomCollPtr result = (gaiaGeomCollPtr) p_result;
@@ -1393,11 +1420,27 @@ voronoj_export (void *p_voronoj, void *p_result, int only_edges)
 
 /* building Polygons */
     lines = result;
-    result = gaiaPolygonize (lines, 1);
+    if (p_cache != NULL)
+	result = gaiaPolygonize_r (p_cache, lines, 1);
+    else
+	result = gaiaPolygonize (lines, 1);
     gaiaFreeGeomColl (lines);
     return result;
 }
 
+SPATIALITE_PRIVATE void *
+voronoj_export (void *p_voronoj, void *p_result, int only_edges)
+{
+    return voronoj_export_common (NULL, p_voronoj, p_result, only_edges);
+}
+
+SPATIALITE_PRIVATE void *
+voronoj_export_r (const void *p_cache, void *p_voronoj, void *p_result,
+		  int only_edges)
+{
+    return voronoj_export_common (p_cache, p_voronoj, p_result, only_edges);
+}
+
 SPATIALITE_PRIVATE void
 voronoj_free (void *p_voronoj)
 {
@@ -1468,8 +1511,8 @@ concave_hull_stats (struct concave_hull_str *concave, double length)
 }
 
 static int
-concave_hull_filter (double x1, double y1, double x2, double y2, double x3,
-		     double y3, double limit)
+concave_hull_filter (const void *p_cache, double x1, double y1,
+		     double x2, double y2, double x3, double y3, double limit)
 {
 /* filtering triangles to be inserted into the Concave Hull */
     gaiaGeomCollPtr segm;
@@ -1480,7 +1523,10 @@ concave_hull_filter (double x1, double y1, double x2, double y2, double x3,
     ln = gaiaAddLinestringToGeomColl (segm, 2);
     gaiaSetPoint (ln->Coords, 0, x1, y1);
     gaiaSetPoint (ln->Coords, 1, x2, y2);
-    gaiaGeomCollLength (segm, &length);
+    if (p_cache != NULL)
+	gaiaGeomCollLength_r (p_cache, segm, &length);
+    else
+	gaiaGeomCollLength (segm, &length);
     gaiaFreeGeomColl (segm);
     if (length >= limit)
 	return 0;
@@ -1489,7 +1535,10 @@ concave_hull_filter (double x1, double y1, double x2, double y2, double x3,
     ln = gaiaAddLinestringToGeomColl (segm, 2);
     gaiaSetPoint (ln->Coords, 0, x2, y2);
     gaiaSetPoint (ln->Coords, 1, x3, y3);
-    gaiaGeomCollLength (segm, &length);
+    if (p_cache != NULL)
+	gaiaGeomCollLength_r (p_cache, segm, &length);
+    else
+	gaiaGeomCollLength (segm, &length);
     gaiaFreeGeomColl (segm);
     if (length >= limit)
 	return 0;
@@ -1498,7 +1547,10 @@ concave_hull_filter (double x1, double y1, double x2, double y2, double x3,
     ln = gaiaAddLinestringToGeomColl (segm, 2);
     gaiaSetPoint (ln->Coords, 0, x3, y3);
     gaiaSetPoint (ln->Coords, 1, x1, y1);
-    gaiaGeomCollLength (segm, &length);
+    if (p_cache != NULL)
+	gaiaGeomCollLength_r (p_cache, segm, &length);
+    else
+	gaiaGeomCollLength (segm, &length);
     gaiaFreeGeomColl (segm);
     if (length >= limit)
 	return 0;
@@ -1566,9 +1618,9 @@ concave_hull_no_holes (gaiaGeomCollPtr in)
     return out;
 }
 
-SPATIALITE_PRIVATE void *
-concave_hull_build (void *p_first, int dimension_model, double factor,
-		    int allow_holes)
+static void *
+concave_hull_build_common (const void *p_cache, void *p_first,
+			   int dimension_model, double factor, int allow_holes)
 {
 /* building the Concave Hull */
     struct concave_hull_str concave;
@@ -1657,7 +1709,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor,
 	  ln = gaiaAddLinestringToGeomColl (segm, 2);
 	  gaiaSetPoint (ln->Coords, 0, x1, y1);
 	  gaiaSetPoint (ln->Coords, 1, x2, y2);
-	  gaiaGeomCollLength (segm, &length);
+	  if (p_cache != NULL)
+	      gaiaGeomCollLength_r (p_cache, segm, &length);
+	  else
+	      gaiaGeomCollLength (segm, &length);
 	  gaiaFreeGeomColl (segm);
 	  concave_hull_stats (&concave, length);
 
@@ -1665,7 +1720,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor,
 	  ln = gaiaAddLinestringToGeomColl (segm, 2);
 	  gaiaSetPoint (ln->Coords, 0, x2, y2);
 	  gaiaSetPoint (ln->Coords, 1, x3, y3);
-	  gaiaGeomCollLength (segm, &length);
+	  if (p_cache != NULL)
+	      gaiaGeomCollLength_r (p_cache, segm, &length);
+	  else
+	      gaiaGeomCollLength (segm, &length);
 	  gaiaFreeGeomColl (segm);
 	  concave_hull_stats (&concave, length);
 
@@ -1673,7 +1731,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor,
 	  ln = gaiaAddLinestringToGeomColl (segm, 2);
 	  gaiaSetPoint (ln->Coords, 0, x3, y3);
 	  gaiaSetPoint (ln->Coords, 1, x1, y1);
-	  gaiaGeomCollLength (segm, &length);
+	  if (p_cache != NULL)
+	      gaiaGeomCollLength_r (p_cache, segm, &length);
+	  else
+	      gaiaGeomCollLength (segm, &length);
 	  gaiaFreeGeomColl (segm);
 	  concave_hull_stats (&concave, length);
 
@@ -1747,7 +1808,8 @@ concave_hull_build (void *p_first, int dimension_model, double factor,
 		y3 = y;
 	    }
 
-	  if (concave_hull_filter (x1, y1, x2, y2, x3, y3, std_dev * factor))
+	  if (concave_hull_filter
+	      (p_cache, x1, y1, x2, y2, x3, y3, std_dev * factor))
 	    {
 		/* inserting this triangle into the Concave Hull */
 		pg_out = gaiaAddPolygonToGeomColl (result, 4, 0);
@@ -1810,7 +1872,10 @@ concave_hull_build (void *p_first, int dimension_model, double factor,
 
 /* merging all triangles into the Concave Hull */
     segm = result;
-    result = gaiaUnaryUnion (segm);
+    if (p_cache != NULL)
+	result = gaiaUnaryUnion_r (p_cache, segm);
+    else
+	result = gaiaUnaryUnion (segm);
     gaiaFreeGeomColl (segm);
     if (!result)
 	return NULL;
@@ -1836,4 +1901,20 @@ concave_hull_build (void *p_first, int dimension_model, double factor,
     return result;
 }
 
-#endif /* end GEOS experimental features */
+SPATIALITE_PRIVATE void *
+concave_hull_build (void *p_first, int dimension_model, double factor,
+		    int allow_holes)
+{
+    return concave_hull_build_common (NULL, p_first, dimension_model, factor,
+				      allow_holes);
+}
+
+SPATIALITE_PRIVATE void *
+concave_hull_build_r (const void *p_cache, void *p_first, int dimension_model,
+		      double factor, int allow_holes)
+{
+    return concave_hull_build_common (p_cache, p_first, dimension_model, factor,
+				      allow_holes);
+}
+
+#endif /* end GEOS advanced features */
diff --git a/src/gaiageo/gg_wkb.c b/src/gaiageo/gg_wkb.c
index 9911f6d..473c782 100644
--- a/src/gaiageo/gg_wkb.c
+++ b/src/gaiageo/gg_wkb.c
@@ -1091,7 +1091,7 @@ gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size)
     else if (*(blob + 1) == GAIA_BIG_ENDIAN)
 	little_endian = 0;
     else
-	return NULL;		/* unknown encoding; nor litte-endian neither big-endian */
+	return NULL;		/* unknown encoding; nor little-endian neither big-endian */
     type = gaiaImport32 (blob + 39, little_endian, endian_arch);
     geo = gaiaAllocGeomColl ();
     geo->Srid = gaiaImport32 (blob + 2, little_endian, endian_arch);
@@ -4792,9 +4792,7 @@ gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom)
     gaiaPolygonPtr polyg = NULL;
 
 /* precomputing the required size */
-    sprintf (buf, "SRID=%d;", geom->Srid);
-    size = strlen (buf);	/* the header size */
-    size++;			/* terminating '\0' */
+    size = 5;			/* SRID and terminating '\0' */
     pt = geom->FirstPoint;
     while (pt)
       {
@@ -4935,10 +4933,7 @@ gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom)
 	  polyg = polyg->Next;
       }
 /* and finally we build the EWKB expression */
-    sprintf (buf, "SRID=%d;", geom->Srid);
-    gaiaAppendToOutBuffer (out_buf, buf);
     ptr = buf;
-
     *ptr++ = '0';		/* little endian byte order */
     *ptr++ = '1';
     gaiaExport32 (endian_buf, type, 1, endian_arch);	/* the main CLASS TYPE */
@@ -4949,16 +4944,34 @@ gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom)
 	  *ptr++ = byte[0];
 	  *ptr++ = byte[1];
       }
-/* marking M/Z presence */
+/* marking dimensions and M/Z presence */
     if (geom->DimensionModel == GAIA_XY_Z)
-	*ptr++ = '8';
+      {
+	  *ptr++ = 'A';
+	  *ptr++ = '0';
+      }
     else if (geom->DimensionModel == GAIA_XY_M)
-	*ptr++ = '4';
+      {
+	  *ptr++ = '6';
+	  *ptr++ = '0';
+      }
     else if (geom->DimensionModel == GAIA_XY_Z_M)
-	*ptr++ = 'C';
+      {
+	  *ptr++ = 'E';
+	  *ptr++ = '0';
+      }
     else
-	*ptr++ = '0';
-    *ptr++ = '0';
+      {
+	  *ptr++ = '2';
+	  *ptr++ = '0';
+      }
+    gaiaExport32 (endian_buf, geom->Srid, 1, endian_arch);
+    for (i = 0; i < 4; i++)
+      {
+	  sprintf (byte, "%02X", endian_buf[i]);
+	  *ptr++ = byte[0];
+	  *ptr++ = byte[1];
+      }
     *ptr++ = '\0';
     gaiaAppendToOutBuffer (out_buf, buf);
     ptr = buf;
diff --git a/src/gaiageo/gg_xml.c b/src/gaiageo/gg_xml.c
index b4e4a66..e660617 100644
--- a/src/gaiageo/gg_xml.c
+++ b/src/gaiageo/gg_xml.c
@@ -85,6 +85,18 @@ struct gaiaxml_ns_list
     struct gaiaxml_namespace *last;
 };
 
+static int
+is_valid_cache (struct splite_internal_cache *cache)
+{
+/* testing if the passed cache is a valid one */
+    if (cache == NULL)
+	return 0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return 0;
+    return 1;
+}
+
 static struct gaiaxml_namespace *
 splite_create_namespace (int type, const xmlChar * prefix, const xmlChar * href)
 {
@@ -214,12 +226,15 @@ spliteParsingError (void *ctx, const char *msg, ...)
 {
 /* appending to the current Parsing Error buffer */
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx;
-    gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
+    gaiaOutBufferPtr buf;
     char out[65536];
     va_list args;
 
     if (ctx != NULL)
 	ctx = NULL;		/* suppressing stupid compiler warnings (unused args) */
+    if (!is_valid_cache (cache))
+	return;
+    buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
 
     va_start (args, msg);
     vsnprintf (out, 65536, msg, args);
@@ -232,13 +247,15 @@ spliteSchemaValidationError (void *ctx, const char *msg, ...)
 {
 /* appending to the current SchemaValidation Error buffer */
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx;
-    gaiaOutBufferPtr buf =
-	(gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
+    gaiaOutBufferPtr buf;
     char out[65536];
     va_list args;
 
     if (ctx != NULL)
 	ctx = NULL;		/* suppressing stupid compiler warnings (unused args) */
+    if (!is_valid_cache (cache))
+	return;
+    buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
 
     va_start (args, msg);
     vsnprintf (out, 65536, msg, args);
@@ -250,37 +267,48 @@ static void
 spliteResetXmlErrors (struct splite_internal_cache *cache)
 {
 /* resetting the XML Error buffers */
-    gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
+    gaiaOutBufferPtr buf;
+    if (!is_valid_cache (cache))
+	return;
+    buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
     gaiaOutBufferReset (buf);
     buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
     gaiaOutBufferReset (buf);
 }
 
 GAIAGEO_DECLARE char *
-gaiaXmlBlobGetLastParseError (void *ptr)
+gaiaXmlBlobGetLastParseError (const void *ptr)
 {
 /* get the most recent XML Parse error/warning message */
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr;
-    gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
+    gaiaOutBufferPtr buf;
+    if (!is_valid_cache (cache))
+	return NULL;
+    buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
     return buf->Buffer;
 }
 
 GAIAGEO_DECLARE char *
-gaiaXmlBlobGetLastValidateError (void *ptr)
+gaiaXmlBlobGetLastValidateError (const void *ptr)
 {
 /* get the most recent XML Validate error/warning message */
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr;
-    gaiaOutBufferPtr buf =
-	(gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
+    gaiaOutBufferPtr buf;
+    if (!is_valid_cache (cache))
+	return NULL;
+    buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
     return buf->Buffer;
 }
 
 GAIAGEO_DECLARE char *
-gaiaXmlBlobGetLastXPathError (void *ptr)
+gaiaXmlBlobGetLastXPathError (const void *ptr)
 {
 /* get the most recent XML Validate error/warning message */
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr;
-    gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors);
+    gaiaOutBufferPtr buf;
+    if (!is_valid_cache (cache))
+	return NULL;
+    buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors);
     return buf->Buffer;
 }
 
@@ -312,6 +340,8 @@ splite_xmlSchemaCacheFind (struct splite_internal_cache *cache,
     int i;
     time_t now;
     struct splite_xmlSchema_cache_item *p;
+    if (!is_valid_cache (cache))
+	return 0;
     for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++)
       {
 	  p = &(cache->xmlSchemaCache[i]);
@@ -345,6 +375,8 @@ splite_xmlSchemaCacheInsert (struct splite_internal_cache *cache,
     time_t oldest;
     struct splite_xmlSchema_cache_item *pSlot = NULL;
     struct splite_xmlSchema_cache_item *p;
+    if (!is_valid_cache (cache))
+	return;
     time (&now);
     oldest = now;
     for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++)
@@ -406,7 +438,7 @@ sniff_sld_payload (xmlNodePtr node, int *layers, int *point, int *line,
 static void
 sniff_payload (xmlDocPtr xml_doc, int *is_iso_metadata,
 	       int *is_sld_se_vector_style, int *is_sld_se_raster_style,
-	       int *is_svg)
+	       int *is_sld_style, int *is_svg)
 {
 /* sniffing the payload type */
     xmlNodePtr root = xmlDocGetRootElement (xml_doc);
@@ -451,6 +483,7 @@ sniff_payload (xmlDocPtr xml_doc, int *is_iso_metadata,
 		      /* vector style */
 		      *is_sld_se_vector_style = 1;
 		  }
+		*is_sld_style = 1;
 	    }
 	  if (strcmp (name, "svg") == 0)
 	      *is_svg = 1;
@@ -1045,6 +1078,201 @@ retrieve_iso_identifiers (xmlDocPtr xml_doc, char **fileIdentifier,
 }
 
 static void
+find_sld_name (xmlNodePtr node, char **string)
+{
+/* recursively scanning the DOM tree [name] */
+    while (node)
+      {
+	  if (node->type == XML_ELEMENT_NODE)
+	    {
+		const char *name = (const char *) (node->name);
+		if (strcmp (name, "Name") == 0)
+		  {
+		      xmlNodePtr child = node->children;
+		      if (child)
+			{
+			    if (child->type == XML_TEXT_NODE)
+			      {
+				  int len;
+				  const char *value =
+				      (const char *) (child->content);
+				  len = strlen (value);
+				  if (*string != NULL)
+				      free (*string);
+				  *string = malloc (len + 1);
+				  strcpy (*string, value);
+			      }
+			}
+		  }
+	    }
+	  node = node->next;
+      }
+}
+
+static void
+find_sld_title (xmlNodePtr node, char **string)
+{
+/* recursively scanning the DOM tree [title] */
+    while (node)
+      {
+	  if (node->type == XML_ELEMENT_NODE)
+	    {
+		const char *name = (const char *) (node->name);
+		if (strcmp (name, "Title") == 0)
+		  {
+		      xmlNodePtr child = node->children;
+		      if (child)
+			{
+			    if (child->type == XML_TEXT_NODE)
+			      {
+				  int len;
+				  const char *value =
+				      (const char *) (child->content);
+				  len = strlen (value);
+				  if (*string != NULL)
+				      free (*string);
+				  *string = malloc (len + 1);
+				  strcpy (*string, value);
+			      }
+			}
+		  }
+		if (strcmp (name, "Description") == 0)
+		    find_sld_title (node->children, string);
+	    }
+	  node = node->next;
+      }
+}
+
+static void
+find_sld_abstract (xmlNodePtr node, char **string)
+{
+/* recursively scanning the DOM tree [abstract] */
+    while (node)
+      {
+	  if (node->type == XML_ELEMENT_NODE)
+	    {
+		const char *name = (const char *) (node->name);
+		if (strcmp (name, "Abstract") == 0)
+		  {
+		      xmlNodePtr child = node->children;
+		      if (child)
+			{
+			    if (child->type == XML_TEXT_NODE)
+			      {
+				  int len;
+				  const char *value =
+				      (const char *) (child->content);
+				  len = strlen (value);
+				  if (*string != NULL)
+				      free (*string);
+				  *string = malloc (len + 1);
+				  strcpy (*string, value);
+			      }
+			}
+		  }
+		if (strcmp (name, "Description") == 0)
+		    find_sld_abstract (node->children, string);
+	    }
+	  node = node->next;
+      }
+}
+
+static void
+retrieve_sld_identifiers (xmlDocPtr xml_doc, char **name, char **title,
+			  char **abstract)
+{
+/*
+/ attempting to retrieve the Name, Title and Abstract items 
+/ from an SLD Style document
+*/
+    xmlNodePtr root = xmlDocGetRootElement (xml_doc);
+    char *string;
+    const char *xname = (const char *) (root->name);
+
+    *name = NULL;
+    *title = NULL;
+    *abstract = NULL;
+
+    if (xname != NULL)
+      {
+	  if (strcmp (xname, "StyledLayerDescriptor") != 0)
+	      return;
+      }
+
+/* attempting to retrieve the Name item */
+    string = NULL;
+    find_sld_name (root->children, &string);
+    if (string)
+	*name = string;
+
+/* attempting to retrieve the Title item */
+    string = NULL;
+    find_sld_title (root->children, &string);
+    if (string)
+	*title = string;
+
+/* attempting to retrieve the Abstract item */
+    string = NULL;
+    find_sld_abstract (root->children, &string);
+    if (string)
+	*abstract = string;
+}
+
+static void
+find_sld_se_name (xmlNodePtr node, char **string, int *style, int *rule)
+{
+/* recursively scanning the DOM tree [name] */
+    int is_style = 0;
+    int is_rule = 0;
+    while (node)
+      {
+	  if (node->type == XML_ELEMENT_NODE)
+	    {
+		const char *name = (const char *) (node->name);
+		if (strcmp (name, "FeatureTypeStyle") == 0
+		    || strcmp (name, "CoverageStyle") == 0)
+		  {
+		      is_style = 1;
+		      *style = 1;
+		  }
+		if (strcmp (name, "Rule") == 0)
+		  {
+		      is_rule = 1;
+		      *rule = 1;
+		  }
+		if (strcmp (name, "Name") == 0)
+		  {
+		      if (*style == 1 && *rule == 0)
+			{
+			    xmlNodePtr child = node->children;
+			    if (child)
+			      {
+				  if (child->type == XML_TEXT_NODE)
+				    {
+					int len;
+					const char *value =
+					    (const char *) (child->content);
+					len = strlen (value);
+					if (*string != NULL)
+					    free (*string);
+					*string = malloc (len + 1);
+					strcpy (*string, value);
+				    }
+			      }
+			}
+		  }
+	    }
+
+	  find_sld_se_name (node->children, string, style, rule);
+	  if (is_style)
+	      *style = 0;
+	  if (is_rule)
+	      *rule = 0;
+	  node = node->next;
+      }
+}
+
+static void
 find_sld_se_title (xmlNodePtr node, char **string, int *style, int *rule)
 {
 /* recursively scanning the DOM tree [title] */
@@ -1056,8 +1284,7 @@ find_sld_se_title (xmlNodePtr node, char **string, int *style, int *rule)
 	    {
 		const char *name = (const char *) (node->name);
 		if (strcmp (name, "FeatureTypeStyle") == 0
-		    || strcmp (name, "CoverageStyle") == 0
-		    || strcmp (name, "StyledLayerDescriptor") == 0)
+		    || strcmp (name, "CoverageStyle") == 0)
 		  {
 		      is_style = 1;
 		      *style = 1;
@@ -1111,8 +1338,7 @@ find_sld_se_abstract (xmlNodePtr node, char **string, int *style, int *rule)
 	    {
 		const char *name = (const char *) (node->name);
 		if (strcmp (name, "FeatureTypeStyle") == 0
-		    || strcmp (name, "CoverageStyle") == 0
-		    || strcmp (name, "StyledLayerDescriptor") == 0)
+		    || strcmp (name, "CoverageStyle") == 0)
 		  {
 		      is_style = 1;
 		      *style = 1;
@@ -1155,32 +1381,51 @@ find_sld_se_abstract (xmlNodePtr node, char **string, int *style, int *rule)
 }
 
 static void
-retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **title, char **abstract)
+retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **name, char **title,
+			     char **abstract)
 {
 /*
-/ attempting to retrieve the Title and Abstract items 
+/ attempting to retrieve the Name, Title and Abstract items 
 / from an SLD/SE Style document
 */
     xmlNodePtr root = xmlDocGetRootElement (xml_doc);
     int style;
     int rule;
     char *string;
-    const char *name = (const char *) (root->name);
+    const char *xname = (const char *) (root->name);
 
+    *name = NULL;
     *title = NULL;
     *abstract = NULL;
 
+/* attempting to retrieve the Name item */
+    style = 0;
+    rule = 0;
+    string = NULL;
+    if (xname != NULL)
+      {
+	  if (strcmp (xname, "PointSymbolizer") == 0
+	      || strcmp (xname, "LineSymbolizer") == 0
+	      || strcmp (xname, "PolygonSymbolizer") == 0
+	      || strcmp (xname, "TextSymbolizer") == 0
+	      || strcmp (xname, "RasterSymbolizer") == 0)
+	      style = 1;
+      }
+    find_sld_se_name (root, &string, &style, &rule);
+    if (string)
+	*name = string;
+
 /* attempting to retrieve the Title item */
     style = 0;
     rule = 0;
     string = NULL;
-    if (name != NULL)
+    if (xname != NULL)
       {
-	  if (strcmp (name, "PointSymbolizer") == 0
-	      || strcmp (name, "LineSymbolizer") == 0
-	      || strcmp (name, "PolygonSymbolizer") == 0
-	      || strcmp (name, "TextSymbolizer") == 0
-	      || strcmp (name, "RasterSymbolizer") == 0)
+	  if (strcmp (xname, "PointSymbolizer") == 0
+	      || strcmp (xname, "LineSymbolizer") == 0
+	      || strcmp (xname, "PolygonSymbolizer") == 0
+	      || strcmp (xname, "TextSymbolizer") == 0
+	      || strcmp (xname, "RasterSymbolizer") == 0)
 	      style = 1;
       }
     find_sld_se_title (root, &string, &style, &rule);
@@ -1191,13 +1436,13 @@ retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **title, char **abstract)
     style = 0;
     rule = 0;
     string = NULL;
-    if (name != NULL)
+    if (xname != NULL)
       {
-	  if (strcmp (name, "PointSymbolizer") == 0
-	      || strcmp (name, "LineSymbolizer") == 0
-	      || strcmp (name, "PolygonSymbolizer") == 0
-	      || strcmp (name, "TextSymbolizer") == 0
-	      || strcmp (name, "RasterSymbolizer") == 0)
+	  if (strcmp (xname, "PointSymbolizer") == 0
+	      || strcmp (xname, "LineSymbolizer") == 0
+	      || strcmp (xname, "PolygonSymbolizer") == 0
+	      || strcmp (xname, "TextSymbolizer") == 0
+	      || strcmp (xname, "RasterSymbolizer") == 0)
 	      style = 1;
       }
     find_sld_se_abstract (root, &string, &style, &rule);
@@ -1206,7 +1451,7 @@ retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **title, char **abstract)
 }
 
 GAIAGEO_DECLARE void
-gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
+gaiaXmlToBlob (const void *p_cache, const unsigned char *xml, int xml_len,
 	       int compressed, const char *schemaURI, unsigned char **result,
 	       int *size, char **parsing_errors,
 	       char **schema_validation_errors)
@@ -1220,17 +1465,20 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
     int is_iso_metadata = 0;
     int is_sld_se_vector_style = 0;
     int is_sld_se_raster_style = 0;
+    int is_sld_style = 0;
     int is_svg = 0;
     int len;
     int zip_len;
     short uri_len = 0;
     short fileid_len = 0;
     short parentid_len = 0;
+    short name_len = 0;
     short title_len = 0;
     short abstract_len = 0;
     short geometry_len = 0;
     char *fileIdentifier = NULL;
     char *parentIdentifier = NULL;
+    char *name = NULL;
     char *title = NULL;
     char *abstract = NULL;
     unsigned char *geometry = NULL;
@@ -1242,15 +1490,20 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
     int endian_arch = gaiaEndianArch ();
     struct splite_internal_cache *cache =
 	(struct splite_internal_cache *) p_cache;
-    gaiaOutBufferPtr parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
-    gaiaOutBufferPtr schemaValidationBuf =
-	(gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
-    xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
-    xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) spliteParsingError;
-    xmlGenericErrorFunc schemaError =
-	(xmlGenericErrorFunc) spliteSchemaValidationError;
-
-    spliteResetXmlErrors (cache);
+    gaiaOutBufferPtr parsingBuf = NULL;
+    gaiaOutBufferPtr schemaValidationBuf = NULL;
+    xmlGenericErrorFunc silentError = NULL;
+    xmlGenericErrorFunc parsingError = NULL;
+    xmlGenericErrorFunc schemaError = NULL;
+    if (is_valid_cache (cache))
+      {
+	  parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
+	  schemaValidationBuf =
+	      (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors);
+	  parsingError = (xmlGenericErrorFunc) spliteParsingError;
+	  schemaError = (xmlGenericErrorFunc) spliteSchemaValidationError;
+	  spliteResetXmlErrors (cache);
+      }
 
     *result = NULL;
     *size = 0;
@@ -1317,12 +1570,12 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
       {
 	  /* parsing error; not a well-formed XML */
 	  spatialite_e ("XML parsing error\n");
-	  if (parsing_errors)
+	  if (parsing_errors && parsingBuf)
 	      *parsing_errors = parsingBuf->Buffer;
 	  xmlSetGenericErrorFunc ((void *) stderr, NULL);
 	  return;
       }
-    if (parsing_errors)
+    if (parsing_errors && parsingBuf)
 	*parsing_errors = parsingBuf->Buffer;
 
     if (schemaURI != NULL)
@@ -1334,7 +1587,7 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
 	    {
 		spatialite_e ("unable to prepare a validation context\n");
 		xmlFreeDoc (xml_doc);
-		if (schema_validation_errors)
+		if (schema_validation_errors && schemaValidationBuf)
 		    *schema_validation_errors = schemaValidationBuf->Buffer;
 		xmlSetGenericErrorFunc ((void *) stderr, NULL);
 		return;
@@ -1344,7 +1597,7 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
 		spatialite_e ("Schema validation failed\n");
 		xmlSchemaFreeValidCtxt (valid_ctxt);
 		xmlFreeDoc (xml_doc);
-		if (schema_validation_errors)
+		if (schema_validation_errors && schemaValidationBuf)
 		    *schema_validation_errors = schemaValidationBuf->Buffer;
 		xmlSetGenericErrorFunc ((void *) stderr, NULL);
 		return;
@@ -1354,13 +1607,15 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
 
 /* testing for special cases: ISO Metadata, SLD/SE Styles and SVG */
     sniff_payload (xml_doc, &is_iso_metadata, &is_sld_se_vector_style,
-		   &is_sld_se_raster_style, &is_svg);
+		   &is_sld_se_raster_style, &is_sld_style, &is_svg);
     if (is_iso_metadata)
 	retrieve_iso_identifiers (xml_doc, &fileIdentifier,
 				  &parentIdentifier, &title, &abstract,
 				  &geometry, &geometry_len);
-    if (is_sld_se_vector_style || is_sld_se_raster_style)
-	retrieve_sld_se_identifiers (xml_doc, &title, &abstract);
+    if (is_sld_style)
+	retrieve_sld_identifiers (xml_doc, &name, &title, &abstract);
+    else if (is_sld_se_vector_style || is_sld_se_raster_style)
+	retrieve_sld_se_identifiers (xml_doc, &name, &title, &abstract);
     xmlFreeDoc (xml_doc);
 
     if (compressed)
@@ -1383,19 +1638,21 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
 	zip_len = xml_len;
 
 /* reporting errors */
-    if (parsing_errors)
+    if (parsing_errors && parsingBuf)
 	*parsing_errors = parsingBuf->Buffer;
-    if (schema_validation_errors)
+    if (schema_validation_errors && schemaValidationBuf)
 	*schema_validation_errors = schemaValidationBuf->Buffer;
 
 /* computing the XmlBLOB size */
-    len = 36;			/* fixed header-footer size */
+    len = 39;			/* fixed header-footer size */
     if (schemaURI)
 	uri_len = strlen ((const char *) schemaURI);
     if (fileIdentifier)
 	fileid_len = strlen ((const char *) fileIdentifier);
     if (parentIdentifier)
 	parentid_len = strlen ((const char *) parentIdentifier);
+    if (name)
+	name_len = strlen ((const char *) name);
     if (title)
 	title_len = strlen ((const char *) title);
     if (abstract)
@@ -1404,6 +1661,7 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
     len += uri_len;
     len += fileid_len;
     len += parentid_len;
+    len += name_len;
     len += title_len;
     len += abstract_len;
     len += geometry_len;
@@ -1420,6 +1678,8 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
 	flags |= GAIA_XML_SLD_SE_VECTOR_STYLE;
     if (is_sld_se_raster_style)
 	flags |= GAIA_XML_SLD_SE_RASTER_STYLE;
+    if (is_sld_style)
+	flags |= GAIA_XML_SLD_STYLE;
     if (is_svg)
 	flags |= GAIA_XML_SVG;
     *(buf + 1) = flags;		/* XmlBLOB flags */
@@ -1457,6 +1717,17 @@ gaiaXmlToBlob (void *p_cache, const unsigned char *xml, int xml_len,
 	  free (parentIdentifier);
 	  ptr += parentid_len;
       }
+    gaiaExport16 (ptr, name_len, 1, endian_arch);	/* the Name length in bytes */
+    ptr += 2;
+    *ptr = GAIA_XML_NAME;	/* Title signature */
+    ptr++;
+    if (name)
+      {
+	  /* the Name */
+	  memcpy (ptr, name, name_len);
+	  free (name);
+	  ptr += name_len;
+      }
     gaiaExport16 (ptr, title_len, 1, endian_arch);	/* the Title length in bytes */
     ptr += 2;
     *ptr = GAIA_XML_TITLE;	/* Title signature */
@@ -1532,6 +1803,7 @@ gaiaXmlBlobCompression (const unsigned char *blob,
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -1543,17 +1815,20 @@ gaiaXmlBlobCompression (const unsigned char *blob,
     char *schemaURI;
     char *fileIdentifier;
     char *parentIdentifier;
+    char *name;
     char *title;
     char *abstract;
     unsigned char *geometry;
     int is_iso_metadata = 0;
     int is_sld_se_vector_style = 0;
     int is_sld_se_raster_style = 0;
+    int is_sld_style = 0;
     int is_svg = 0;
     unsigned char *xml;
     unsigned char *buf;
     unsigned char *ptr;
     unsigned char flags;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
 
     *result = NULL;
@@ -1561,6 +1836,9 @@ gaiaXmlBlobCompression (const unsigned char *blob,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, in_size))
 	return;			/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
+    flag = *(blob + 1);
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -1572,6 +1850,8 @@ gaiaXmlBlobCompression (const unsigned char *blob,
 	is_sld_se_vector_style = 1;
     if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE)
 	is_sld_se_raster_style = 1;
+    if ((flag & GAIA_XML_SLD_STYLE) == GAIA_XML_SLD_STYLE)
+	is_sld_style = 1;
     if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG)
 	is_svg = 1;
     in_xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch);
@@ -1609,6 +1889,25 @@ gaiaXmlBlobCompression (const unsigned char *blob,
       {
 	  parentIdentifier = NULL;
       }
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3;
+	  if (name_len)
+	    {
+		name = (char *) ptr;
+		ptr += name_len;
+	    }
+	  else
+	    {
+		name = NULL;
+	    }
+      }
+    else
+      {
+	  name_len = 0;
+	  name = NULL;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3;
     if (title_len)
@@ -1689,11 +1988,12 @@ gaiaXmlBlobCompression (const unsigned char *blob,
       }
 
 /* computing the XmlBLOB size */
-    len = 36;			/* fixed header-footer size */
+    len = 39;			/* fixed header-footer size */
     len += out_zip_len;
     len += uri_len;
     len += fileid_len;
     len += parentid_len;
+    len += name_len;
     len += title_len;
     len += abstract_len;
     len += geometry_len;
@@ -1711,6 +2011,8 @@ gaiaXmlBlobCompression (const unsigned char *blob,
 	flags |= GAIA_XML_SLD_SE_VECTOR_STYLE;
     if (is_sld_se_raster_style)
 	flags |= GAIA_XML_SLD_SE_RASTER_STYLE;
+    if (is_sld_style)
+	flags |= GAIA_XML_SLD_STYLE;
     if (is_svg)
 	flags |= GAIA_XML_SVG;
     *(buf + 1) = flags;		/* XmlBLOB flags */
@@ -1746,6 +2048,16 @@ gaiaXmlBlobCompression (const unsigned char *blob,
 	  memcpy (ptr, parentIdentifier, parentid_len);
 	  ptr += parentid_len;
       }
+    gaiaExport16 (ptr, name_len, 1, endian_arch);	/* the Name length in bytes */
+    ptr += 2;
+    *ptr = GAIA_XML_NAME;	/* Name signature */
+    ptr++;
+    if (name)
+      {
+	  /* the Name */
+	  memcpy (ptr, name, name_len);
+	  ptr += name_len;
+      }
     gaiaExport16 (ptr, title_len, 1, endian_arch);	/* the Title length in bytes */
     ptr += 2;
     *ptr = GAIA_XML_TITLE;	/* Title signature */
@@ -1811,6 +2123,88 @@ gaiaXmlBlobCompression (const unsigned char *blob,
     *out_size = len;
 }
 
+static int
+is_valid_legacy_xml_blob (const unsigned char *blob, int blob_size)
+{
+/* Checks if a BLOB actually is a valid LEGACY XmlBLOB buffer */
+    int little_endian = 0;
+    unsigned char flag;
+    const unsigned char *ptr;
+    short uri_len;
+    short fileid_len;
+    short parentid_len;
+    short title_len;
+    short abstract_len;
+    short geometry_len;
+    uLong crc;
+    uLong refCrc;
+    int endian_arch = gaiaEndianArch ();
+
+/* validity check */
+    if (blob_size < 36)
+	return 0;		/* cannot be an XmlBLOB */
+    if (*blob != GAIA_XML_START)
+	return 0;		/* failed to recognize START signature */
+    if (*(blob + (blob_size - 1)) != GAIA_XML_END)
+	return 0;		/* failed to recognize END signature */
+    if (*(blob + (blob_size - 6)) != GAIA_XML_CRC32)
+	return 0;		/* failed to recognize CRC32 signature */
+    if (*(blob + 2) != GAIA_XML_LEGACY_HEADER)
+	return 0;		/* failed to recognize HEADER signature */
+    if (*(blob + 13) != GAIA_XML_SCHEMA)
+	return 0;		/* failed to recognize SCHEMA signature */
+    flag = *(blob + 1);
+    if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
+	little_endian = 1;
+    ptr = blob + 11;
+    uri_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_SCHEMA)
+	return 0;
+    ptr++;
+    ptr += uri_len;
+    fileid_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_FILEID)
+	return 0;
+    ptr++;
+    ptr += fileid_len;
+    parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_PARENTID)
+	return 0;
+    ptr++;
+    ptr += parentid_len;
+    title_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_TITLE)
+	return 0;
+    ptr++;
+    ptr += title_len;
+    abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_ABSTRACT)
+	return 0;
+    ptr++;
+    ptr += abstract_len;
+    geometry_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_GEOMETRY)
+	return 0;
+    ptr++;
+    ptr += geometry_len;
+    if (*ptr != GAIA_XML_PAYLOAD)
+	return 0;
+
+/* verifying the CRC32 */
+    crc = crc32 (0L, blob, blob_size - 5);
+    refCrc = gaiaImportU32 (blob + blob_size - 5, little_endian, endian_arch);
+    if (crc != refCrc)
+	return 0;
+
+    return 1;
+}
+
 GAIAGEO_DECLARE int
 gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size)
 {
@@ -1821,6 +2215,7 @@ gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size)
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -1828,8 +2223,15 @@ gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size)
     uLong refCrc;
     int endian_arch = gaiaEndianArch ();
 
+    if (blob_size > 3)
+      {
+	  /* legacy format */
+	  if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	      return is_valid_legacy_xml_blob (blob, blob_size);
+      }
+
 /* validity check */
-    if (blob_size < 36)
+    if (blob_size < 39)
 	return 0;		/* cannot be an XmlBLOB */
     if (*blob != GAIA_XML_START)
 	return 0;		/* failed to recognize START signature */
@@ -1863,6 +2265,12 @@ gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size)
 	return 0;
     ptr++;
     ptr += parentid_len;
+    name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 2;
+    if (*ptr != GAIA_XML_NAME)
+	return 0;
+    ptr++;
+    ptr += name_len;
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 2;
     if (*ptr != GAIA_XML_TITLE)
@@ -2188,6 +2596,7 @@ gaiaXmlTextFromBlob (const unsigned char *blob, int blob_size, int indent)
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len = 0;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -2199,12 +2608,15 @@ gaiaXmlTextFromBlob (const unsigned char *blob, int blob_size, int indent)
     void *cvt;
     char *utf8;
     int err;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
 
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return NULL;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -2219,6 +2631,11 @@ gaiaXmlTextFromBlob (const unsigned char *blob, int blob_size, int indent)
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -2326,6 +2743,7 @@ gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent,
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -2333,6 +2751,7 @@ gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent,
     xmlDocPtr xml_doc;
     xmlChar *out;
     int out_len;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
     *result = NULL;
@@ -2341,6 +2760,8 @@ gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return;			/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -2355,6 +2776,11 @@ gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent,
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -2414,8 +2840,8 @@ gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent,
 }
 
 GAIAGEO_DECLARE int
-gaiaXmlLoad (void *p_cache, const char *path_or_url, unsigned char **result,
-	     int *size, char **parsing_errors)
+gaiaXmlLoad (const void *p_cache, const char *path_or_url,
+	     unsigned char **result, int *size, char **parsing_errors)
 {
 /* attempting to load an external XML Document into a BLOB buffer */
     unsigned char *out;
@@ -2423,10 +2849,14 @@ gaiaXmlLoad (void *p_cache, const char *path_or_url, unsigned char **result,
     xmlDocPtr xml_doc;
     struct splite_internal_cache *cache =
 	(struct splite_internal_cache *) p_cache;
-    gaiaOutBufferPtr parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
-    xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) spliteParsingError;
-
-    spliteResetXmlErrors (cache);
+    gaiaOutBufferPtr parsingBuf = NULL;
+    xmlGenericErrorFunc parsingError = NULL;
+    if (is_valid_cache (cache))
+      {
+	  parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors);
+	  parsingError = (xmlGenericErrorFunc) spliteParsingError;
+	  spliteResetXmlErrors (cache);
+      }
 
     *result = NULL;
     *size = 0;
@@ -2442,12 +2872,12 @@ gaiaXmlLoad (void *p_cache, const char *path_or_url, unsigned char **result,
       {
 	  /* parsing error; not a well-formed XML */
 	  spatialite_e ("XML parsing error\n");
-	  if (parsing_errors)
+	  if (parsing_errors && parsingBuf)
 	      *parsing_errors = parsingBuf->Buffer;
 	  xmlSetGenericErrorFunc ((void *) stderr, NULL);
 	  return 0;
       }
-    if (parsing_errors)
+    if (parsing_errors && parsingBuf)
 	*parsing_errors = parsingBuf->Buffer;
 
 /* exporting the XML Document into a BLOB */
@@ -2574,6 +3004,22 @@ gaiaIsSldSeRasterStyleXmlBlob (const unsigned char *blob, int blob_size)
 }
 
 GAIAGEO_DECLARE int
+gaiaIsSldStyleXmlBlob (const unsigned char *blob, int blob_size)
+{
+/* Checks if a valid XmlBLOB buffer does actually contains an SLD Style or not */
+    int sld_style = 0;
+    unsigned char flag;
+
+/* validity check */
+    if (!gaiaIsValidXmlBlob (blob, blob_size))
+	return -1;		/* cannot be an XmlBLOB */
+    flag = *(blob + 1);
+    if ((flag & GAIA_XML_SLD_STYLE) == GAIA_XML_SLD_STYLE)
+	sld_style = 1;
+    return sld_style;
+}
+
+GAIAGEO_DECLARE int
 gaiaIsSvgXmlBlob (const unsigned char *blob, int blob_size)
 {
 /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Style or not */
@@ -2635,7 +3081,7 @@ gaiaXmlBlobGetSchemaURI (const unsigned char *blob, int blob_size)
 }
 
 GAIAGEO_DECLARE char *
-gaiaXmlGetInternalSchemaURI (void *p_cache, const unsigned char *xml,
+gaiaXmlGetInternalSchemaURI (const void *p_cache, const unsigned char *xml,
 			     int xml_len)
 {
 /* Return the internally defined SchemaURI from a valid XmlDocument */
@@ -2868,9 +3314,9 @@ setIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier,
 }
 
 GAIAGEO_DECLARE int
-gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size,
-		      const char *identifier, unsigned char **new_blob,
-		      int *new_size)
+gaiaXmlBlobSetFileId (const void *p_cache, const unsigned char *blob,
+		      int blob_size, const char *identifier,
+		      unsigned char **new_blob, int *new_size)
 {
 /* Return a new XmlBLOB buffer by replacing the FileId value */
     struct splite_internal_cache *cache =
@@ -2884,6 +3330,7 @@ gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size,
     short parentid_len;
     int xml_len;
     int zip_len;
+    int name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -2892,6 +3339,7 @@ gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size,
     xmlDocPtr xml_doc;
     unsigned char *out_blob;
     int out_len;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
 
@@ -2900,6 +3348,8 @@ gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return 0;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA)
 	;
@@ -2924,6 +3374,11 @@ gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size,
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -2986,9 +3441,9 @@ gaiaXmlBlobSetFileId (void *p_cache, const unsigned char *blob, int blob_size,
 }
 
 GAIAGEO_DECLARE int
-gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int blob_size,
-			const char *identifier, unsigned char **new_blob,
-			int *new_size)
+gaiaXmlBlobSetParentId (const void *p_cache, const unsigned char *blob,
+			int blob_size, const char *identifier,
+			unsigned char **new_blob, int *new_size)
 {
 /* Return a new XmlBLOB buffer by replacing the ParentId value */
     struct splite_internal_cache *cache =
@@ -3002,6 +3457,7 @@ gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int blob_size,
     short parentid_len;
     int xml_len;
     int zip_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -3010,6 +3466,7 @@ gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int blob_size,
     xmlDocPtr xml_doc;
     unsigned char *out_blob;
     int out_len;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
 
@@ -3018,6 +3475,8 @@ gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int blob_size,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return 0;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA)
 	;
@@ -3042,6 +3501,11 @@ gaiaXmlBlobSetParentId (void *p_cache, const unsigned char *blob, int blob_size,
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -3197,8 +3661,8 @@ addIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier,
 }
 
 GAIAGEO_DECLARE int
-gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size,
-		      const char *identifier, const char *ns_id,
+gaiaXmlBlobAddFileId (const void *p_cache, const unsigned char *blob,
+		      int blob_size, const char *identifier, const char *ns_id,
 		      const char *uri_id, const char *ns_charstr,
 		      const char *uri_charstr, unsigned char **new_blob,
 		      int *new_size)
@@ -3215,6 +3679,7 @@ gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size,
     short parentid_len;
     int xml_len;
     int zip_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -3223,6 +3688,7 @@ gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size,
     xmlDocPtr xml_doc;
     unsigned char *out_blob;
     int out_len;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
 
@@ -3231,6 +3697,8 @@ gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return 0;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA)
 	;
@@ -3255,6 +3723,11 @@ gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size,
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -3318,11 +3791,11 @@ gaiaXmlBlobAddFileId (void *p_cache, const unsigned char *blob, int blob_size,
 }
 
 GAIAGEO_DECLARE int
-gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size,
-			const char *identifier, const char *ns_id,
-			const char *uri_id, const char *ns_charstr,
-			const char *uri_charstr, unsigned char **new_blob,
-			int *new_size)
+gaiaXmlBlobAddParentId (const void *p_cache, const unsigned char *blob,
+			int blob_size, const char *identifier,
+			const char *ns_id, const char *uri_id,
+			const char *ns_charstr, const char *uri_charstr,
+			unsigned char **new_blob, int *new_size)
 {
 /* Return a new XmlBLOB buffer by inserting a ParentId value */
     struct splite_internal_cache *cache =
@@ -3336,6 +3809,7 @@ gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size,
     short parentid_len;
     int xml_len;
     int zip_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
@@ -3344,6 +3818,7 @@ gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size,
     xmlDocPtr xml_doc;
     unsigned char *out_blob;
     int out_len;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
 
@@ -3352,6 +3827,8 @@ gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return 0;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA)
 	;
@@ -3376,6 +3853,11 @@ gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size,
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -3439,6 +3921,46 @@ gaiaXmlBlobAddParentId (void *p_cache, const unsigned char *blob, int blob_size,
 }
 
 GAIAGEO_DECLARE char *
+gaiaXmlBlobGetName (const unsigned char *blob, int blob_size)
+{
+/* Return the Name from a valid XmlBLOB buffer */
+    int little_endian = 0;
+    unsigned char flag;
+    const unsigned char *ptr;
+    short uri_len;
+    short fileid_len;
+    short parentid_len;
+    short name_len;
+    char *name;
+    int endian_arch = gaiaEndianArch ();
+
+/* validity check */
+    if (!gaiaIsValidXmlBlob (blob, blob_size))
+	return NULL;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	return NULL;
+    flag = *(blob + 1);
+    if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
+	little_endian = 1;
+    ptr = blob + 11;
+    uri_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 3 + uri_len;
+    fileid_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 3 + fileid_len;
+    parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    ptr += 3 + parentid_len;
+    name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+    if (!name_len)
+	return NULL;
+    ptr += 3;
+
+    name = malloc (name_len + 1);
+    memcpy (name, ptr, name_len);
+    *(name + name_len) = '\0';
+    return name;
+}
+
+GAIAGEO_DECLARE char *
 gaiaXmlBlobGetTitle (const unsigned char *blob, int blob_size)
 {
 /* Return the Title from a valid XmlBLOB buffer */
@@ -3448,13 +3970,17 @@ gaiaXmlBlobGetTitle (const unsigned char *blob, int blob_size)
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     char *title;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
 
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return NULL;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -3465,6 +3991,11 @@ gaiaXmlBlobGetTitle (const unsigned char *blob, int blob_size)
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     if (!title_len)
 	return NULL;
@@ -3486,14 +4017,18 @@ gaiaXmlBlobGetAbstract (const unsigned char *blob, int blob_size)
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     short abstract_len;
     char *abstract;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
 
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return NULL;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -3504,6 +4039,11 @@ gaiaXmlBlobGetAbstract (const unsigned char *blob, int blob_size)
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -3528,10 +4068,12 @@ gaiaXmlBlobGetGeometry (const unsigned char *blob, int blob_size,
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
     unsigned char *geometry;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
 
     *blob_geom = NULL;
@@ -3540,6 +4082,8 @@ gaiaXmlBlobGetGeometry (const unsigned char *blob, int blob_size,
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return;			/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -3550,6 +4094,11 @@ gaiaXmlBlobGetGeometry (const unsigned char *blob, int blob_size,
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
@@ -3578,18 +4127,22 @@ gaiaXmlBlobGetEncoding (const unsigned char *blob, int blob_size)
     short uri_len;
     short fileid_len;
     short parentid_len;
+    short name_len;
     short title_len;
     short abstract_len;
     short geometry_len;
     unsigned char *xml;
     xmlDocPtr xml_doc;
     char *encoding = NULL;
+    int legacy_blob = 0;
     int endian_arch = gaiaEndianArch ();
     xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError;
 
 /* validity check */
     if (!gaiaIsValidXmlBlob (blob, blob_size))
 	return NULL;		/* cannot be an XmlBLOB */
+    if (*(blob + 2) == GAIA_XML_LEGACY_HEADER)
+	legacy_blob = 1;
     flag = *(blob + 1);
     if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN)
 	little_endian = 1;
@@ -3604,6 +4157,11 @@ gaiaXmlBlobGetEncoding (const unsigned char *blob, int blob_size)
     ptr += 3 + fileid_len;
     parentid_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + parentid_len;
+    if (!legacy_blob)
+      {
+	  name_len = gaiaImport16 (ptr, little_endian, endian_arch);
+	  ptr += 3 + name_len;
+      }
     title_len = gaiaImport16 (ptr, little_endian, endian_arch);
     ptr += 3 + title_len;
     abstract_len = gaiaImport16 (ptr, little_endian, endian_arch);
diff --git a/src/gaiageo/lemon/Makefile.in b/src/gaiageo/lemon/Makefile.in
index 2dbd521..045ee51 100644
--- a/src/gaiageo/lemon/Makefile.in
+++ b/src/gaiageo/lemon/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/gaiageo/lemon
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,15 +90,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -78,9 +119,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -112,6 +173,7 @@ am__relativize = \
   reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -286,14 +348,13 @@ clean-libtool:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -314,31 +375,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -354,12 +397,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -371,15 +409,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -388,9 +422,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
 
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -562,23 +597,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	cscopelist cscopelist-recursive ctags ctags-recursive \
-	distclean distclean-generic distclean-libtool distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip installcheck installcheck-am installdirs \
 	installdirs-am maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-recursive uninstall uninstall-am
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/gaiageo/lemon/lemon_src/Makefile.in b/src/gaiageo/lemon/lemon_src/Makefile.in
index 69dce35..32a82dc 100644
--- a/src/gaiageo/lemon/lemon_src/Makefile.in
+++ b/src/gaiageo/lemon/lemon_src/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/gaiageo/lemon/lemon_src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -238,11 +280,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -380,15 +420,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/gaiageo/lex.Ewkt.c b/src/gaiageo/lex.Ewkt.c
index 0db27b7..fed73c6 100644
--- a/src/gaiageo/lex.Ewkt.c
+++ b/src/gaiageo/lex.Ewkt.c
@@ -862,132 +862,111 @@ YY_DECL
 		    Ewktget_extra (yyscanner)->EwktLval.dval = atof (yytext);
 		    return EWKT_NUM;
 		}
-	    YY_BREAK case 2:
-		YY_RULE_SETUP
+		YY_BREAK case 2:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_COMMA;
 		}
-	    YY_BREAK case 3:
-		YY_RULE_SETUP
+		YY_BREAK case 3:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_OPEN_BRACKET;
 		}
-	    YY_BREAK case 4:
-		YY_RULE_SETUP
+		YY_BREAK case 4:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_CLOSE_BRACKET;
 		}
-	    YY_BREAK case 5:
-		YY_RULE_SETUP
+		YY_BREAK case 5:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_POINT;
 		}
-	    YY_BREAK case 6:
-		YY_RULE_SETUP
+		YY_BREAK case 6:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_POINT_M;
 		}
-	    YY_BREAK case 7:
-		YY_RULE_SETUP
+		YY_BREAK case 7:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_LINESTRING;
 		}
-	    YY_BREAK case 8:
-		YY_RULE_SETUP
+		YY_BREAK case 8:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_LINESTRING_M;
 		}
-	    YY_BREAK case 9:
-		YY_RULE_SETUP
+		YY_BREAK case 9:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_POLYGON;
 		}
-	    YY_BREAK case 10:
-		YY_RULE_SETUP
+		YY_BREAK case 10:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_POLYGON_M;
 		}
-	    YY_BREAK case 11:
-		YY_RULE_SETUP
+		YY_BREAK case 11:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_MULTIPOINT;
 		}
-	    YY_BREAK case 12:
-		YY_RULE_SETUP
+		YY_BREAK case 12:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_MULTIPOINT_M;
 		}
-	    YY_BREAK case 13:
-		YY_RULE_SETUP
+		YY_BREAK case 13:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_MULTILINESTRING;
 		}
-	    YY_BREAK case 14:
-		YY_RULE_SETUP
+		YY_BREAK case 14:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_MULTILINESTRING_M;
 		}
-	    YY_BREAK case 15:
-		YY_RULE_SETUP
+		YY_BREAK case 15:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_MULTIPOLYGON;
 		}
-	    YY_BREAK case 16:
-		YY_RULE_SETUP
+		YY_BREAK case 16:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_MULTIPOLYGON_M;
 		}
-	    YY_BREAK case 17:
-		YY_RULE_SETUP
+		YY_BREAK case 17:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_GEOMETRYCOLLECTION;
 		}
-	    YY_BREAK case 18:
-		YY_RULE_SETUP
+		YY_BREAK case 18:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->EwktLval.dval = 0;
 		    return EWKT_GEOMETRYCOLLECTION_M;
 		}
-	    YY_BREAK case 19:
-		YY_RULE_SETUP
+		YY_BREAK case 19:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->ewkt_col +=
 			(int) strlen (yytext);
 		}		/* ignore but count white space */
-	    YY_BREAK case 20:
+		YY_BREAK case 20:
 /* rule 20 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->ewkt_col = 0;
 		    Ewktget_extra (yyscanner)->ewkt_line++;
 		}
-	    YY_BREAK case 21:
-		YY_RULE_SETUP
+		YY_BREAK case 21:YY_RULE_SETUP
 		{
 		    Ewktget_extra (yyscanner)->ewkt_col +=
 			(int) strlen (yytext);
 		    return -1;
 		}
-	    YY_BREAK case 22:
-		YY_RULE_SETUP ECHO;
-	    YY_BREAK case YY_STATE_EOF (INITIAL):
-		yyterminate ();
+		YY_BREAK case 22:YY_RULE_SETUP ECHO;
+		YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate ();
 
 	    case YY_END_OF_BUFFER:
 		{
@@ -1261,8 +1240,9 @@ yy_get_next_buffer (yyscan_t yyscanner)
 	  yy_size_t new_size =
 	      yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
 	  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf =
-	      (char *) Ewktrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->
-				    yy_ch_buf, new_size, yyscanner);
+	      (char *) Ewktrealloc ((void *)
+				    YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,
+				    new_size, yyscanner);
 	  if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
 	      YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()");
       }
diff --git a/src/gaiageo/lex.GeoJson.c b/src/gaiageo/lex.GeoJson.c
index 9b3e540..c056df4 100644
--- a/src/gaiageo/lex.GeoJson.c
+++ b/src/gaiageo/lex.GeoJson.c
@@ -898,8 +898,7 @@ YY_DECL
 			atof (yytext);
 		    return GEOJSON_NUM;
 		}
-	    YY_BREAK case 2:
-		YY_RULE_SETUP
+		YY_BREAK case 2:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->geoJson_col +=
 			(int) strlen (yytext);
@@ -907,8 +906,7 @@ YY_DECL
 			atoi (yytext + 6);
 		    return GEOJSON_SHORT_SRID;
 		}
-	    YY_BREAK case 3:
-		YY_RULE_SETUP
+		YY_BREAK case 3:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->geoJson_col +=
 			(int) strlen (yytext);
@@ -916,150 +914,126 @@ YY_DECL
 			atoi (yytext + 22);
 		    return GEOJSON_LONG_SRID;
 		}
-	    YY_BREAK case 4:
-		YY_RULE_SETUP
+		YY_BREAK case 4:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_COMMA;
 		}
-	    YY_BREAK case 5:
-		YY_RULE_SETUP
+		YY_BREAK case 5:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_COLON;
 		}
-	    YY_BREAK case 6:
-		YY_RULE_SETUP
+		YY_BREAK case 6:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_OPEN_BRACE;
 		}
-	    YY_BREAK case 7:
-		YY_RULE_SETUP
+		YY_BREAK case 7:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_CLOSE_BRACE;
 		}
-	    YY_BREAK case 8:
-		YY_RULE_SETUP
+		YY_BREAK case 8:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_OPEN_BRACKET;
 		}
-	    YY_BREAK case 9:
-		YY_RULE_SETUP
+		YY_BREAK case 9:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_CLOSE_BRACKET;
 		}
-	    YY_BREAK case 10:
-		YY_RULE_SETUP
+		YY_BREAK case 10:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_TYPE;
 		}
-	    YY_BREAK case 11:
-		YY_RULE_SETUP
+		YY_BREAK case 11:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_COORDS;
 		}
-	    YY_BREAK case 12:
-		YY_RULE_SETUP
+		YY_BREAK case 12:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_GEOMS;
 		}
-	    YY_BREAK case 13:
-		YY_RULE_SETUP
+		YY_BREAK case 13:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_BBOX;
 		}
-	    YY_BREAK case 14:
-		YY_RULE_SETUP
+		YY_BREAK case 14:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_NAME;
 		}
-	    YY_BREAK case 15:
-		YY_RULE_SETUP
+		YY_BREAK case 15:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_PROPS;
 		}
-	    YY_BREAK case 16:
-		YY_RULE_SETUP
+		YY_BREAK case 16:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_CRS;
 		}
-	    YY_BREAK case 17:
-		YY_RULE_SETUP
+		YY_BREAK case 17:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_POINT;
 		}
-	    YY_BREAK case 18:
-		YY_RULE_SETUP
+		YY_BREAK case 18:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_LINESTRING;
 		}
-	    YY_BREAK case 19:
-		YY_RULE_SETUP
+		YY_BREAK case 19:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_POLYGON;
 		}
-	    YY_BREAK case 20:
-		YY_RULE_SETUP
+		YY_BREAK case 20:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_MULTIPOINT;
 		}
-	    YY_BREAK case 21:
-		YY_RULE_SETUP
+		YY_BREAK case 21:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_MULTILINESTRING;
 		}
-	    YY_BREAK case 22:
-		YY_RULE_SETUP
+		YY_BREAK case 22:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_MULTIPOLYGON;
 		}
-	    YY_BREAK case 23:
-		YY_RULE_SETUP
+		YY_BREAK case 23:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0;
 		    return GEOJSON_GEOMETRYCOLLECTION;
 		}
-	    YY_BREAK case 24:
-		YY_RULE_SETUP
+		YY_BREAK case 24:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->geoJson_col +=
 			(int) strlen (yytext);
 		}		/* ignore but count white space */
-	    YY_BREAK case 25:
+		YY_BREAK case 25:
 /* rule 25 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->geoJson_col = 0;
 		    GeoJsonget_extra (yyscanner)->geoJson_line++;
 		}
-	    YY_BREAK case 26:
-		YY_RULE_SETUP
+		YY_BREAK case 26:YY_RULE_SETUP
 		{
 		    GeoJsonget_extra (yyscanner)->geoJson_col +=
 			(int) strlen (yytext);
 		    return -1;
 		}
-	    YY_BREAK case 27:
-		YY_RULE_SETUP ECHO;
-	    YY_BREAK case YY_STATE_EOF (INITIAL):
-		yyterminate ();
+		YY_BREAK case 27:YY_RULE_SETUP ECHO;
+		YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate ();
 
 	    case YY_END_OF_BUFFER:
 		{
@@ -1333,8 +1307,9 @@ yy_get_next_buffer (yyscan_t yyscanner)
 	  yy_size_t new_size =
 	      yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
 	  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf =
-	      (char *) GeoJsonrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->
-				       yy_ch_buf, new_size, yyscanner);
+	      (char *) GeoJsonrealloc ((void *)
+				       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,
+				       new_size, yyscanner);
 	  if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
 	      YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()");
       }
diff --git a/src/gaiageo/lex.Gml.c b/src/gaiageo/lex.Gml.c
index 54d7f47..281f673 100644
--- a/src/gaiageo/lex.Gml.c
+++ b/src/gaiageo/lex.Gml.c
@@ -794,71 +794,62 @@ YY_DECL
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    return GML_END;
 		}
-	    YY_BREAK case 2:
-		YY_RULE_SETUP
+		YY_BREAK case 2:YY_RULE_SETUP
 		{
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    return GML_EQ;
 		}
-	    YY_BREAK case 3:
-		YY_RULE_SETUP
+		YY_BREAK case 3:YY_RULE_SETUP
 		{
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    return GML_OPEN;
 		}
-	    YY_BREAK case 4:
-		YY_RULE_SETUP
+		YY_BREAK case 4:YY_RULE_SETUP
 		{
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    return GML_CLOSE;
 		}
-	    YY_BREAK case 5:
-		YY_RULE_SETUP
+		YY_BREAK case 5:YY_RULE_SETUP
 		{
 		    gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval),
 				    yytext);
 		    return GML_COORD;
 		}
-	    YY_BREAK case 6:
+		YY_BREAK case 6:
 /* rule 6 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval),
 				    yytext);
 		    return GML_VALUE;
 		}
-	    YY_BREAK case 7:
-		YY_RULE_SETUP
+		YY_BREAK case 7:YY_RULE_SETUP
 		{
 		    gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval),
 				    yytext);
 		    return GML_KEYWORD;
 		}
-	    YY_BREAK case 8:
-		YY_RULE_SETUP
+		YY_BREAK case 8:YY_RULE_SETUP
 		{
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext);
 		}		/* ignore but count white space */
-	    YY_BREAK case 9:
+		YY_BREAK case 9:
 /* rule 9 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    Gmlget_extra (yyscanner)->gml_col = 0;
 		    Gmlget_extra (yyscanner)->gml_line++;
 		}
-	    YY_BREAK case 10:
-		YY_RULE_SETUP
+		YY_BREAK case 10:YY_RULE_SETUP
 		{
 		    gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval));
 		    Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext);
 		    return -1;
 		}
-	    YY_BREAK case 11:
-		YY_RULE_SETUP ECHO;
-	    YY_BREAK case YY_STATE_EOF (INITIAL):
-		yyterminate ();
+		YY_BREAK case 11:YY_RULE_SETUP ECHO;
+		YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate ();
 
 	    case YY_END_OF_BUFFER:
 		{
diff --git a/src/gaiageo/lex.Kml.c b/src/gaiageo/lex.Kml.c
index 10cd0fa..48ab7ae 100644
--- a/src/gaiageo/lex.Kml.c
+++ b/src/gaiageo/lex.Kml.c
@@ -794,71 +794,62 @@ YY_DECL
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    return KML_END;
 		}
-	    YY_BREAK case 2:
-		YY_RULE_SETUP
+		YY_BREAK case 2:YY_RULE_SETUP
 		{
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    return KML_EQ;
 		}
-	    YY_BREAK case 3:
-		YY_RULE_SETUP
+		YY_BREAK case 3:YY_RULE_SETUP
 		{
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    return KML_OPEN;
 		}
-	    YY_BREAK case 4:
-		YY_RULE_SETUP
+		YY_BREAK case 4:YY_RULE_SETUP
 		{
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    return KML_CLOSE;
 		}
-	    YY_BREAK case 5:
-		YY_RULE_SETUP
+		YY_BREAK case 5:YY_RULE_SETUP
 		{
 		    kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval),
 				    yytext);
 		    return KML_COORD;
 		}
-	    YY_BREAK case 6:
+		YY_BREAK case 6:
 /* rule 6 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval),
 				    yytext);
 		    return KML_VALUE;
 		}
-	    YY_BREAK case 7:
-		YY_RULE_SETUP
+		YY_BREAK case 7:YY_RULE_SETUP
 		{
 		    kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval),
 				    yytext);
 		    return KML_KEYWORD;
 		}
-	    YY_BREAK case 8:
-		YY_RULE_SETUP
+		YY_BREAK case 8:YY_RULE_SETUP
 		{
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext);
 		}		/* ignore but count white space */
-	    YY_BREAK case 9:
+		YY_BREAK case 9:
 /* rule 9 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    Kmlget_extra (yyscanner)->kml_col = 0;
 		    Kmlget_extra (yyscanner)->kml_line++;
 		}
-	    YY_BREAK case 10:
-		YY_RULE_SETUP
+		YY_BREAK case 10:YY_RULE_SETUP
 		{
 		    kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval));
 		    Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext);
 		    return -1;
 		}
-	    YY_BREAK case 11:
-		YY_RULE_SETUP ECHO;
-	    YY_BREAK case YY_STATE_EOF (INITIAL):
-		yyterminate ();
+		YY_BREAK case 11:YY_RULE_SETUP ECHO;
+		YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate ();
 
 	    case YY_END_OF_BUFFER:
 		{
diff --git a/src/gaiageo/lex.VanuatuWkt.c b/src/gaiageo/lex.VanuatuWkt.c
index 866d470..b97e3ba 100644
--- a/src/gaiageo/lex.VanuatuWkt.c
+++ b/src/gaiageo/lex.VanuatuWkt.c
@@ -911,237 +911,223 @@ YY_DECL
 			atof (yytext);
 		    return VANUATU_NUM;
 		}
-	    YY_BREAK case 2:
-		YY_RULE_SETUP
+		YY_BREAK case 2:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_COMMA;
 		}
-	    YY_BREAK case 3:
-		YY_RULE_SETUP
+		YY_BREAK case 3:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_OPEN_BRACKET;
 		}
-	    YY_BREAK case 4:
-		YY_RULE_SETUP
+		YY_BREAK case 4:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_CLOSE_BRACKET;
 		}
-	    YY_BREAK case 5:
-		YY_RULE_SETUP
+		YY_BREAK case 5:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POINT;
 		}
-	    YY_BREAK case 6:
+		YY_BREAK case 6:
 /* rule 6 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POINT_Z;
 		}
-	    YY_BREAK case 7:
+		YY_BREAK case 7:
 /* rule 7 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POINT_M;
 		}
-	    YY_BREAK case 8:
+		YY_BREAK case 8:
 /* rule 8 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POINT_ZM;
 		}
-	    YY_BREAK case 9:
-		YY_RULE_SETUP
+		YY_BREAK case 9:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_LINESTRING;
 		}
-	    YY_BREAK case 10:
+		YY_BREAK case 10:
 /* rule 10 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_LINESTRING_Z;
 		}
-	    YY_BREAK case 11:
+		YY_BREAK case 11:
 /* rule 11 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_LINESTRING_M;
 		}
-	    YY_BREAK case 12:
+		YY_BREAK case 12:
 /* rule 12 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_LINESTRING_ZM;
 		}
-	    YY_BREAK case 13:
-		YY_RULE_SETUP
+		YY_BREAK case 13:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POLYGON;
 		}
-	    YY_BREAK case 14:
+		YY_BREAK case 14:
 /* rule 14 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POLYGON_Z;
 		}
-	    YY_BREAK case 15:
+		YY_BREAK case 15:
 /* rule 15 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POLYGON_M;
 		}
-	    YY_BREAK case 16:
+		YY_BREAK case 16:
 /* rule 16 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_POLYGON_ZM;
 		}
-	    YY_BREAK case 17:
-		YY_RULE_SETUP
+		YY_BREAK case 17:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOINT;
 		}
-	    YY_BREAK case 18:
+		YY_BREAK case 18:
 /* rule 18 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOINT_Z;
 		}
-	    YY_BREAK case 19:
+		YY_BREAK case 19:
 /* rule 19 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOINT_M;
 		}
-	    YY_BREAK case 20:
+		YY_BREAK case 20:
 /* rule 20 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOINT_ZM;
 		}
-	    YY_BREAK case 21:
-		YY_RULE_SETUP
+		YY_BREAK case 21:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTILINESTRING;
 		}
-	    YY_BREAK case 22:
+		YY_BREAK case 22:
 /* rule 22 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTILINESTRING_Z;
 		}
-	    YY_BREAK case 23:
+		YY_BREAK case 23:
 /* rule 23 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTILINESTRING_M;
 		}
-	    YY_BREAK case 24:
+		YY_BREAK case 24:
 /* rule 24 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTILINESTRING_ZM;
 		}
-	    YY_BREAK case 25:
-		YY_RULE_SETUP
+		YY_BREAK case 25:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOLYGON;
 		}
-	    YY_BREAK case 26:
+		YY_BREAK case 26:
 /* rule 26 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOLYGON_Z;
 		}
-	    YY_BREAK case 27:
+		YY_BREAK case 27:
 /* rule 27 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOLYGON_M;
 		}
-	    YY_BREAK case 28:
+		YY_BREAK case 28:
 /* rule 28 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_MULTIPOLYGON_ZM;
 		}
-	    YY_BREAK case 29:
-		YY_RULE_SETUP
+		YY_BREAK case 29:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_GEOMETRYCOLLECTION;
 		}
-	    YY_BREAK case 30:
+		YY_BREAK case 30:
 /* rule 30 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_GEOMETRYCOLLECTION_Z;
 		}
-	    YY_BREAK case 31:
+		YY_BREAK case 31:
 /* rule 31 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_GEOMETRYCOLLECTION_M;
 		}
-	    YY_BREAK case 32:
+		YY_BREAK case 32:
 /* rule 32 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0;
 		    return VANUATU_GEOMETRYCOLLECTION_ZM;
 		}
-	    YY_BREAK case 33:
-		YY_RULE_SETUP
+		YY_BREAK case 33:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->vanuatu_col +=
 			(int) strlen (yytext);
 		}		/* ignore but count white space */
-	    YY_BREAK case 34:
+		YY_BREAK case 34:
 /* rule 34 can match eol */
-		YY_RULE_SETUP
+		  YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->vanuatu_col = 0;
 		    VanuatuWktget_extra (yyscanner)->vanuatu_line++;
 		}
-	    YY_BREAK case 35:
-		YY_RULE_SETUP
+		YY_BREAK case 35:YY_RULE_SETUP
 		{
 		    VanuatuWktget_extra (yyscanner)->vanuatu_col +=
 			(int) strlen (yytext);
 		    return -1;
 		}
-	    YY_BREAK case 36:
-		YY_RULE_SETUP ECHO;
-	    YY_BREAK case YY_STATE_EOF (INITIAL):
-		yyterminate ();
+		YY_BREAK case 36:YY_RULE_SETUP ECHO;
+		YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate ();
 
 	    case YY_END_OF_BUFFER:
 		{
@@ -1415,8 +1401,9 @@ yy_get_next_buffer (yyscan_t yyscanner)
 	  yy_size_t new_size =
 	      yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
 	  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf =
-	      (char *) VanuatuWktrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->
-					  yy_ch_buf, new_size, yyscanner);
+	      (char *) VanuatuWktrealloc ((void *)
+					  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,
+					  new_size, yyscanner);
 	  if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
 	      YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()");
       }
diff --git a/src/gaiageo/vanuatuWkt.c b/src/gaiageo/vanuatuWkt.c
index 579ff5d..7ef3caf 100644
--- a/src/gaiageo/vanuatuWkt.c
+++ b/src/gaiageo/vanuatuWkt.c
@@ -489,21 +489,21 @@ ParseTrace (FILE * TraceFILE, char *zTracePrompt)
 static const char *const yyTokenName[] = {
     "$", "VANUATU_NEWLINE", "VANUATU_POINT", "VANUATU_OPEN_BRACKET",
     "VANUATU_CLOSE_BRACKET", "VANUATU_POINT_M", "VANUATU_POINT_Z",
-	"VANUATU_POINT_ZM",
+    "VANUATU_POINT_ZM",
     "VANUATU_NUM", "VANUATU_COMMA", "VANUATU_LINESTRING",
-	"VANUATU_LINESTRING_M",
+    "VANUATU_LINESTRING_M",
     "VANUATU_LINESTRING_Z", "VANUATU_LINESTRING_ZM", "VANUATU_POLYGON",
-	"VANUATU_POLYGON_M",
+    "VANUATU_POLYGON_M",
     "VANUATU_POLYGON_Z", "VANUATU_POLYGON_ZM", "VANUATU_MULTIPOINT",
-	"VANUATU_MULTIPOINT_M",
+    "VANUATU_MULTIPOINT_M",
     "VANUATU_MULTIPOINT_Z", "VANUATU_MULTIPOINT_ZM", "VANUATU_MULTILINESTRING",
-	"VANUATU_MULTILINESTRING_M",
+    "VANUATU_MULTILINESTRING_M",
     "VANUATU_MULTILINESTRING_Z", "VANUATU_MULTILINESTRING_ZM",
-	"VANUATU_MULTIPOLYGON", "VANUATU_MULTIPOLYGON_M",
+    "VANUATU_MULTIPOLYGON", "VANUATU_MULTIPOLYGON_M",
     "VANUATU_MULTIPOLYGON_Z", "VANUATU_MULTIPOLYGON_ZM",
-	"VANUATU_GEOMETRYCOLLECTION", "VANUATU_GEOMETRYCOLLECTION_M",
+    "VANUATU_GEOMETRYCOLLECTION", "VANUATU_GEOMETRYCOLLECTION_M",
     "VANUATU_GEOMETRYCOLLECTION_Z", "VANUATU_GEOMETRYCOLLECTION_ZM", "error",
-	"main",
+    "main",
     "in", "state", "program", "geo_text",
     "geo_textz", "geo_textm", "geo_textzm", "point",
     "linestring", "polygon", "multipoint", "multilinestring",
@@ -515,25 +515,25 @@ static const char *const yyTokenName[] = {
     "multilinestringzm", "multipolygonzm", "geocollzm", "point_coordxy",
     "point_coordxym", "point_coordxyz", "point_coordxyzm", "point_brkt_coordxy",
     "coord", "point_brkt_coordxym", "point_brkt_coordxyz",
-	"point_brkt_coordxyzm",
+    "point_brkt_coordxyzm",
     "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz",
-	"extra_brkt_pointsxyzm",
+    "extra_brkt_pointsxyzm",
     "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm",
     "linestring_text", "linestring_textm", "linestring_textz",
-	"linestring_textzm",
+    "linestring_textzm",
     "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm",
     "ring", "extra_rings", "ringm", "extra_ringsm",
     "ringz", "extra_ringsz", "ringzm", "extra_ringszm",
     "multipoint_text", "multipoint_textm", "multipoint_textz",
-	"multipoint_textzm",
+    "multipoint_textzm",
     "multilinestring_text", "multilinestring_textm", "multilinestring_textz",
-	"multilinestring_textzm",
+    "multilinestring_textzm",
     "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2",
-	"multilinestring_textzm2",
+    "multilinestring_textzm2",
     "multipolygon_text", "multipolygon_textm", "multipolygon_textz",
-	"multipolygon_textzm",
+    "multipolygon_textzm",
     "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2",
-	"multipolygon_textzm2",
+    "multipolygon_textzm2",
     "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm",
     "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2",
 };
@@ -580,21 +580,21 @@ static const char *const yyRuleName[] = {
     /*  34 */ "geo_textzm ::= multipolygonzm",
     /*  35 */ "geo_textzm ::= geocollzm",
     /*  36 */
-	"point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET",
+    "point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET",
     /*  37 */
-	"pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET",
+    "pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET",
     /*  38 */
-	"pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET",
+    "pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET",
     /*  39 */
-	"pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET",
+    "pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET",
     /*  40 */
-	"point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET",
+    "point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET",
     /*  41 */
-	"point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET",
+    "point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET",
     /*  42 */
-	"point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET",
+    "point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET",
     /*  43 */
-	"point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET",
+    "point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET",
     /*  44 */ "point_coordxy ::= coord coord",
     /*  45 */ "point_coordxym ::= coord coord coord",
     /*  46 */ "point_coordxyz ::= coord coord coord",
@@ -602,65 +602,65 @@ static const char *const yyRuleName[] = {
     /*  48 */ "coord ::= VANUATU_NUM",
     /*  49 */ "extra_brkt_pointsxy ::=",
     /*  50 */
-	"extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy",
+    "extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy",
     /*  51 */ "extra_brkt_pointsxym ::=",
     /*  52 */
-	"extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym",
+    "extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym",
     /*  53 */ "extra_brkt_pointsxyz ::=",
     /*  54 */
-	"extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz",
+    "extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz",
     /*  55 */ "extra_brkt_pointsxyzm ::=",
     /*  56 */
-	"extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm",
+    "extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm",
     /*  57 */ "extra_pointsxy ::=",
     /*  58 */ "extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy",
     /*  59 */ "extra_pointsxym ::=",
     /*  60 */
-	"extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym",
+    "extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym",
     /*  61 */ "extra_pointsxyz ::=",
     /*  62 */
-	"extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz",
+    "extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz",
     /*  63 */ "extra_pointsxyzm ::=",
     /*  64 */
-	"extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm",
+    "extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm",
     /*  65 */ "linestring ::= VANUATU_LINESTRING linestring_text",
     /*  66 */ "linestringm ::= VANUATU_LINESTRING_M linestring_textm",
     /*  67 */ "linestringz ::= VANUATU_LINESTRING_Z linestring_textz",
     /*  68 */ "linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm",
     /*  69 */
-	"linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET",
+    "linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET",
     /*  70 */
-	"linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET",
+    "linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET",
     /*  71 */
-	"linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET",
+    "linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET",
     /*  72 */
-	"linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET",
+    "linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET",
     /*  73 */ "polygon ::= VANUATU_POLYGON polygon_text",
     /*  74 */ "polygonm ::= VANUATU_POLYGON_M polygon_textm",
     /*  75 */ "polygonz ::= VANUATU_POLYGON_Z polygon_textz",
     /*  76 */ "polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm",
     /*  77 */
-	"polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET",
+    "polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET",
     /*  78 */
-	"polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET",
+    "polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET",
     /*  79 */
-	"polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET",
+    "polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET",
     /*  80 */
-	"polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET",
+    "polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET",
     /*  81 */
-	"ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET",
+    "ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET",
     /*  82 */ "extra_rings ::=",
     /*  83 */ "extra_rings ::= VANUATU_COMMA ring extra_rings",
     /*  84 */
-	"ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET",
+    "ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET",
     /*  85 */ "extra_ringsm ::=",
     /*  86 */ "extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm",
     /*  87 */
-	"ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET",
+    "ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET",
     /*  88 */ "extra_ringsz ::=",
     /*  89 */ "extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz",
     /*  90 */
-	"ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET",
+    "ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET",
     /*  91 */ "extra_ringszm ::=",
     /*  92 */ "extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm",
     /*  93 */ "multipoint ::= VANUATU_MULTIPOINT multipoint_text",
@@ -668,91 +668,91 @@ static const char *const yyRuleName[] = {
     /*  95 */ "multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz",
     /*  96 */ "multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm",
     /*  97 */
-	"multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET",
+    "multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET",
     /*  98 */
-	"multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET",
+    "multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET",
     /*  99 */
-	"multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET",
+    "multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET",
     /* 100 */
-	"multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET",
+    "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET",
     /* 101 */
-	"multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET",
+    "multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET",
     /* 102 */
-	"multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET",
+    "multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET",
     /* 103 */
-	"multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET",
+    "multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET",
     /* 104 */
-	"multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET",
+    "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET",
     /* 105 */
-	"multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text",
+    "multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text",
     /* 106 */
-	"multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm",
+    "multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm",
     /* 107 */
-	"multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz",
+    "multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz",
     /* 108 */
-	"multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm",
+    "multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm",
     /* 109 */
-	"multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET",
+    "multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET",
     /* 110 */ "multilinestring_text2 ::=",
     /* 111 */
-	"multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2",
+    "multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2",
     /* 112 */
-	"multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET",
+    "multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET",
     /* 113 */ "multilinestring_textm2 ::=",
     /* 114 */
-	"multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2",
+    "multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2",
     /* 115 */
-	"multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET",
+    "multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET",
     /* 116 */ "multilinestring_textz2 ::=",
     /* 117 */
-	"multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2",
+    "multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2",
     /* 118 */
-	"multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET",
+    "multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET",
     /* 119 */ "multilinestring_textzm2 ::=",
     /* 120 */
-	"multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2",
+    "multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2",
     /* 121 */ "multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text",
     /* 122 */ "multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm",
     /* 123 */ "multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz",
     /* 124 */ "multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm",
     /* 125 */
-	"multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET",
+    "multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET",
     /* 126 */ "multipolygon_text2 ::=",
     /* 127 */
-	"multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2",
+    "multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2",
     /* 128 */
-	"multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET",
+    "multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET",
     /* 129 */ "multipolygon_textm2 ::=",
     /* 130 */
-	"multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2",
+    "multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2",
     /* 131 */
-	"multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET",
+    "multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET",
     /* 132 */ "multipolygon_textz2 ::=",
     /* 133 */
-	"multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2",
+    "multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2",
     /* 134 */
-	"multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET",
+    "multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET",
     /* 135 */ "multipolygon_textzm2 ::=",
     /* 136 */
-	"multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2",
+    "multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2",
     /* 137 */ "geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text",
     /* 138 */ "geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm",
     /* 139 */ "geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz",
     /* 140 */ "geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm",
     /* 141 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 142 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 143 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 144 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 145 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 146 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 147 */
-	"geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET",
+    "geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET",
     /* 148 */ "geocoll_text2 ::=",
     /* 149 */ "geocoll_text2 ::= VANUATU_COMMA point geocoll_text2",
     /* 150 */ "geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2",
@@ -761,80 +761,80 @@ static const char *const yyRuleName[] = {
     /* 153 */ "geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2",
     /* 154 */ "geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2",
     /* 155 */
-	"geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2",
+    "geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2",
     /* 156 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 157 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 158 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 159 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 160 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 161 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 162 */
-	"geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET",
     /* 163 */ "geocoll_textm2 ::=",
     /* 164 */ "geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2",
     /* 165 */ "geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2",
     /* 166 */ "geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2",
     /* 167 */ "geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2",
     /* 168 */
-	"geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2",
+    "geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2",
     /* 169 */ "geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2",
     /* 170 */
-	"geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2",
+    "geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2",
     /* 171 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 172 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 173 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 174 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 175 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 176 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 177 */
-	"geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET",
     /* 178 */ "geocoll_textz2 ::=",
     /* 179 */ "geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2",
     /* 180 */ "geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2",
     /* 181 */ "geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2",
     /* 182 */ "geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2",
     /* 183 */
-	"geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2",
+    "geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2",
     /* 184 */ "geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2",
     /* 185 */
-	"geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2",
+    "geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2",
     /* 186 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 187 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 188 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 189 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 190 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 191 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 192 */
-	"geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
+    "geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET",
     /* 193 */ "geocoll_textzm2 ::=",
     /* 194 */ "geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2",
     /* 195 */ "geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2",
     /* 196 */ "geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2",
     /* 197 */ "geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2",
     /* 198 */
-	"geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2",
+    "geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2",
     /* 199 */
-	"geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2",
+    "geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2",
     /* 200 */
-	"geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2",
+    "geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2",
 };
 #endif /* NDEBUG */
 
@@ -1917,8 +1917,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 	  {
 	      yygotominor.yy0 =
 		  vanuatu_buildGeomFromLinestring (p_data,
-						   (gaiaLinestringPtr) yymsp[0].
-						   minor.yy0);
+						   (gaiaLinestringPtr)
+						   yymsp[0].minor.yy0);
 	  }
 	  break;
       case 69:			/* linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */
@@ -1929,8 +1929,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-2].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_linestring_xy (p_data,
-						  (gaiaPointPtr) yymsp[-4].
-						  minor.yy0);
+						  (gaiaPointPtr)
+						  yymsp[-4].minor.yy0);
 	  }
 	  break;
       case 70:			/* linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */
@@ -1941,8 +1941,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-2].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_linestring_xym (p_data,
-						   (gaiaPointPtr) yymsp[-4].
-						   minor.yy0);
+						   (gaiaPointPtr)
+						   yymsp[-4].minor.yy0);
 	  }
 	  break;
       case 71:			/* linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */
@@ -1953,8 +1953,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-2].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_linestring_xyz (p_data,
-						   (gaiaPointPtr) yymsp[-4].
-						   minor.yy0);
+						   (gaiaPointPtr)
+						   yymsp[-4].minor.yy0);
 	  }
 	  break;
       case 72:			/* linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */
@@ -1965,8 +1965,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-2].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_linestring_xyzm (p_data,
-						    (gaiaPointPtr) yymsp[-4].
-						    minor.yy0);
+						    (gaiaPointPtr)
+						    yymsp[-4].minor.yy0);
 	  }
 	  break;
       case 73:			/* polygon ::= VANUATU_POLYGON polygon_text */
@@ -2107,8 +2107,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipoint_xy (p_data,
-						  (gaiaPointPtr) yymsp[-2].
-						  minor.yy0);
+						  (gaiaPointPtr)
+						  yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 98:			/* multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */
@@ -2119,8 +2119,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipoint_xym (p_data,
-						   (gaiaPointPtr) yymsp[-2].
-						   minor.yy0);
+						   (gaiaPointPtr)
+						   yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 99:			/* multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */
@@ -2131,8 +2131,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipoint_xyz (p_data,
-						   (gaiaPointPtr) yymsp[-2].
-						   minor.yy0);
+						   (gaiaPointPtr)
+						   yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 100:		/* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */
@@ -2143,8 +2143,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPointPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipoint_xyzm (p_data,
-						    (gaiaPointPtr) yymsp[-2].
-						    minor.yy0);
+						    (gaiaPointPtr)
+						    yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 109:		/* multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET */
@@ -2206,8 +2206,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipolygon_xy (p_data,
-						    (gaiaPolygonPtr) yymsp[-2].
-						    minor.yy0);
+						    (gaiaPolygonPtr)
+						    yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 127:		/* multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2 */
@@ -2229,8 +2229,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipolygon_xym (p_data,
-						     (gaiaPolygonPtr) yymsp[-2].
-						     minor.yy0);
+						     (gaiaPolygonPtr)
+						     yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 131:		/* multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET */
@@ -2239,8 +2239,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaPolygonPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_multipolygon_xyz (p_data,
-						     (gaiaPolygonPtr) yymsp[-2].
-						     minor.yy0);
+						     (gaiaPolygonPtr)
+						     yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 134:		/* multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET */
@@ -2271,8 +2271,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_geomColl_xy (p_data,
-						(gaiaGeomCollPtr) yymsp[-2].
-						minor.yy0);
+						(gaiaGeomCollPtr)
+						yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 149:		/* geocoll_text2 ::= VANUATU_COMMA point geocoll_text2 */
@@ -2354,8 +2354,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_geomColl_xym (p_data,
-						 (gaiaGeomCollPtr) yymsp[-2].
-						 minor.yy0);
+						 (gaiaGeomCollPtr)
+						 yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 171:		/* geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET */
@@ -2376,8 +2376,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_geomColl_xyz (p_data,
-						 (gaiaGeomCollPtr) yymsp[-2].
-						 minor.yy0);
+						 (gaiaGeomCollPtr)
+						 yymsp[-2].minor.yy0);
 	  }
 	  break;
       case 186:		/* geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */
@@ -2398,8 +2398,8 @@ yy_reduce (yyParser * yypParser,	/* The parser */
 		  (gaiaGeomCollPtr) yymsp[-1].minor.yy0;
 	      yygotominor.yy0 =
 		  (void *) vanuatu_geomColl_xyzm (p_data,
-						  (gaiaGeomCollPtr) yymsp[-2].
-						  minor.yy0);
+						  (gaiaGeomCollPtr)
+						  yymsp[-2].minor.yy0);
 	  }
 	  break;
       default:
@@ -2644,9 +2644,8 @@ Parse (void *yyp,		/* The parser */
 		      while (yypParser->yyidx >= 0 &&
 			     yymx != YYERRORSYMBOL &&
 			     (yyact =
-			      yy_find_reduce_action (yypParser->
-						     yystack[yypParser->yyidx].
-						     stateno,
+			      yy_find_reduce_action (yypParser->yystack
+						     [yypParser->yyidx].stateno,
 						     YYERRORSYMBOL)) >=
 			     YYNSTATE)
 			{
diff --git a/src/geopackage/Makefile.am b/src/geopackage/Makefile.am
index 134c5ec..8d36eac 100644
--- a/src/geopackage/Makefile.am
+++ b/src/geopackage/Makefile.am
@@ -1,23 +1,39 @@
 AM_CFLAGS = $(GCOV_FLAGS)
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libgeopackage.la 
+noinst_LTLIBRARIES = libgeopackage.la geopackage.la
 
-libgeopackage_la_SOURCES = \
+SHARED_SOURCES = \
 	gpkg_add_tile_triggers.c \
-	gpkg_add_rt_metadata_triggers.c \
 	gpkg_get_normal_row.c \
 	gpkg_get_normal_zoom.c \
-	gpkg_point_to_tile.c \
 	gpkgGetImageType.c \
 	gpkgCreateBaseTables.c \
+	gpkgInsertEpsgSRID.c \
 	gpkgCreateTilesTable.c \
-	gpkgCreateTilesZoomLevel.c
+	gpkgCreateTilesZoomLevel.c \
+	gpkgAddGeometryColumn.c \
+	gpkgMakePoint.c \
+	gpkgBinary.c \
+	gpkg_add_geometry_triggers.c \
+	gpkg_add_spatial_index.c \
+	gaia_cvt_gpkg.c
+
+libgeopackage_la_SOURCES = $(SHARED_SOURCES)
 
 libgeopackage_la_CFLAGS = -fvisibility=hidden
 
+geopackage_la_SOURCES = $(SHARED_SOURCES)
+
+geopackage_la_CPPFLAGS = @CFLAGS@
+geopackage_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+geopackage_la_CPPFLAGS += -DLOADABLE_EXTENSION
+geopackage_la_CPPFLAGS += -fvisibility=hidden
+geopackage_la_LDFLAGS = -module
+geopackage_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 
 EXTRA_DIST = geopackage_internal.h
diff --git a/src/geopackage/Makefile.in b/src/geopackage/Makefile.in
index bd2435b..c73f0c3 100644
--- a/src/geopackage/Makefile.in
+++ b/src/geopackage/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/geopackage
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -65,46 +93,115 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
+geopackage_la_LIBADD =
+am__objects_1 = geopackage_la-gpkg_add_tile_triggers.lo \
+	geopackage_la-gpkg_get_normal_row.lo \
+	geopackage_la-gpkg_get_normal_zoom.lo \
+	geopackage_la-gpkgGetImageType.lo \
+	geopackage_la-gpkgCreateBaseTables.lo \
+	geopackage_la-gpkgInsertEpsgSRID.lo \
+	geopackage_la-gpkgCreateTilesTable.lo \
+	geopackage_la-gpkgCreateTilesZoomLevel.lo \
+	geopackage_la-gpkgAddGeometryColumn.lo \
+	geopackage_la-gpkgMakePoint.lo geopackage_la-gpkgBinary.lo \
+	geopackage_la-gpkg_add_geometry_triggers.lo \
+	geopackage_la-gpkg_add_spatial_index.lo \
+	geopackage_la-gaia_cvt_gpkg.lo
+am_geopackage_la_OBJECTS = $(am__objects_1)
+geopackage_la_OBJECTS = $(am_geopackage_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+geopackage_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(geopackage_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
 libgeopackage_la_LIBADD =
-am_libgeopackage_la_OBJECTS =  \
-	libgeopackage_la-gpkg_add_tile_triggers.lo \
-	libgeopackage_la-gpkg_add_rt_metadata_triggers.lo \
+am__objects_2 = libgeopackage_la-gpkg_add_tile_triggers.lo \
 	libgeopackage_la-gpkg_get_normal_row.lo \
 	libgeopackage_la-gpkg_get_normal_zoom.lo \
-	libgeopackage_la-gpkg_point_to_tile.lo \
 	libgeopackage_la-gpkgGetImageType.lo \
 	libgeopackage_la-gpkgCreateBaseTables.lo \
+	libgeopackage_la-gpkgInsertEpsgSRID.lo \
 	libgeopackage_la-gpkgCreateTilesTable.lo \
-	libgeopackage_la-gpkgCreateTilesZoomLevel.lo
+	libgeopackage_la-gpkgCreateTilesZoomLevel.lo \
+	libgeopackage_la-gpkgAddGeometryColumn.lo \
+	libgeopackage_la-gpkgMakePoint.lo \
+	libgeopackage_la-gpkgBinary.lo \
+	libgeopackage_la-gpkg_add_geometry_triggers.lo \
+	libgeopackage_la-gpkg_add_spatial_index.lo \
+	libgeopackage_la-gaia_cvt_gpkg.lo
+am_libgeopackage_la_OBJECTS = $(am__objects_2)
 libgeopackage_la_OBJECTS = $(am_libgeopackage_la_OBJECTS)
-libgeopackage_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgeopackage_la_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+libgeopackage_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgeopackage_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libgeopackage_la_SOURCES)
-DIST_SOURCES = $(libgeopackage_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(geopackage_la_SOURCES) $(libgeopackage_la_SOURCES)
+DIST_SOURCES = $(geopackage_la_SOURCES) $(libgeopackage_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -232,20 +329,31 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 AM_CFLAGS = $(GCOV_FLAGS)
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libgeopackage.la 
-libgeopackage_la_SOURCES = \
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libgeopackage.la geopackage.la
+SHARED_SOURCES = \
 	gpkg_add_tile_triggers.c \
-	gpkg_add_rt_metadata_triggers.c \
 	gpkg_get_normal_row.c \
 	gpkg_get_normal_zoom.c \
-	gpkg_point_to_tile.c \
 	gpkgGetImageType.c \
 	gpkgCreateBaseTables.c \
+	gpkgInsertEpsgSRID.c \
 	gpkgCreateTilesTable.c \
-	gpkgCreateTilesZoomLevel.c
-
+	gpkgCreateTilesZoomLevel.c \
+	gpkgAddGeometryColumn.c \
+	gpkgMakePoint.c \
+	gpkgBinary.c \
+	gpkg_add_geometry_triggers.c \
+	gpkg_add_spatial_index.c \
+	gaia_cvt_gpkg.c
+
+libgeopackage_la_SOURCES = $(SHARED_SOURCES)
 libgeopackage_la_CFLAGS = -fvisibility=hidden
+geopackage_la_SOURCES = $(SHARED_SOURCES)
+geopackage_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION -fvisibility=hidden
+geopackage_la_LDFLAGS = -module
+geopackage_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 EXTRA_DIST = geopackage_internal.h
 all: all-am
@@ -293,8 +401,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
+geopackage.la: $(geopackage_la_OBJECTS) $(geopackage_la_DEPENDENCIES) $(EXTRA_geopackage_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(geopackage_la_LINK)  $(geopackage_la_OBJECTS) $(geopackage_la_LIBADD) $(LIBS)
+
 libgeopackage.la: $(libgeopackage_la_OBJECTS) $(libgeopackage_la_DEPENDENCIES) $(EXTRA_libgeopackage_la_DEPENDENCIES) 
-	$(libgeopackage_la_LINK)  $(libgeopackage_la_OBJECTS) $(libgeopackage_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(libgeopackage_la_LINK)  $(libgeopackage_la_OBJECTS) $(libgeopackage_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -302,99 +414,251 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgBinary.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgGetImageType.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkgMakePoint.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkg_get_normal_row.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgBinary.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkgMakePoint.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgeopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkg_add_tile_triggers.c' object='libgeopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@
+geopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Tpo -c -o geopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_add_tile_triggers.c' object='geopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c
 
-libgeopackage_la-gpkg_add_rt_metadata_triggers.lo: gpkg_add_rt_metadata_triggers.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_rt_metadata_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Tpo -c -o libgeopackage_la-gpkg_add_rt_metadata_triggers.lo `test -f 'gpkg_add_rt_metadata_triggers.c' || echo '$(srcdir)/'`gpkg_add_rt_metadata_triggers.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_rt_metadata_triggers.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkg_add_rt_metadata_triggers.c' object='libgeopackage_la-gpkg_add_rt_metadata_triggers.lo' libtool=yes @AMDEPBACKSLASH@
+geopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Tpo -c -o geopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_get_normal_row.c' object='geopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_rt_metadata_triggers.lo `test -f 'gpkg_add_rt_metadata_triggers.c' || echo '$(srcdir)/'`gpkg_add_rt_metadata_triggers.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c
 
-libgeopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkg_get_normal_row.c' object='libgeopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@
+geopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Tpo -c -o geopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_get_normal_zoom.c' object='geopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c
 
-libgeopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkg_get_normal_zoom.c' object='libgeopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@
+geopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgGetImageType.Tpo -c -o geopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/geopackage_la-gpkgGetImageType.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgGetImageType.c' object='geopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c
+
+geopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Tpo -c -o geopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgCreateBaseTables.c' object='geopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c
+
+geopackage_la-gpkgInsertEpsgSRID.lo: gpkgInsertEpsgSRID.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgInsertEpsgSRID.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Tpo -c -o geopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Tpo $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgInsertEpsgSRID.c' object='geopackage_la-gpkgInsertEpsgSRID.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c
+
+geopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Tpo -c -o geopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgCreateTilesTable.c' object='geopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c
+
+geopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o geopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgCreateTilesZoomLevel.c' object='geopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c
+
+geopackage_la-gpkgAddGeometryColumn.lo: gpkgAddGeometryColumn.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgAddGeometryColumn.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Tpo -c -o geopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Tpo $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgAddGeometryColumn.c' object='geopackage_la-gpkgAddGeometryColumn.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c
+
+geopackage_la-gpkgMakePoint.lo: gpkgMakePoint.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgMakePoint.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgMakePoint.Tpo -c -o geopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgMakePoint.Tpo $(DEPDIR)/geopackage_la-gpkgMakePoint.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgMakePoint.c' object='geopackage_la-gpkgMakePoint.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c
+
+geopackage_la-gpkgBinary.lo: gpkgBinary.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgBinary.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgBinary.Tpo -c -o geopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgBinary.Tpo $(DEPDIR)/geopackage_la-gpkgBinary.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgBinary.c' object='geopackage_la-gpkgBinary.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c
+
+geopackage_la-gpkg_add_geometry_triggers.lo: gpkg_add_geometry_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_geometry_triggers.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Tpo -c -o geopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Tpo $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_add_geometry_triggers.c' object='geopackage_la-gpkg_add_geometry_triggers.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c
 
-libgeopackage_la-gpkg_point_to_tile.lo: gpkg_point_to_tile.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_point_to_tile.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Tpo -c -o libgeopackage_la-gpkg_point_to_tile.lo `test -f 'gpkg_point_to_tile.c' || echo '$(srcdir)/'`gpkg_point_to_tile.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Tpo $(DEPDIR)/libgeopackage_la-gpkg_point_to_tile.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkg_point_to_tile.c' object='libgeopackage_la-gpkg_point_to_tile.lo' libtool=yes @AMDEPBACKSLASH@
+geopackage_la-gpkg_add_spatial_index.lo: gpkg_add_spatial_index.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_spatial_index.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Tpo -c -o geopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Tpo $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_add_spatial_index.c' object='geopackage_la-gpkg_add_spatial_index.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_point_to_tile.lo `test -f 'gpkg_point_to_tile.c' || echo '$(srcdir)/'`gpkg_point_to_tile.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c
+
+geopackage_la-gaia_cvt_gpkg.lo: gaia_cvt_gpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gaia_cvt_gpkg.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Tpo -c -o geopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Tpo $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gaia_cvt_gpkg.c' object='geopackage_la-gaia_cvt_gpkg.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c
+
+libgeopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_add_tile_triggers.c' object='libgeopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c
+
+libgeopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_get_normal_row.c' object='libgeopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c
+
+libgeopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_get_normal_zoom.c' object='libgeopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c
 
 libgeopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkgGetImageType.c' object='libgeopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgGetImageType.c' object='libgeopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c
 
 libgeopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkgCreateBaseTables.c' object='libgeopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgCreateBaseTables.c' object='libgeopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c
+
+libgeopackage_la-gpkgInsertEpsgSRID.lo: gpkgInsertEpsgSRID.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgInsertEpsgSRID.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Tpo -c -o libgeopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Tpo $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgInsertEpsgSRID.c' object='libgeopackage_la-gpkgInsertEpsgSRID.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c
 
 libgeopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkgCreateTilesTable.c' object='libgeopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgCreateTilesTable.c' object='libgeopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c
 
 libgeopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gpkgCreateTilesZoomLevel.c' object='libgeopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgCreateTilesZoomLevel.c' object='libgeopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c
+
+libgeopackage_la-gpkgAddGeometryColumn.lo: gpkgAddGeometryColumn.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgAddGeometryColumn.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Tpo -c -o libgeopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Tpo $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgAddGeometryColumn.c' object='libgeopackage_la-gpkgAddGeometryColumn.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c
+
+libgeopackage_la-gpkgMakePoint.lo: gpkgMakePoint.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgMakePoint.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Tpo -c -o libgeopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Tpo $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgMakePoint.c' object='libgeopackage_la-gpkgMakePoint.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c
+
+libgeopackage_la-gpkgBinary.lo: gpkgBinary.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgBinary.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgBinary.Tpo -c -o libgeopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgBinary.Tpo $(DEPDIR)/libgeopackage_la-gpkgBinary.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkgBinary.c' object='libgeopackage_la-gpkgBinary.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c
+
+libgeopackage_la-gpkg_add_geometry_triggers.lo: gpkg_add_geometry_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_geometry_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Tpo -c -o libgeopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_add_geometry_triggers.c' object='libgeopackage_la-gpkg_add_geometry_triggers.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c
+
+libgeopackage_la-gpkg_add_spatial_index.lo: gpkg_add_spatial_index.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_spatial_index.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Tpo -c -o libgeopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gpkg_add_spatial_index.c' object='libgeopackage_la-gpkg_add_spatial_index.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c
+
+libgeopackage_la-gaia_cvt_gpkg.lo: gaia_cvt_gpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gaia_cvt_gpkg.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Tpo -c -o libgeopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Tpo $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gaia_cvt_gpkg.c' object='libgeopackage_la-gaia_cvt_gpkg.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -402,26 +666,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -433,15 +686,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -450,9 +699,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -606,9 +856,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -618,7 +868,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/geopackage/gaia_cvt_gpkg.c b/src/geopackage/gaia_cvt_gpkg.c
new file mode 100644
index 0000000..a8ccc08
--- /dev/null
+++ b/src/geopackage/gaia_cvt_gpkg.c
@@ -0,0 +1,1412 @@
+/*
+
+ gaia_cvt_gpkg.c -- implements GPKG DB conversion [both directions]
+
+ version 4.2, 2014 May 10
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2008-2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s): Brad Hards <bradh at frogmouth.net>
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include "config.h"
+
+#ifdef ENABLE_GEOPACKAGE	/* enabling GeoPackage extensions */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <spatialite/sqlite.h>
+#include <spatialite/debug.h>
+#include <spatialite.h>
+#include <spatialite/gaiaaux.h>
+#include <spatialite/geopackage.h>
+
+struct pk_item
+{
+/* a struct wrapping a Primary Key item */
+    int position;
+    char *column;
+    struct pk_item *next;
+};
+
+struct primary_key
+{
+/* a struct wrapping a Primary Key */
+    struct pk_item *first;
+    struct pk_item *last;
+    int num_items;
+    struct pk_item **array;
+};
+
+static struct primary_key *
+alloc_pk ()
+{
+/* creating an empty Primary Key */
+    struct primary_key *pk = malloc (sizeof (struct primary_key));
+    pk->first = NULL;
+    pk->last = NULL;
+    pk->num_items = 0;
+    pk->array = NULL;
+    return pk;
+}
+
+static void
+destroy_pk (struct primary_key *pk)
+{
+/* destroying a Primary Key */
+    struct pk_item *pi;
+    struct pk_item *pin;
+    if (pk == NULL)
+	return;
+    pi = pk->first;
+    while (pi != NULL)
+      {
+	  pin = pi->next;
+	  if (pi->column != NULL)
+	      free (pi->column);
+	  free (pi);
+	  pi = pin;
+      }
+    if (pk->array != NULL)
+	free (pk->array);
+    free (pk);
+}
+
+static void
+add_to_pk (struct primary_key *pk, int position, const char *column)
+{
+/* appending an item to a Primary Key */
+    int len;
+    struct pk_item *pi;
+    if (pk == NULL)
+	return;
+    pi = malloc (sizeof (struct pk_item));
+    pi->position = position;
+    len = strlen (column);
+    pi->column = malloc (len + 1);
+    strcpy (pi->column, column);
+    pi->next = NULL;
+    if (pk->first == NULL)
+	pk->first = pi;
+    if (pk->last != NULL)
+	pk->last->next = pi;
+    pk->last = pi;
+    pk->num_items += 1;
+}
+
+static void
+sort_pk (struct primary_key *pk)
+{
+/* sorting the PK items by increasing position */
+    struct pk_item *pi;
+    struct pk_item *pi2;
+    int i;
+    int ok = 1;
+    if (pk == NULL)
+	return;
+    if (pk->array != NULL)
+	free (pk->array);
+    pk->array = NULL;
+    if (pk->num_items <= 0)
+	return;
+    pk->array = malloc (sizeof (struct pk_item *) * pk->num_items);
+    pi = pk->first;
+    i = 0;
+    while (pi != NULL)
+      {
+	  /* pre-loading the array */
+	  *(pk->array + i++) = pi;
+	  pi = pi->next;
+      }
+    while (ok)
+      {
+	  /* bubble sort */
+	  ok = 0;
+	  for (i = 1; i < pk->num_items; i++)
+	    {
+		pi = *(pk->array + (i - 1));
+		pi2 = *(pk->array + i);
+		if (pi->position > pi2->position)
+		  {
+		      /* swapping */
+		      *(pk->array + (i - 1)) = pi2;
+		      *(pk->array + i) = pi;
+		      ok = 1;
+		  }
+	    }
+      }
+}
+
+static int
+create_gpkg_destination (sqlite3 * handle, const char *create_sql,
+			 const char *table_name, const char *column_name,
+			 const char *geometry_type, int has_z, int has_m,
+			 int srid, int spatial_index)
+{
+/* attempting to create a GPKG destination table */
+    int ret;
+    char *sql_err = NULL;
+    char *sql;
+
+/* creating the table */
+    ret = sqlite3_exec (handle, create_sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CREATE TABLE \"%s\" error: %s\n", table_name, sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* adding the geometry column */
+    sql =
+	sqlite3_mprintf
+	("SELECT gpkgAddGeometryColumn(Lower(%Q), Lower(%Q), %Q, %d, %d, %d)",
+	 table_name, column_name, geometry_type, has_z, has_m, srid);
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("gpkgAddGeometryColumn \"%s\" error: %s\n", table_name,
+			sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* adding the geometry triggers */
+    sql =
+	sqlite3_mprintf
+	("SELECT gpkgAddGeometryTriggers(Lower(%Q), Lower(%Q))",
+	 table_name, column_name);
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("gpkgAddGeometryTriggers \"%s\" error: %s\n",
+			table_name, sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    if (spatial_index)
+      {
+	  /* adding Spatial Index support */
+	  sql =
+	      sqlite3_mprintf
+	      ("SELECT gpkgAddSpatialIndex(Lower(%Q), Lower(%Q))",
+	       table_name, column_name);
+	  ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+	  sqlite3_free (sql);
+	  if (ret != SQLITE_OK)
+	    {
+		spatialite_e ("gpkgAddSpatialIndex \"%s\" error: %s\n",
+			      table_name, sql_err);
+		sqlite3_free (sql_err);
+		return 0;
+	    }
+      }
+    return 1;
+}
+
+static int
+create_spatialite_destination (sqlite3 * handle, const char *create_sql,
+			       const char *table_name, const char *column_name,
+			       const char *geometry_type, const char *dims,
+			       int srid)
+{
+/* attempting to create a Spatialite destination table */
+    int ret;
+    char *sql_err = NULL;
+    char *sql;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    int ok = 0;
+
+/* creating the table */
+    ret = sqlite3_exec (handle, create_sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CREATE TABLE \"%s\" error: %s\n", table_name, sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* adding the geometry column */
+    sql =
+	sqlite3_mprintf
+	("SELECT AddGeometryColumn(Lower(%Q), Lower(%Q), %d, %Q, %Q)",
+	 table_name, column_name, srid, geometry_type, dims);
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	      ok = atoi (results[(i * columns) + 0]);
+      }
+    sqlite3_free_table (results);
+    if (!ok)
+      {
+	  spatialite_e ("AddGeometryColumn \"%s\": error\n", table_name);
+	  return 0;
+      }
+    return 1;
+}
+
+static char *
+prepare_create_table (sqlite3 * handle, const char *table_name,
+		      const char *column_name)
+{
+/* building a CREATE TABLE statement */
+    int ret;
+    char *sql;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *create_sql;
+    char *prev_sql;
+    char *xtable;
+    int first = 1;
+    struct primary_key *pk = alloc_pk ();
+
+    xtable = gaiaDoubleQuotedSql (table_name);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable);
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	return 0;
+    create_sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (", xtable);
+    free (xtable);
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		const char *name;
+		const char *type;
+		int not_null;
+		int pk_idx;
+		char *xname;
+		char *xtype;
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, column_name) == 0)
+		  {
+		      /* skipping the geometry column */
+		      continue;
+		  }
+		type = results[(i * columns) + 2];
+		not_null = atoi (results[(i * columns) + 3]);
+		pk_idx = atoi (results[(i * columns) + 5]);
+		if (pk_idx > 0)
+		    add_to_pk (pk, pk_idx, name);
+		xname = gaiaDoubleQuotedSql (name);
+		xtype = gaiaDoubleQuotedSql (type);
+		prev_sql = create_sql;
+		if (first)
+		  {
+		      if (not_null)
+			  create_sql =
+			      sqlite3_mprintf ("%s\n\t\"%s\" \"%s\" NOT NULL",
+					       prev_sql, xname, xtype);
+		      else
+			  create_sql =
+			      sqlite3_mprintf ("%s\n\t\"%s\" \"%s\"", prev_sql,
+					       xname, xtype);
+		      first = 0;
+		  }
+		else
+		  {
+		      if (not_null)
+			  create_sql =
+			      sqlite3_mprintf ("%s,\n\t\"%s\" \"%s\" NOT NULL",
+					       prev_sql, xname, xtype);
+		      else
+			  create_sql =
+			      sqlite3_mprintf ("%s,\n\t\"%s\" \"%s\"", prev_sql,
+					       xname, xtype);
+		  }
+		free (xname);
+		free (xtype);
+		sqlite3_free (prev_sql);
+	    }
+      }
+    sqlite3_free_table (results);
+
+    if (pk->num_items > 0)
+      {
+	  /* setting up the Primary Key (if any) */
+	  char *pk_name;
+	  char *xpk_name;
+	  int idx;
+	  sort_pk (pk);
+	  prev_sql = create_sql;
+	  pk_name = sqlite3_mprintf ("pk_%s", table_name);
+	  xpk_name = gaiaDoubleQuotedSql (pk_name);
+	  sqlite3_free (pk_name);
+	  create_sql =
+	      sqlite3_mprintf ("%s,\n\tCONSTRAINT \"%s\" PRIMARY KEY (",
+			       prev_sql, xpk_name);
+	  free (xpk_name);
+	  sqlite3_free (prev_sql);
+	  for (idx = 0; idx < pk->num_items; idx++)
+	    {
+		char *xcolumn;
+		struct pk_item *pi = *(pk->array + idx);
+		prev_sql = create_sql;
+		xcolumn = gaiaDoubleQuotedSql (pi->column);
+		if (idx == 0)
+		    create_sql =
+			sqlite3_mprintf ("%s\"%s\"", prev_sql, xcolumn);
+		else
+		    create_sql =
+			sqlite3_mprintf ("%s, \"%s\"", prev_sql, xcolumn);
+		free (xcolumn);
+		sqlite3_free (prev_sql);
+	    }
+	  prev_sql = create_sql;
+	  create_sql = sqlite3_mprintf ("%s)", prev_sql);
+	  sqlite3_free (prev_sql);
+      }
+    destroy_pk (pk);
+
+    prev_sql = create_sql;
+    create_sql = sqlite3_mprintf ("%s)", prev_sql);
+    sqlite3_free (prev_sql);
+    return create_sql;
+}
+
+static int
+create_Spatialite2GPKG_statements (sqlite3 * handle_in, sqlite3 * handle_out,
+				   const char *table_name,
+				   const char *geometry_column,
+				   sqlite3_stmt ** stmt_in,
+				   sqlite3_stmt ** stmt_out)
+{
+/* attempting to create the IN and OUT prepared stmts */
+    int ret;
+    char *sql;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *in_sql;
+    char *in2_sql;
+    char *out_sql;
+    char *out2_sql;
+    char *prev_sql;
+    char *prev2_sql;
+    char *xtable;
+    int first_in = 1;
+    int first_out = 1;
+    char *sql_err = NULL;
+    sqlite3_stmt *xstmt_in;
+    sqlite3_stmt *xstmt_out;
+
+/* starting a transaction */
+    ret = sqlite3_exec (handle_out, "BEGIN", NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* building the IN and OUT sql expressions */
+    xtable = gaiaDoubleQuotedSql (table_name);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable);
+    ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	return 0;
+    in_sql = sqlite3_mprintf ("SELECT");
+    in2_sql = sqlite3_mprintf ("FROM \"%s\"", xtable);
+    out_sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable);
+    out2_sql = sqlite3_mprintf (") VALUES (");
+    free (xtable);
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		const char *name;
+		char *xname;
+		name = results[(i * columns) + 1];
+		xname = gaiaDoubleQuotedSql (name);
+		if (strcasecmp (name, geometry_column) == 0)
+		  {
+		      /* the geometry column */
+		      prev_sql = in_sql;
+		      if (first_in)
+			{
+			    in_sql =
+				sqlite3_mprintf ("%s AsGPB(\"%s\")", prev_sql,
+						 xname);
+			    first_in = 0;
+			}
+		      else
+			{
+			    in_sql =
+				sqlite3_mprintf ("%s, AsGPB(\"%s\")", prev_sql,
+						 xname);
+			}
+		      sqlite3_free (prev_sql);
+		      prev_sql = out_sql;
+		      prev2_sql = out2_sql;
+		      if (first_out)
+			{
+			    out_sql =
+				sqlite3_mprintf ("%s\"%s\"", prev_sql, xname);
+			    out2_sql = sqlite3_mprintf ("%s?", prev2_sql);
+			    first_out = 0;
+			}
+		      else
+			{
+			    out_sql =
+				sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname);
+			    out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql);
+			}
+		      sqlite3_free (prev_sql);
+		      sqlite3_free (prev2_sql);
+		      free (xname);
+		      continue;
+		  }
+		prev_sql = in_sql;
+		if (first_in)
+		  {
+		      in_sql = sqlite3_mprintf ("%s \"%s\"", prev_sql, xname);
+		      first_in = 0;
+		  }
+		else
+		  {
+		      in_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname);
+		  }
+		sqlite3_free (prev_sql);
+		prev_sql = out_sql;
+		prev2_sql = out2_sql;
+		if (first_out)
+		  {
+		      out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname);
+		      out2_sql = sqlite3_mprintf ("%s?", prev2_sql);
+		      first_out = 0;
+		  }
+		else
+		  {
+		      out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname);
+		      out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql);
+		  }
+		sqlite3_free (prev_sql);
+		sqlite3_free (prev2_sql);
+		free (xname);
+	    }
+      }
+    sqlite3_free_table (results);
+    prev_sql = in_sql;
+    in_sql = sqlite3_mprintf ("%s %s", prev_sql, in2_sql);
+    sqlite3_free (prev_sql);
+    sqlite3_free (in2_sql);
+    prev_sql = out_sql;
+    out_sql = sqlite3_mprintf ("%s%s)", prev_sql, out2_sql);
+    sqlite3_free (prev_sql);
+    sqlite3_free (out2_sql);
+
+/* preparing the IN stmt */
+    ret =
+	sqlite3_prepare_v2 (handle_in, in_sql, strlen (in_sql), &xstmt_in,
+			    NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table_name,
+		   sqlite3_errmsg (handle_in));
+	  goto stop;
+      }
+
+/* preparing the OUT stmt */
+    ret =
+	sqlite3_prepare_v2 (handle_out, out_sql, strlen (out_sql), &xstmt_out,
+			    NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO \"%s\" error: %s\n", table_name,
+		   sqlite3_errmsg (handle_out));
+	  goto stop;
+      }
+
+    sqlite3_free (in_sql);
+    sqlite3_free (out_sql);
+    *stmt_in = xstmt_in;
+    *stmt_out = xstmt_out;
+    return 1;
+
+  stop:
+    sqlite3_free (in_sql);
+    sqlite3_free (out_sql);
+    if (xstmt_in != NULL)
+	sqlite3_finalize (xstmt_in);
+    if (xstmt_out != NULL)
+	sqlite3_finalize (xstmt_out);
+    return 0;
+}
+
+static int
+create_GPKG2Spatialite_statements (sqlite3 * handle_in, sqlite3 * handle_out,
+				   const char *table_name,
+				   const char *geometry_column,
+				   sqlite3_stmt ** stmt_in,
+				   sqlite3_stmt ** stmt_out)
+{
+/* attempting to create the IN and OUT prepared stmts */
+    int ret;
+    char *sql;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *in_sql;
+    char *in2_sql;
+    char *out_sql;
+    char *out2_sql;
+    char *prev_sql;
+    char *prev2_sql;
+    char *xtable;
+    int first_in = 1;
+    int first_out = 1;
+    char *sql_err = NULL;
+    sqlite3_stmt *xstmt_in;
+    sqlite3_stmt *xstmt_out;
+
+/* starting a transaction */
+    ret = sqlite3_exec (handle_out, "BEGIN", NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* building the IN and OUT sql expressions */
+    xtable = gaiaDoubleQuotedSql (table_name);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable);
+    ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	return 0;
+    in_sql = sqlite3_mprintf ("SELECT");
+    in2_sql = sqlite3_mprintf ("FROM \"%s\"", xtable);
+    out_sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable);
+    out2_sql = sqlite3_mprintf (") VALUES (");
+    free (xtable);
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		const char *name;
+		char *xname;
+		name = results[(i * columns) + 1];
+		xname = gaiaDoubleQuotedSql (name);
+		if (strcasecmp (name, geometry_column) == 0)
+		  {
+		      /* the geometry column */
+		      prev_sql = in_sql;
+		      if (first_in)
+			{
+			    in_sql =
+				sqlite3_mprintf ("%s GeomFromGPB(\"%s\")",
+						 prev_sql, xname);
+			    first_in = 0;
+			}
+		      else
+			{
+			    in_sql =
+				sqlite3_mprintf ("%s, GeomFromGPB(\"%s\")",
+						 prev_sql, xname);
+			}
+		      sqlite3_free (prev_sql);
+		      prev_sql = out_sql;
+		      prev2_sql = out2_sql;
+		      if (first_out)
+			{
+			    out_sql =
+				sqlite3_mprintf ("%s\"%s\"", prev_sql, xname);
+			    out2_sql = sqlite3_mprintf ("%s?", prev2_sql);
+			    first_out = 0;
+			}
+		      else
+			{
+			    out_sql =
+				sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname);
+			    out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql);
+			}
+		      sqlite3_free (prev_sql);
+		      sqlite3_free (prev2_sql);
+		      free (xname);
+		      continue;
+		  }
+		prev_sql = in_sql;
+		if (first_in)
+		  {
+		      in_sql = sqlite3_mprintf ("%s \"%s\"", prev_sql, xname);
+		      first_in = 0;
+		  }
+		else
+		  {
+		      in_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname);
+		  }
+		sqlite3_free (prev_sql);
+		prev_sql = out_sql;
+		prev2_sql = out2_sql;
+		if (first_out)
+		  {
+		      out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname);
+		      out2_sql = sqlite3_mprintf ("%s?", prev2_sql);
+		      first_out = 0;
+		  }
+		else
+		  {
+		      out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname);
+		      out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql);
+		  }
+		sqlite3_free (prev_sql);
+		sqlite3_free (prev2_sql);
+		free (xname);
+	    }
+      }
+    sqlite3_free_table (results);
+    prev_sql = in_sql;
+    in_sql = sqlite3_mprintf ("%s %s", prev_sql, in2_sql);
+    sqlite3_free (prev_sql);
+    sqlite3_free (in2_sql);
+    prev_sql = out_sql;
+    out_sql = sqlite3_mprintf ("%s%s)", prev_sql, out2_sql);
+    sqlite3_free (prev_sql);
+    sqlite3_free (out2_sql);
+
+/* preparing the IN stmt */
+    ret =
+	sqlite3_prepare_v2 (handle_in, in_sql, strlen (in_sql), &xstmt_in,
+			    NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table_name,
+		   sqlite3_errmsg (handle_in));
+	  goto stop;
+      }
+
+/* preparing the OUT stmt */
+    ret =
+	sqlite3_prepare_v2 (handle_out, out_sql, strlen (out_sql), &xstmt_out,
+			    NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO \"%s\" error: %s\n", table_name,
+		   sqlite3_errmsg (handle_out));
+	  goto stop;
+      }
+
+    sqlite3_free (in_sql);
+    sqlite3_free (out_sql);
+    *stmt_in = xstmt_in;
+    *stmt_out = xstmt_out;
+    return 1;
+
+  stop:
+    sqlite3_free (in_sql);
+    sqlite3_free (out_sql);
+    if (xstmt_in != NULL)
+	sqlite3_finalize (xstmt_in);
+    if (xstmt_out != NULL)
+	sqlite3_finalize (xstmt_out);
+    return 0;
+}
+
+static int
+do_copy_table (sqlite3 * handle_in, sqlite3 * handle_out,
+	       sqlite3_stmt * stmt_in, sqlite3_stmt * stmt_out,
+	       const char *table_name)
+{
+/* copying all rows from IN and OUT tables */
+    int ret;
+    char *sql_err = NULL;
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		int c;
+		int cols = sqlite3_column_count (stmt_in);
+		sqlite3_reset (stmt_out);
+		sqlite3_clear_bindings (stmt_out);
+		for (c = 0; c < cols; c++)
+		  {
+		      /* binding column values */
+		      switch (sqlite3_column_type (stmt_in, c))
+			{
+			case SQLITE_INTEGER:
+			    sqlite3_bind_int64 (stmt_out, c + 1,
+						sqlite3_column_int64 (stmt_in,
+								      c));
+			    break;
+			case SQLITE_FLOAT:
+			    sqlite3_bind_double (stmt_out, c + 1,
+						 sqlite3_column_double (stmt_in,
+									c));
+			    break;
+			case SQLITE_TEXT:
+			    sqlite3_bind_text (stmt_out, c + 1,
+					       (const char *)
+					       sqlite3_column_text (stmt_in, c),
+					       sqlite3_column_bytes (stmt_in,
+								     c),
+					       SQLITE_STATIC);
+			    break;
+			case SQLITE_BLOB:
+			    sqlite3_bind_blob (stmt_out, c + 1,
+					       sqlite3_column_blob (stmt_in, c),
+					       sqlite3_column_bytes (stmt_in,
+								     c),
+					       SQLITE_STATIC);
+			    break;
+			default:
+			    sqlite3_bind_null (stmt_out, c + 1);
+			    break;
+			};
+		  }
+		ret = sqlite3_step (stmt_out);
+		if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+		    ;
+		else
+		  {
+		      /* an unexpected error occurred */
+		      spatialite_e ("Error while inserting into \"%s\": %s\n",
+				    table_name, sqlite3_errmsg (handle_out));
+		      goto stop;
+		  }
+	    }
+	  else
+	    {
+		/* an unexpected error occurred */
+		spatialite_e ("Error while querying from \"%s\": %s\n",
+			      table_name, sqlite3_errmsg (handle_in));
+		goto stop;
+	    }
+      }
+
+/* committing the still pending transaction */
+    ret = sqlite3_exec (handle_out, "COMMIT", NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("COMMIT TRANSACTION error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+    return 1;
+
+  stop:
+/* invalidating the still pending transaction */
+    ret = sqlite3_exec (handle_out, "ROLLBACK", NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("ROLLBACK TRANSACTION error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+    return 0;
+}
+
+static int
+do_insert_content (sqlite3 * handle, const char *table_name,
+		   const char *geometry_column, int srid)
+{
+/* registering the GPKG table in GPKG_CONTENTS */
+    char *sql;
+    char *xgeom;
+    char *xtable;
+    int ret;
+    char *sql_err = NULL;
+
+    xtable = gaiaDoubleQuotedSql (table_name);
+    xgeom = gaiaDoubleQuotedSql (geometry_column);
+    sql = sqlite3_mprintf ("INSERT INTO gpkg_contents (table_name, data_type, "
+			   "identifier, description, last_change, min_x, min_y, max_x, max_x, srs_id) "
+			   "SELECT Lower(%Q), 'features', Lower(%Q), ' ', "
+			   "strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), Max(ST_MinX(\"%s\")), "
+			   "Min(ST_MinY(\"%s\")), Max(ST_MaxX(\"%s\")), Max(ST_MaxY(\"%s\")), %d "
+			   "FROM \"%s\"", table_name, table_name, xgeom, xgeom,
+			   xgeom, xgeom, srid, xtable);
+    free (xgeom);
+    free (xtable);
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("INSERT INTO gpkg_contents error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+    return 1;
+}
+
+static int
+copy_spatialite2GPKG (sqlite3 * handle_in, sqlite3 * handle_out, int legacy)
+{
+/* attempting to copy all Geometry Tables */
+    int ret;
+    const char *sql;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *create_sql;
+    sqlite3_stmt *stmt_in = NULL;
+    sqlite3_stmt *stmt_out = NULL;
+
+    if (legacy)
+      {
+	  sql = "SELECT f_table_name, f_geometry_column, type, "
+	      "coord_dimension, srid, spatial_index_enabled "
+	      "FROM geometry_columns";
+      }
+    else
+      {
+	  sql = "SELECT f_table_name, f_geometry_column, geometry_type, "
+	      "srid, spatial_index_enabled FROM geometry_columns";
+      }
+    ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		const char *table_name;
+		const char *geometry_column;
+		const char *geometry_type;
+		int has_z = 0;
+		int has_m = 0;
+		int srid;
+		int spatial_index;
+		table_name = results[(i * columns) + 0];
+		geometry_column = results[(i * columns) + 1];
+		if (legacy)
+		  {
+		      const char *dims;
+		      geometry_type = results[(i * columns) + 2];
+		      if (strcasecmp (geometry_type, "GEOMETRYCOLLECTION") == 0)
+			  geometry_type = "GEOMCOLLECTION";
+		      dims = results[(i * columns) + 2];
+		      if (strcasecmp (dims, "XYZ") == 0
+			  || strcasecmp (dims, "XYZM") == 0)
+			  has_z = 1;
+		      if (strcasecmp (dims, "XYM") == 0
+			  || strcasecmp (dims, "XYZM") == 0)
+			  has_m = 1;
+		      srid = atoi (results[(i * columns) + 4]);
+		      spatial_index = atoi (results[(i * columns) + 5]);
+		  }
+		else
+		  {
+		      int gtype = atoi (results[(i * columns) + 2]);
+		      switch (gtype)
+			{
+			case GAIA_POINT:
+			case GAIA_POINTM:
+			case GAIA_POINTZ:
+			case GAIA_POINTZM:
+			    geometry_type = "POINT";
+			    break;
+			case GAIA_LINESTRING:
+			case GAIA_LINESTRINGM:
+			case GAIA_LINESTRINGZ:
+			case GAIA_LINESTRINGZM:
+			    geometry_type = "LINESTRING";
+			    break;
+			case GAIA_POLYGON:
+			case GAIA_POLYGONM:
+			case GAIA_POLYGONZ:
+			case GAIA_POLYGONZM:
+			    geometry_type = "POLYGON";
+			    break;
+			case GAIA_MULTIPOINT:
+			case GAIA_MULTIPOINTM:
+			case GAIA_MULTIPOINTZ:
+			case GAIA_MULTIPOINTZM:
+			    geometry_type = "MULTIPOINT";
+			    break;
+			case GAIA_MULTILINESTRING:
+			case GAIA_MULTILINESTRINGM:
+			case GAIA_MULTILINESTRINGZ:
+			case GAIA_MULTILINESTRINGZM:
+			    geometry_type = "MULTILINESTRING";
+			    break;
+			case GAIA_MULTIPOLYGON:
+			case GAIA_MULTIPOLYGONM:
+			case GAIA_MULTIPOLYGONZ:
+			case GAIA_MULTIPOLYGONZM:
+			    geometry_type = "MULTIPOLYGON";
+			    break;
+			case GAIA_GEOMETRYCOLLECTION:
+			case GAIA_GEOMETRYCOLLECTIONM:
+			case GAIA_GEOMETRYCOLLECTIONZ:
+			case GAIA_GEOMETRYCOLLECTIONZM:
+			    geometry_type = "GEOMCOLLECTION";
+			    break;
+			case 0:
+			case 1000:
+			case 2000:
+			case 3000:
+			    geometry_type = "GEOMETRY";
+			    break;
+			};
+		      switch (gtype)
+			{
+			case 2000:
+			case GAIA_POINTM:
+			case GAIA_LINESTRINGM:
+			case GAIA_POLYGONM:
+			case GAIA_MULTIPOINTM:
+			case GAIA_MULTILINESTRINGM:
+			case GAIA_MULTIPOLYGONM:
+			case GAIA_GEOMETRYCOLLECTIONM:
+			    has_m = 1;
+			    break;
+			case 1000:
+			case GAIA_POINTZ:
+			case GAIA_LINESTRINGZ:
+			case GAIA_POLYGONZ:
+			case GAIA_MULTIPOINTZ:
+			case GAIA_MULTILINESTRINGZ:
+			case GAIA_MULTIPOLYGONZ:
+			case GAIA_GEOMETRYCOLLECTIONZ:
+			    has_z = 1;
+			    break;
+			case 3000:
+			case GAIA_POINTZM:
+			case GAIA_LINESTRINGZM:
+			case GAIA_POLYGONZM:
+			case GAIA_MULTIPOINTZM:
+			case GAIA_MULTILINESTRINGZM:
+			case GAIA_MULTIPOLYGONZM:
+			case GAIA_GEOMETRYCOLLECTIONZM:
+			    has_z = 1;
+			    has_m = 1;
+			    break;
+			};
+		      srid = atoi (results[(i * columns) + 3]);
+		      spatial_index = atoi (results[(i * columns) + 4]);
+		  }
+		create_sql =
+		    prepare_create_table (handle_in, table_name,
+					  geometry_column);
+		if (create_sql == NULL)
+		  {
+		      /* error: unable to create CREATE TABLE sql statement */
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		if (!create_gpkg_destination
+		    (handle_out, create_sql, table_name, geometry_column,
+		     geometry_type, has_z, has_m, srid, spatial_index))
+		  {
+		      /* error: unable to create the target destination */
+		      sqlite3_free (create_sql);
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		sqlite3_free (create_sql);
+		if (!create_Spatialite2GPKG_statements
+		    (handle_in, handle_out, table_name, geometry_column,
+		     &stmt_in, &stmt_out))
+		  {
+		      /* error: unable to create the IN and OUT stmts */
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		if (!do_copy_table
+		    (handle_in, handle_out, stmt_in, stmt_out, table_name))
+		  {
+		      sqlite3_finalize (stmt_in);
+		      sqlite3_finalize (stmt_out);
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		sqlite3_finalize (stmt_in);
+		sqlite3_finalize (stmt_out);
+		if (!do_insert_content
+		    (handle_out, table_name, geometry_column, srid))
+		  {
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+	    }
+      }
+    sqlite3_free_table (results);
+    return 1;
+}
+
+static int
+copy_GPKG2Spatialite (sqlite3 * handle_in, sqlite3 * handle_out)
+{
+/* attempting to copy all Geometry Tables */
+    int ret;
+    const char *sql;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *create_sql;
+    sqlite3_stmt *stmt_in = NULL;
+    sqlite3_stmt *stmt_out = NULL;
+
+    sql = "SELECT table_name, column_name, geometry_type_name, "
+	"srs_id, z, m FROM gpkg_geometry_columns";
+    ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		const char *table_name;
+		const char *geometry_column;
+		const char *geometry_type;
+		int has_z = 0;
+		int has_m = 0;
+		int srid;
+		const char *dims = "XY";
+		table_name = results[(i * columns) + 0];
+		geometry_column = results[(i * columns) + 1];
+		geometry_type = results[(i * columns) + 2];
+		if (strcasecmp (geometry_type, "GEOMCOLLECTION") == 0)
+		    geometry_type = "GEOMETRYCOLLECTION";
+		srid = atoi (results[(i * columns) + 3]);
+		has_z = atoi (results[(i * columns) + 4]);
+		has_m = atoi (results[(i * columns) + 5]);
+		if (has_z && has_m)
+		    dims = "XYZM";
+		else if (has_z)
+		    dims = "XYZ";
+		else if (has_m)
+		    dims = "XYM";
+		create_sql =
+		    prepare_create_table (handle_in, table_name,
+					  geometry_column);
+		if (create_sql == NULL)
+		  {
+		      /* error: unable to create CREATE TABLE sql statement */
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		if (!create_spatialite_destination
+		    (handle_out, create_sql, table_name, geometry_column,
+		     geometry_type, dims, srid))
+		  {
+		      /* error: unable to create the target destination */
+		      sqlite3_free (create_sql);
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		sqlite3_free (create_sql);
+		if (!create_GPKG2Spatialite_statements
+		    (handle_in, handle_out, table_name, geometry_column,
+		     &stmt_in, &stmt_out))
+		  {
+		      /* error: unable to create the IN and OUT stmts */
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		if (!do_copy_table
+		    (handle_in, handle_out, stmt_in, stmt_out, table_name))
+		  {
+		      sqlite3_finalize (stmt_in);
+		      sqlite3_finalize (stmt_out);
+		      sqlite3_free_table (results);
+		      return 0;
+		  }
+		sqlite3_finalize (stmt_in);
+		sqlite3_finalize (stmt_out);
+	    }
+      }
+    sqlite3_free_table (results);
+    return 1;
+}
+
+static int
+check_valid_gpkg (sqlite3 * handle)
+{
+/* checking for a valid GPKG origin */
+    int ret;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    int result;
+    const char *sql;
+
+/* checking Metadata tables */
+    sql = "SELECT CheckGeoPackageMetaData()";
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    result = 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	      result = atoi (results[(i * columns) + 0]);
+      }
+    sqlite3_free_table (results);
+    if (result != 1)
+      {
+	  /* not presenting acceptable Metadata tables */
+	  return 0;
+      }
+
+/* testing that at least one Geometry is actually defined */
+    sql = "SELECT Count(*) FROM gpkg_geometry_columns";
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    result = 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	      result = atoi (results[(i * columns) + 0]);
+      }
+    sqlite3_free_table (results);
+    if (result <= 0)
+	return 0;
+    return 1;
+}
+
+static int
+check_valid_spatialite (sqlite3 * handle, int *legacy)
+{
+/* checking for a valid SpatiaLite origin */
+    int ret;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    int result;
+    const char *sql;
+
+/* checking Metadata tables */
+    sql = "SELECT CheckSpatialMetaData()";
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    result = 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	      result = atoi (results[(i * columns) + 0]);
+      }
+    sqlite3_free_table (results);
+    if (result == 1 || result == 3)
+	;
+    else
+      {
+	  /* not presenting acceptable Metadata tables */
+	  return 0;
+      }
+    if (result == 1)
+	*legacy = 1;
+    else
+	*legacy = 0;
+
+/* testing that at least one Geometry is actually defined */
+    sql = "SELECT Count(*) FROM geometry_columns";
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    result = 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	      result = atoi (results[(i * columns) + 0]);
+      }
+    sqlite3_free_table (results);
+    if (result <= 0)
+	return 0;
+    return 1;
+}
+
+static int
+initialize_gpkg (sqlite3 * handle)
+{
+/* attempting to initialize a GPKG destination */
+    int ret;
+    const char *sql;
+    char *sql_err = NULL;
+
+/* creating Metadata tables */
+    sql = "SELECT gpkgCreateBaseTables()";
+
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("gpkgCreateBaseTables error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+    return 1;
+}
+
+static int
+initialize_spatialite (sqlite3 * handle)
+{
+/* attempting to initialize a SpatiaLite destination */
+    int ret;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    int result;
+    const char *sql;
+
+/* creating Metadata tables */
+    sql = "SELECT InitSpatialMetaData(1)";
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    result = 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	      result = atoi (results[(i * columns) + 0]);
+      }
+    sqlite3_free_table (results);
+    return result;
+}
+
+SPATIALITE_DECLARE int
+gaiaGPKG2Spatialite (sqlite3 * handle_in, const char *gpkg_in_path,
+		     sqlite3 * handle_out, const char *splite_out_path)
+{
+/* attempting to create a SpatiaLite DB by converting a GPKG DB */
+    if (handle_in == NULL)
+	goto error;
+    if (!check_valid_gpkg (handle_in))
+      {
+	  /* not a valid IN GPKG: quitting */
+	  spatialite_e ("Invalid GPKG origin:\n\"%s\"\n", gpkg_in_path);
+	  goto error;
+      }
+    if (handle_out == NULL)
+	goto error;
+    if (!initialize_spatialite (handle_out))
+      {
+	  /* unable to initialize a valid SpatiaLite DB: quitting */
+	  spatialite_e
+	      ("Unable to initialize SpatiaLite destination:\n\"%s\"\n",
+	       splite_out_path);
+	  goto error;
+      }
+
+/* copying/converting all Spatial tables */
+    if (!copy_GPKG2Spatialite (handle_in, handle_out))
+	goto error;
+    return 1;
+
+  error:
+    spatialite_e ("Conversion aborted due to previous error(s)\n");
+    return 0;
+}
+
+SPATIALITE_DECLARE int
+gaiaSpatialite2GPKG (sqlite3 * handle_in, const char *splite_in_path,
+		     sqlite3 * handle_out, const char *gpkg_out_path)
+{
+/* attempting to create a GPKG DB by converting a SpatiaLite DB */
+    int legacy;
+
+    if (handle_in == NULL)
+	goto error;
+    if (!check_valid_spatialite (handle_in, &legacy))
+      {
+	  /* not a valid IN GPKG: quitting */
+	  spatialite_e ("Invalid SpatiaLite origin:\n\"%s\"\n", splite_in_path);
+	  goto error;
+      }
+    if (handle_out == NULL)
+	goto error;
+    if (!initialize_gpkg (handle_out))
+      {
+	  /* unable to initialize a valid GPKG DB: quitting */
+	  spatialite_e ("Unable to initialize GPKG destination:\n\"%s\"\n",
+			gpkg_out_path);
+	  goto error;
+      }
+
+/* copying/converting all Spatial tables */
+    if (!copy_spatialite2GPKG (handle_in, handle_out, legacy))
+	goto error;
+    return 1;
+
+  error:
+    spatialite_e ("Conversion aborted due to previous error(s)\n");
+    return 0;
+}
+
+#endif /* end enabling GeoPackage extensions */
diff --git a/src/geopackage/geopackage_internal.h b/src/geopackage/geopackage_internal.h
index b01ed2d..31c7058 100644
--- a/src/geopackage/geopackage_internal.h
+++ b/src/geopackage/geopackage_internal.h
@@ -10,3 +10,37 @@
 #include "spatialite/debug.h"
 
 #include "spatialite.h"
+#include <spatialite_private.h>
+
+#define GEOPACKAGE_HEADER_LEN 8
+#define GEOPACKAGE_2D_ENVELOPE_LEN 32
+#define GEOPACKAGE_3D_ENVELOPE_LEN 48
+#define GEOPACKAGE_4D_ENVELOPE_LEN 64
+#define GEOPACKAGE_MAGIC1 0x47
+#define GEOPACKAGE_MAGIC2 0x50
+#define GEOPACKAGE_VERSION 0x00
+#define GEOPACKAGE_WKB_LITTLEENDIAN 0x01
+#define GEOPACKAGE_WKB_EXTENDEDGEOMETRY_FLAG (0x01 << 5)
+#define GEOPACKAGE_WKB_EMPTY_FLAG (0x01 << 4)
+#define GEOPACKAGE_2D_ENVELOPE 0x01
+#define GEOPACKAGE_3D_ENVELOPE 0x02
+#define GEOPACKAGE_2DM_ENVELOPE 0x03
+#define GEOPACKAGE_3DM_ENVELOPE 0x04
+#define GEOPACKAGE_FLAGS_2D_LITTLEENDIAN ((GEOPACKAGE_2D_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN)
+#define GEOPACKAGE_FLAGS_2DM_LITTLEENDIAN ((GEOPACKAGE_2DM_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN)
+#define GEOPACKAGE_FLAGS_3D_LITTLEENDIAN ((GEOPACKAGE_3D_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN)
+#define GEOPACKAGE_FLAGS_3DM_LITTLEENDIAN ((GEOPACKAGE_3DM_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN)
+#define GEOPACKAGE_WKB_POINT 1
+#define GEOPACKAGE_WKB_POINTZ 1001
+#define GEOPACKAGE_WKB_POINTM 2001
+#define GEOPACKAGE_WKB_POINTZM 3001
+#define GEOPACKAGE_WKB_HEADER_LEN  ((sizeof(char) + sizeof(int)))
+
+#define GEOPACKAGE_DEFAULT_UNDEFINED_SRID 0
+
+GEOPACKAGE_DECLARE void gpkgSetHeader2DLittleEndian (unsigned char *ptr,
+						     int srid, int endian_arch);
+
+GEOPACKAGE_DECLARE void gpkgSetHeader2DMbr (unsigned char *ptr, double min_x,
+					    double min_y, double max_x,
+					    double max_y, int endian_arch);
diff --git a/src/geopackage/gpkgAddGeometryColumn.c b/src/geopackage/gpkgAddGeometryColumn.c
new file mode 100644
index 0000000..e44b77f
--- /dev/null
+++ b/src/geopackage/gpkgAddGeometryColumn.c
@@ -0,0 +1,209 @@
+/*
+
+    GeoPackage extensions for SpatiaLite / SQLite
+ 
+Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage Extensions
+
+The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
+ 
+Portions created by the Initial Developer are Copyright (C) 2012-2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+#include <math.h>
+
+#include "spatialite/geopackage.h"
+#include "config.h"
+#include "geopackage_internal.h"
+
+#ifdef ENABLE_GEOPACKAGE
+
+static char *SUPPORTED_GEOMETRY_TYPES[] = {
+    "GEOMETRY",
+    "POINT",
+    "LINESTRING",
+    "POLYGON",
+    "MULTIPOINT",
+    "MULTILINESTRING",
+    "MULTIPOLYGON",
+    "GEOMCOLLECTION",
+    NULL
+};
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgAddGeometryColumn (sqlite3_context * context, int argc
+			    __attribute__ ((unused)), sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgAddGeomtryColumn(table_name, geometry_column_name, geometry_type, with_z, with_m, srs_id)
+/
+/ Adds a geometry column to the specified table
+/ geometry_type is a normal WKT name: "GEOMETRY", "POINT", "LINESTRING", "POLYGON",
+/              "MULTIPOINT", "MULTILINESTRING", "MULTIPOLYGON", "GEOMCOLLECTION"
+/ with_z is a flag (0 for no z values, 1 for mandatory z values, 2 for optional z values)
+/ with_m is a flag (0 for no m values, 1 for mandatory m values, 2 for optional m values)
+/
+/ returns nothing on success, raises exception on error
+/ 
+/ This function assumes usual tile conventions, including that the tiles are power-of-two-zoom,
+/ 256x256 pixels, 1 tile at the top level (zoom level 0).
+/
+*/
+    const unsigned char *table;
+    const unsigned char *geometry_column_name;
+    const unsigned char *geometry_type_name = NULL;
+    int with_z;
+    int with_m;
+    int srid;
+    int i = 0;
+
+    char *sql_stmt = NULL;
+    sqlite3 *sqlite = NULL;
+    char *errMsg = NULL;
+    int ret = 0;
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 1 [table] is not of the string type",
+				-1);
+	  return;
+      }
+    table = sqlite3_value_text (argv[0]);
+
+    if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 2 [geometry_column_name] is not of the string type",
+				-1);
+	  return;
+      }
+    geometry_column_name = sqlite3_value_text (argv[1]);
+
+    if (sqlite3_value_type (argv[2]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 3 [geometry_type] is not of the string type",
+				-1);
+	  return;
+      }
+    for (i = 0; SUPPORTED_GEOMETRY_TYPES[i] != NULL; ++i)
+      {
+	  if (strcasecmp
+	      ((const char *) sqlite3_value_text (argv[2]),
+	       SUPPORTED_GEOMETRY_TYPES[i]) == 0)
+	    {
+		geometry_type_name =
+		    (const unsigned char *) SUPPORTED_GEOMETRY_TYPES[i];
+		break;
+	    }
+      }
+    if (geometry_type_name == NULL)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 3 [geometry_type] not a recognised geometry type",
+				-1);
+	  return;
+      }
+
+    if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 4 [with_z] is not of the integer type",
+				-1);
+	  return;
+      }
+    with_z = (double) sqlite3_value_int (argv[3]);
+    if ((with_z != 0) && (with_z != 1) && (with_z != 2))
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 4 [with_z] is not a known value (expected 0, 1 or 2)",
+				-1);
+	  return;
+      }
+
+    if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 5 [with_m] is not of the integer type",
+				-1);
+	  return;
+      }
+    with_m = (double) sqlite3_value_int (argv[4]);
+    if ((with_m != 0) && (with_m != 1) && (with_m != 2))
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 5 [with_m] is not a known value (expected 0, 1 or 2)",
+				-1);
+	  return;
+      }
+
+    if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryColumn() error: argument 6 [srid] is not of the integer type",
+				-1);
+	  return;
+      }
+    srid = sqlite3_value_int (argv[5]);
+
+    sqlite = sqlite3_context_db_handle (context);
+
+    /* Add column definition to metadata table */
+    sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_geometry_columns "
+				"(table_name, column_name, geometry_type_name, srs_id, z, m) "
+				"VALUES (%Q, %Q, %Q, %i, %i, %i)",
+				table, geometry_column_name, geometry_type_name,
+				srid, with_z, with_m);
+
+    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+    sqlite3_free (sql_stmt);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
+
+    /* extend table_name to actually have a geometry column */
+    sql_stmt = sqlite3_mprintf ("ALTER TABLE %s ADD COLUMN %s BLOB",
+				table, geometry_column_name);
+    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+    sqlite3_free (sql_stmt);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
+
+    /* TODO: add triggers */
+}
+
+#endif
diff --git a/src/geopackage/gpkgBinary.c b/src/geopackage/gpkgBinary.c
new file mode 100644
index 0000000..849c332
--- /dev/null
+++ b/src/geopackage/gpkgBinary.c
@@ -0,0 +1,512 @@
+/*
+
+    GeoPackage extensions for SpatiaLite / SQLite
+ 
+Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage Extensions
+
+The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
+ 
+Portions created by the Initial Developer are Copyright (C) 2014
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include "spatialite/geopackage.h"
+#include "config.h"
+#include "geopackage_internal.h"
+
+#ifdef ENABLE_GEOPACKAGE
+
+#define GEOPACKAGE_UNUSED() if (argc || argv) argc = argc;
+
+GEOPACKAGE_DECLARE void
+gpkgSetHeader2DLittleEndian (unsigned char *ptr, int srid, int endian_arch)
+{
+    *ptr = GEOPACKAGE_MAGIC1;
+    *(ptr + 1) = GEOPACKAGE_MAGIC2;
+    *(ptr + 2) = GEOPACKAGE_VERSION;
+    *(ptr + 3) = GEOPACKAGE_FLAGS_2D_LITTLEENDIAN;
+    gaiaExport32 (ptr + 4, srid, 1, endian_arch);	/* the SRID */
+}
+
+GEOPACKAGE_DECLARE void
+gpkgSetHeader2DMbr (unsigned char *ptr, double min_x, double min_y,
+		    double max_x, double max_y, int endian_arch)
+{
+    gaiaExport64 (ptr, min_x, 1, endian_arch);
+    gaiaExport64 (ptr + sizeof (double), max_x, 1, endian_arch);
+    gaiaExport64 (ptr + 2 * sizeof (double), min_y, 1, endian_arch);
+    gaiaExport64 (ptr + 3 * sizeof (double), max_y, 1, endian_arch);
+}
+
+static void
+gaiaToGPB (gaiaGeomCollPtr geom, unsigned char **result, unsigned int *size)
+{
+    int wkbOnlyLength;
+    unsigned char *wkbOnlyGeometry = NULL;
+    unsigned char *ptr;
+    int endian_arch = gaiaEndianArch ();
+
+    gaiaToWkb (geom, &wkbOnlyGeometry, &wkbOnlyLength);
+    /* Calculate output size */
+    /* We only do 2D envelopes (MBR) irrespective of the input geometry dimensions */
+    *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN;
+    *size += wkbOnlyLength;
+
+    /* allocate result and fill with "canary" value */
+    *result = malloc (*size);
+    if (*result == NULL)
+      {
+	  return;
+      }
+    memset (*result, 0xD9, *size);
+    ptr = *result;
+
+    /* build header */
+    gpkgSetHeader2DLittleEndian (ptr, geom->Srid, endian_arch);
+
+    /* build MBR */
+    gpkgSetHeader2DMbr (ptr + GEOPACKAGE_HEADER_LEN, geom->MinX, geom->MinY,
+			geom->MaxX, geom->MaxY, endian_arch);
+
+    /* copy wkbonly results to result */
+    memcpy (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN,
+	    wkbOnlyGeometry, wkbOnlyLength);
+
+    free (wkbOnlyGeometry);
+}
+
+
+GEOPACKAGE_DECLARE void
+fnct_ToGPB (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ AsGPB(BLOB encoded geometry)
+/
+/ converts the (spatialite) geometry blob into a GeoPackage format geometry blob
+/ or NULL if any error is encountered
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    gaiaGeomCollPtr geo = NULL;
+    unsigned int len;
+    unsigned char *p_result = NULL;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (!geo)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    else
+      {
+	  gaiaToGPB (geo, &p_result, &len);
+	  if (!p_result)
+	    {
+		sqlite3_result_null (context);
+	    }
+	  else
+	    {
+		sqlite3_result_blob (context, p_result, len, free);
+	    }
+      }
+    gaiaFreeGeomColl (geo);
+}
+
+static int
+sanity_check_gpb (const unsigned char *wkb, int size, int *srid,
+		  unsigned int *envelope_length)
+{
+    /* checking type coherency for GeoPackageBinary encoded GEOMETRY */
+    int little_endian;
+    int endian_arch = gaiaEndianArch ();
+    char flags;
+    int envelope_code;
+
+    if (size < GEOPACKAGE_HEADER_LEN)
+      {
+	  return 0;		/* too short to be GPB */
+      }
+    if ((*(wkb + 0) != GEOPACKAGE_MAGIC1) || (*(wkb + 1) != GEOPACKAGE_MAGIC2))
+      {
+	  return 0;		/* doesn't match required signature */
+      }
+    if (*(wkb + 2) != GEOPACKAGE_VERSION)
+      {
+	  return 0;		/* we only know how to parse version 1 */
+      }
+
+    flags = *(wkb + 3);
+
+    little_endian = flags & GEOPACKAGE_WKB_LITTLEENDIAN;
+
+    envelope_code = ((flags >> 1) & 0x07);
+    switch (envelope_code)
+      {
+      case 0:
+	  *envelope_length = 0;
+	  break;
+      case 1:
+	  *envelope_length = 32;
+	  break;
+      case 2:
+      case 3:
+	  *envelope_length = 48;
+	  break;
+      case 4:
+	  *envelope_length = 64;
+	  break;
+      default:
+	  /* illegal value - not valid GeoPackageBinary */
+	  fprintf (stderr, "Unsupported geopackage envelope value: 0x%x\n",
+		   envelope_code);
+	  return 0;
+      }
+
+    if (flags & GEOPACKAGE_WKB_EXTENDEDGEOMETRY_FLAG)
+      {
+	  fprintf (stderr,
+		   "unsupported geopackage binary type (extended geopackage binary)\n");
+	  return 0;
+      }
+
+    *srid = gaiaImport32 (wkb + 4, little_endian, endian_arch);
+
+    return 1;
+}
+
+GEOPACKAGE_DECLARE gaiaGeomCollPtr
+gaiaFromGeoPackageGeometryBlob (const unsigned char *gpb, unsigned int gpb_len)
+{
+    gaiaGeomCollPtr geo = NULL;
+    int srid = GEOPACKAGE_DEFAULT_UNDEFINED_SRID;
+    unsigned int envelope_length = 0;
+    const unsigned char *wkb;
+    unsigned int wkb_len;
+
+    if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length))
+      {
+	  return NULL;
+      }
+
+    wkb = gpb + GEOPACKAGE_HEADER_LEN + envelope_length;
+    wkb_len = gpb_len - (GEOPACKAGE_HEADER_LEN + envelope_length);
+
+    geo = gaiaFromWkb (wkb, wkb_len);
+    if (geo == NULL)
+      {
+	  return NULL;
+      }
+    geo->Srid = srid;
+
+    return geo;
+}
+
+GEOPACKAGE_DECLARE void
+fnct_GeomFromGPB (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ GeomFromGPB(GPB encoded geometry)
+/
+/ returns a geometry created by parsing a GeoPackageBinary encoded blob 
+/ or NULL if any error is encountered
+*/
+    int len;
+    unsigned char *p_result = NULL;
+    const unsigned char *gpb;
+    unsigned int gpb_len;
+    gaiaGeomCollPtr geo = NULL;
+
+
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    gpb = sqlite3_value_blob (argv[0]);
+    gpb_len = sqlite3_value_bytes (argv[0]);
+
+    geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len);
+    if (geo == NULL)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+
+    gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len);
+    gaiaFreeGeomColl (geo);
+    sqlite3_result_blob (context, p_result, len, free);
+}
+
+/* Sandro Furieri - 2014-05-19 */
+
+GEOPACKAGE_DECLARE int
+gaiaIsValidGPB (const unsigned char *gpb, int gpb_len)
+{
+/* checks for a valid GPB */
+    int srid;
+    unsigned int envelope_length;
+
+    if (gpb == NULL)
+	return 0;
+    return sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length);
+}
+
+GEOPACKAGE_DECLARE int
+gaiaGetSridFromGPB (const unsigned char *gpb, int gpb_len)
+{
+/* extracts the SRID from a valid GPB */
+    int srid;
+    unsigned int envelope_length;
+
+    if (gpb == NULL)
+	return -1;
+    if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length))
+	return -1;
+    return srid;
+}
+
+GEOPACKAGE_DECLARE int
+gaiaIsEmptyGPB (const unsigned char *gpb, int gpb_len)
+{
+/* checks for an empty GPB */
+    int srid;
+    unsigned int envelope_length;
+    int is_empty;
+
+    if (gpb == NULL)
+	return -1;
+    if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length))
+	return -1;
+    is_empty = *(gpb + 3) & GEOPACKAGE_WKB_EMPTY_FLAG;
+    return is_empty;
+}
+
+GEOPACKAGE_DECLARE int
+gaiaGetEnvelopeFromGPB (const unsigned char *gpb, int gpb_len, double *min_x,
+			double *max_x, double *min_y, double *max_y, int *has_z,
+			double *min_z, double *max_z, int *has_m, double *min_m,
+			double *max_m)
+{
+/* attempts to retrieve a full Envelope from a GPB */
+    gaiaGeomCollPtr geo;
+    double min;
+    double max;
+    if (gpb == NULL)
+	return 0;
+    geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len);
+    if (geo == NULL)
+	return 0;
+/*
+/ defensive programming
+/
+/ the GPKG seems to be a rather sparse and inconsistent standard
+/ so we'll always ignore the Envelope declared by GPB
+/ and we'll instead recompute 'our' Envelope from scratch
+*/
+    gaiaMbrGeometry (geo);
+    *min_x = geo->MinX;
+    *max_x = geo->MaxX;
+    *min_y = geo->MinY;
+    *max_y = geo->MaxY;
+    if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M)
+      {
+	  *has_z = 1;
+	  gaiaZRangeGeometry (geo, &min, &max);
+	  *min_z = min;
+	  *max_z = max;
+      }
+    else
+	*has_z = 0;
+    if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M)
+      {
+	  *has_m = 1;
+	  gaiaMRangeGeometry (geo, &min, &max);
+	  *min_m = min;
+	  *max_m = max;
+      }
+    else
+	*has_m = 0;
+    gaiaFreeGeomColl (geo);
+    return 1;
+}
+
+GEOPACKAGE_DECLARE char *
+gaiaGetGeometryTypeFromGPB (const unsigned char *gpb, int gpb_len)
+{
+/* attempts to retrieve the Geometry Type from a GPB */
+    gaiaGeomCollPtr geo;
+    const char *type = NULL;
+    int len;
+    char *gtype;
+
+    if (gpb == NULL)
+	return NULL;
+    geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len);
+    if (geo == NULL)
+	return NULL;
+/*
+/ defensive programming
+/
+/ the GPKG seems to be a rather sparse and inconsistent standard
+/ so we'll always fetch the Geometry Type from 'our' Geometry Type
+*/
+    switch (gaiaGeometryType (geo))
+      {
+      case GAIA_POINT:
+      case GAIA_POINTZ:
+      case GAIA_POINTM:
+      case GAIA_POINTZM:
+	  type = "POINT";
+	  break;
+      case GAIA_LINESTRING:
+      case GAIA_LINESTRINGZ:
+      case GAIA_LINESTRINGM:
+      case GAIA_LINESTRINGZM:
+	  type = "LINESTRING";
+	  break;
+      case GAIA_POLYGON:
+      case GAIA_POLYGONZ:
+      case GAIA_POLYGONM:
+      case GAIA_POLYGONZM:
+	  type = "POLYGON";
+	  break;
+      case GAIA_MULTIPOINT:
+      case GAIA_MULTIPOINTZ:
+      case GAIA_MULTIPOINTM:
+      case GAIA_MULTIPOINTZM:
+	  type = "MULTIPOINT";
+	  break;
+      case GAIA_MULTILINESTRING:
+      case GAIA_MULTILINESTRINGZ:
+      case GAIA_MULTILINESTRINGM:
+      case GAIA_MULTILINESTRINGZM:
+	  type = "MULTILINESTRING";
+	  break;
+      case GAIA_MULTIPOLYGON:
+      case GAIA_MULTIPOLYGONZ:
+      case GAIA_MULTIPOLYGONM:
+      case GAIA_MULTIPOLYGONZM:
+	  type = "MULTIPOLYGON";
+	  break;
+      case GAIA_GEOMETRYCOLLECTION:
+      case GAIA_GEOMETRYCOLLECTIONZ:
+      case GAIA_GEOMETRYCOLLECTIONM:
+      case GAIA_GEOMETRYCOLLECTIONZM:
+	  type = "GEOMCOLLECTION";
+	  break;
+      };
+    gaiaFreeGeomColl (geo);
+
+    if (type == NULL)
+	return NULL;
+    len = strlen (type);
+    gtype = malloc (len + 1);
+    strcpy (gtype, type);
+    return gtype;
+}
+
+GEOPACKAGE_DECLARE void
+fnct_GPKG_IsAssignable (sqlite3_context * context, int argc,
+			sqlite3_value ** argv)
+{
+/* SQL function:
+/ GPKG_IsAssignale(expected_type_name TEXT, actual_type_name TEXT)
+/
+/ returns:
+/ 1 if the expected type is the same or a super-type of actual type
+/ 0 otherwise
+*/
+    const char *expected;
+    const char *actual;
+    int ret = 0;
+
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_int (context, ret);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_int (context, ret);
+	  return;
+      }
+    expected = (const char *) sqlite3_value_text (argv[0]);
+    actual = (const char *) sqlite3_value_text (argv[1]);
+    if (strcasecmp (expected, actual) == 0)
+	ret = 1;
+    if (strcasecmp (expected, "GEOMETRY") == 0)
+	ret = 1;
+    if (strcasecmp (expected, "MULTIPOINT") == 0
+	&& strcasecmp (actual, "POINT") == 0)
+	ret = 1;
+    if (strcasecmp (expected, "MULTILINESTRING") == 0
+	&& strcasecmp (actual, "LINESTRING") == 0)
+	ret = 1;
+    if (strcasecmp (expected, "MULTIPOLYGON") == 0
+	&& strcasecmp (actual, "POLYGON") == 0)
+	ret = 1;
+    sqlite3_result_int (context, ret);
+}
+
+GEOPACKAGE_DECLARE void
+fnct_IsValidGPB (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ IsValidGPB(GPB encoded geometry)
+/
+/ check for a valid GPB encoded geometry
+*/
+    const unsigned char *gpb;
+    unsigned int gpb_len;
+
+
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_int (context, 0);
+	  return;
+      }
+    gpb = sqlite3_value_blob (argv[0]);
+    gpb_len = sqlite3_value_bytes (argv[0]);
+    sqlite3_result_int (context, gaiaIsValidGPB (gpb, gpb_len));
+}
+
+/* end Sandro Furieri - 2014-05-19 */
+
+#endif
diff --git a/src/geopackage/gpkgCreateBaseTables.c b/src/geopackage/gpkgCreateBaseTables.c
index 94c7ae0..aa7bf8b 100644
--- a/src/geopackage/gpkgCreateBaseTables.c
+++ b/src/geopackage/gpkgCreateBaseTables.c
@@ -42,11 +42,13 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "config.h"
 #include "geopackage_internal.h"
 
+#define GAIA_UNUSED() if (argc || argv) argc = argc;
+
 #ifdef ENABLE_GEOPACKAGE
 
 GEOPACKAGE_DECLARE void
-fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc __attribute__ ((unused)),
-			   sqlite3_value ** argv)
+fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc
+			   __attribute__ ((unused)), sqlite3_value ** argv)
 {
 /* SQL function:
 / gpkgCreateBaseTables()
@@ -60,360 +62,312 @@ fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc __attribute__ ((u
     char *errMsg = NULL;
     int ret = 0;
     int i = 0;
-    
-    const char* tableSchemas[] = {
-	/* GeoPackage specification Table 2 */
-	"CREATE TABLE geopackage_contents (\n"
-	"table_name TEXT NOT NULL PRIMARY KEY,\n"
-	"data_type TEXT NOT NULL,\n"
-	"identifier TEXT NOT NULL DEFAULT '',\n"
-	"description TEXT NOT NULL DEFAULT '',\n"
-	"last_change TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n"
-	"min_x DOUBLE NOT NULL DEFAULT -180.0,\n"
-	"min_y DOUBLE NOT NULL DEFAULT -90.0,\n"
-	"max_x DOUBLE NOT NULL DEFAULT 180.0,\n"
-	"max_y DOUBLE NOT NULL DEFAULT 90.0,\n"
-	"srid INTEGER NOT NULL DEFAULT 0,\n"
-	"CONSTRAINT fk_gc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid));",
-	
-	/* GeoPackage specification Table 23/24 */
-	"CREATE TABLE raster_columns (\n"
-	"r_table_name TEXT NOT NULL,\n"
-	"r_raster_column TEXT NOT NULL,\n"
-	"compr_qual_factor INTEGER NOT NULL DEFAULT 100,\n"
-	"georectification INTEGER NOT NULL DEFAULT 0,\n"
-	"srid INTEGER NOT NULL DEFAULT 0,\n"
-	"CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK,\n"
-	"CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid),"
-	"CONSTRAINT fk_rc_r_gc FOREIGN KEY (r_table_name) REFERENCES geopackage_contents(table_name));",
-
-	/* The next four triggers are from GeoPackage specification Table 21 */
-	"CREATE TRIGGER 'raster_columns_r_table_name_insert'\n"
-	"BEFORE INSERT ON 'raster_columns'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on raster_columns violates constraint: r_table_name value must not contain a single quote')\n"
-	"WHERE NEW.r_table_name LIKE ('%''''%');\n"
-	"SELECT RAISE(ABORT, 'insert on raster_columns violates constraint: r_table_name value must not contain a double quote')\n"
-	"WHERE NEW.r_table_name LIKE ('%\"%');\n"
-	"SELECT RAISE(ABORT, 'insert on raster_columns violates constraint: r_table_name value must be lower case')\n"
-	"WHERE NEW.r_table_name <> lower(NEW.r_table_name);\n"
-	"END;",
-
-	"CREATE TRIGGER 'raster_columns_r_table_name_update'\n"
-	"BEFORE UPDATE OF 'r_table_name' ON 'raster_columns'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_table_name value must not contain a single quote')\n"
-	"WHERE NEW.r_table_name LIKE ('%''''%');\n"
-	"SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_table_name value must not contain a double quote')\n"
-	"WHERE NEW.r_table_name LIKE ('%\"%');\n"
-	"SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_table_name value must be lower case')\n"
-	"WHERE NEW.r_table_name <> lower(NEW.r_table_name);\n"
-	"END;",
-
-	"CREATE TRIGGER 'raster_columns_r_raster_column_insert'\n"
-	"BEFORE INSERT ON 'raster_columns'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT,'insert on raster_columns violates constraint: r_raster_column value must not contain a single quote')\n"
-	"WHERE NEW.r_raster_column LIKE ('%''''%');\n"
-	"SELECT RAISE(ABORT,'insert on raster_columns violates constraint: r_raster_column value must not contain a double quote')\n"
-	"WHERE NEW.r_raster_column LIKE ('%\"%');\n"
-	"SELECT RAISE(ABORT,'insert on raster_columns violates constraint: r_raster_column value must be lower case')\n"
-	"WHERE NEW.r_raster_column <> lower(NEW.r_raster_column);\n"
-	"END;",
-
-	"CREATE TRIGGER 'raster_columns_r_raster_column_update'\n"
-	"BEFORE UPDATE OF r_raster_column ON 'raster_columns'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_raster_column value must not contain a single quote')\n"
-	"WHERE NEW.r_raster_column LIKE ('%''''%');\n"
-	"SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_raster_column value must not contain a double quote')\n"
-	"WHERE NEW.r_raster_column LIKE ('%\"%');\n"
-	"SELECT RAISE(ABORT,'update on raster_columns violates constraint: r_raster_column value must be lower case')\n"
-	"WHERE NEW.r_raster_column <> lower(NEW.r_raster_column);\n"
-	"END;",
-
-	/* GeoPackage specification Table 23/24 */
-	/* TODO: see if there is a nicer way to manage this using a VIEW */
-	"CREATE TABLE tile_table_metadata (\n"
-	"t_table_name TEXT NOT NULL PRIMARY KEY,\n"
-	"is_times_two_zoom INTEGER NOT NULL DEFAULT 1\n"
-	");",
-	
-	/* The next four triggers are from GeoPackage specification Table 25 */
-	"CREATE TRIGGER 'tile_table_metadata_t_table_name_insert'\n"
-	"BEFORE INSERT ON 'tile_table_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''tile_table_metadata'' violates constraint: t_table_name not in raster_columns.r_table_name values')\n"
-	"WHERE NOT (NEW.t_table_name IN (SELECT DISTINCT r_table_name FROM raster_columns));\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_table_metadata_t_table_name_update'\n"
-	"BEFORE UPDATE OF t_table_name ON 'tile_table_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''tile_table_metadata'' violates constraint: t_table_name not in raster_columns.r_table_name values')\n"
-	"WHERE NOT (NEW.t_table_name IN (SELECT DISTINCT r_table_name FROM raster_columns));\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_table_metadata_is_times_two_zoom_insert'\n"
-	"BEFORE INSERT ON 'tile_table_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on tile_table_metadata violates constraint: is_time_two_zoom must be one of 0|1')\n"
-	"WHERE NOT(NEW.is_times_two_zoom IN (0,1));\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_table_metadata_is_times_two_zoom_update'\n"
-	"BEFORE UPDATE OF is_times_two_zoom ON 'tile_table_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update of tile_table_metadata violates constraint: is_time_two_zoom must be one of 0|1')\n"
-	"WHERE NOT(NEW.is_times_two_zoom IN (0,1));\n"
-	"END;",
-
-	/* GeoPackage specification Table 27/28 */
-	"CREATE TABLE tile_matrix_metadata (\n"
-	"t_table_name TEXT NOT NULL,\n"
-	"zoom_level INTEGER NOT NULL,\n"
-	"matrix_width INTEGER NOT NULL,\n"
-	"matrix_height INTEGER NOT NULL,\n"
-	"tile_width INTEGER NOT NULL,\n"
-	"tile_height INTEGER NOT NULL,\n"
-	"pixel_x_size DOUBLE NOT NULL,\n"
-	"pixel_y_size DOUBLE NOT NULL,\n"
-	"CONSTRAINT pk_ttm PRIMARY KEY (t_table_name, zoom_level) ON CONFLICT ROLLBACK,\n"
-	"CONSTRAINT fk_ttm_t_table_name FOREIGN KEY (t_table_name) REFERENCES tile_table_metadata(t_table_name));",
-
-	/* The next ten triggers are from GeoPackage specification Table 25 */
-	"CREATE TRIGGER 'tile_matrix_metadata_zoom_level_insert'\n"
-	"BEFORE INSERT ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: zoom_level cannot be less than 0')\n"
-	"WHERE (NEW.zoom_level < 0);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_zoom_level_update'\n"
-	"BEFORE UPDATE of zoom_level ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: zoom_level cannot be less than 0')\n"
-	"WHERE (NEW.zoom_level < 0);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_matrix_width_insert'\n"
-	"BEFORE INSERT ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: matrix_width cannot be less than 1')\n"
-	"WHERE (NEW.matrix_width < 1);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_matrix_width_update'\n"
-	"BEFORE UPDATE OF matrix_width ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: matrix_width cannot be less than 1')\n"
-	"WHERE (NEW.matrix_width < 1);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_matrix_height_insert'\n"
-	"BEFORE INSERT ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: matrix_height cannot be less than 1')\n"
-	"WHERE (NEW.matrix_height < 1);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_matrix_height_update'\n"
-	"BEFORE UPDATE OF matrix_height ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: matrix_height cannot be less than 1')\n"
-	"WHERE (NEW.matrix_height < 1);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_pixel_x_size_insert'\n"
-	"BEFORE INSERT ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: pixel_x_size must be greater than 0')\n"
-	"WHERE NOT (NEW.pixel_x_size > 0);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_pixel_x_size_update'\n"
-	"BEFORE UPDATE OF pixel_x_size ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: pixel_x_size must be greater than 0')\n"
-	"WHERE NOT (NEW.pixel_x_size > 0);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_pixel_y_size_insert'\n"
-	"BEFORE INSERT ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''tile_matrix_metadata'' violates constraint: pixel_y_size must be greater than 0')\n"
-	"WHERE NOT (NEW.pixel_y_size > 0);\n"
-	"END;",
-
-	"CREATE TRIGGER 'tile_matrix_metadata_pixel_y_size_update'\n"
-	"BEFORE UPDATE OF pixel_y_size ON 'tile_matrix_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''tile_matrix_metadata'' violates constraint: pixel_y_size must be greater than 0')\n"
-	"WHERE NOT (NEW.pixel_y_size > 0);\n"
-	"END;",
-
-	/* GeoPackage specification Table 43/45 */
-	"CREATE TABLE xml_metadata (\n"
-	"id INTEGER CONSTRAINT xm_pk PRIMARY KEY ASC ON CONFLICT ROLLBACK AUTOINCREMENT NOT NULL UNIQUE,\n"
-	"md_scope TEXT NOT NULL DEFAULT 'dataset',\n"
-	"metadata_standard_URI TEXT NOT NULL DEFAULT 'http://schemas.opengis.net/iso/19139/',\n"
-	"metadata BLOB NOT NULL DEFAULT (zeroblob(4))\n"
-	");",
-
-	/* The next two triggers are from GeoPackage Table 46 */
-	"CREATE TRIGGER 'xml_metadata_md_scope_insert'\n"
-	"BEFORE INSERT ON 'xml_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table xml_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalogue | schema | taxonomy  software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n"
-	"WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset','featureType', 'feature','attributeType','attribute','tile','model','catalogue','schema','taxonomy', 'software','service','collectionHardware','nonGeographicDataset','dimensionGroup'));\n"
-	"END;",
-
-	"CREATE TRIGGER 'xml_metadata_md_scope_update'\n"
-	"BEFORE UPDATE OF 'md_scope' ON 'xml_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table xml_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalogue | schema | taxonomy  software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n"
-	"WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset','featureType', 'feature','attributeType','attribute','tile','model','catalogue','schema','taxonomy', 'software','service','collectionHardware','nonGeographicDataset','dimensionGroup'));\n"
-	"END;",
-	
-	/* GeoPackage Table 47 */
-	"INSERT INTO xml_metadata VALUES (0, 'undefined', 'http://schemas.opengis.net/iso/19139/', (zeroblob(4)));",
-	
-	/* GeoPackage specification Table 48/49 */
-	"CREATE TABLE metadata_reference ("
-	"reference_scope TEXT NOT NULL DEFAULT \"table\","  
-	"table_name TEXT NOT NULL DEFAULT \"undefined\","
-	"column_name TEXT NOT NULL DEFAULT \"undefined\","
-	"row_id_value INTEGER NOT NULL DEFAULT 0,"
-	"timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),"
-	"md_file_id INTEGER NOT NULL DEFAULT 0,"
-	"md_parent_id INTEGER NOT NULL DEFAULT 0,"
-	"CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES xml_metadata(id),"
-	"CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES xml_metadata(id)"
-	");",
-
-	/* The next 10 triggers are from GeoPackage specification Table 50 */
-	"CREATE TRIGGER 'metadata_reference_reference_scope_insert'\n"
-	"BEFORE INSERT ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: reference_scope must be one of \"table\", \"column\", \"row\", \"row/col\"')\n"
-	"WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_reference_scope_update'\n"
-	"BEFORE UPDATE OF 'reference_scope' ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: referrence_scope must be one of \"table\", \"column\", \"row\", \"row/col\"')\n"
-	"WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_table_name_insert'\n"
-	"BEFORE INSERT ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: table_name must be the name of a table in geometry_columns or raster_columns')\n"
-	"WHERE NOT NEW.table_name IN (\n"
-	"SELECT f_table_name AS table_name FROM geometry_columns\n"
-	"UNION ALL\n"
-	"SELECT r_table_name AS table_name FROM raster_columns);\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_table_name_update'\n"
-	"BEFORE UPDATE OF 'table_name' ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: table_name must be the name of a table in geometry_columns or 	raster_columns')\n"
-	"WHERE NOT NEW.table_name IN (\n"
-	"SELECT f_table_name AS table_name FROM geometry_columns\n"
-	"UNION ALL\n"
-	"SELECT r_table_name AS table_name FROM raster_columns);\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_column_name_insert'\n"
-	"BEFORE INSERT ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: column name must be \"undefined\" when reference_scope is \"table\" or \"row\"')\n"
-	"WHERE (NEW.reference_scope IN ('table','row')\n"
-	"AND NEW.column_name <> 'undefined');\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n"
-	"WHERE (NEW.reference_scope IN ('column','row/col')\n"
-	"AND NOT NEW.table_name IN (\n"
-	"SELECT name FROM SQLITE_MASTER WHERE type = 'table'\n"
-	"AND name = NEW.table_name\n"
-	"AND sql LIKE ('%' || NEW.column_name || '%')));\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_column_name_update'\n"
-	"BEFORE UPDATE OF column_name ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: column name must be \"undefined\" when reference_scope is 	\"table\" or \"row\"')\n"
-	"WHERE (NEW.reference_scope IN ('table','row')\n"
-	"AND NEW.column_name <> 'undefined');\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n"
-	"WHERE (NEW.reference_scope IN ('column','row/col')\n"
-	"AND NOT NEW.table_name IN (\n"
-	"SELECT name FROM SQLITE_MASTER WHERE type = 'table'\n" 
-	"AND name = NEW.table_name\n"
-	"AND sql LIKE ('%' || NEW.column_name || '%')));\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_row_id_value_insert'\n"
-	"BEFORE INSERT ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: row_id_value must be 0 when reference_scope is \"table\" or \"column\"')\n"
-	"WHERE NEW.reference_scope IN ('table','column')\n"
-	"AND NEW.row_id_value <> 0;\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n"
-	"WHERE NEW.reference_scope IN ('row','row/col')\n"
-	"AND NOT EXISTS (SELECT rowid\n"
-	"FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_row_id_value_update'\n"
-	"BEFORE UPDATE OF 'row_id_value' ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: row_id_value must be 0 when reference_scope is \"table\" or \"column\"')\n"
-	"WHERE NEW.reference_scope IN ('table','column')\n"
-	"AND NEW.row_id_value <> 0;\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n"
-	"WHERE NEW.reference_scope IN ('row','row/col')\n"
-	"AND NOT EXISTS (SELECT rowid\n"
-	"FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_timestamp_insert'\n"
-	"BEFORE INSERT ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n"
-	"WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][1-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z'\n"
-	"AND strftime('%s',NEW.timestamp) NOT NULL);\n"
-	"END;",
-
-	"CREATE TRIGGER 'metadata_reference_timestamp_update'\n"
-	"BEFORE UPDATE OF 'timestamp' ON 'metadata_reference'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n"
-	"WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][1-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z'\n"
-	"AND strftime('%s',NEW.timestamp) NOT NULL);\n"
-	"END;",
-	
-	"CREATE TABLE manifest (\n"
-	"id TEXT NOT NULL PRIMARY KEY,\n"
-	"manifest TEXT NOT NULL\n"
-	");",
+
+    const char *tableSchemas[] = {
+	"PRAGMA application_id = 1196437808",
+
+	/* GeoPackage specification Table 18 */
+	"CREATE TABLE gpkg_spatial_ref_sys (\n"
+	    "srs_name TEXT NOT NULL,\n"
+	    "srs_id INTEGER NOT NULL PRIMARY KEY,\n"
+	    "organization TEXT NOT NULL,\n"
+	    "organization_coordsys_id INTEGER NOT NULL,\n"
+	    "definition TEXT NOT NULL,\n" "description TEXT\n" ")",
+
+	/* GeoPackage Section 1.1.2.1.2 */
+	"INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('Undefined Cartesian', -1, 'NONE', -1, 'Undefined')",
+	"INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('Undefined Geographic', 0, 'NONE', 0, 'Undefined')",
+	"INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('WGS84', 4326, 'epsg', 4326, 'GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]')",
+
+	/* GeoPackage specification Table 4 / Table 21 */
+	/* Note that NULL is distinct on UNIQUE columns, so identifier definition isn't quite that far out-there */
+	"CREATE TABLE gpkg_contents (\n"
+	    "table_name TEXT NOT NULL PRIMARY KEY,\n"
+	    "data_type TEXT NOT NULL,\n"
+	    "identifier TEXT UNIQUE,\n"
+	    "description TEXT DEFAULT '',\n"
+	    "last_change TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n"
+	    "min_x DOUBLE,\n"
+	    "min_y DOUBLE,\n"
+	    "max_x DOUBLE,\n"
+	    "max_y DOUBLE,\n"
+	    "srs_id INTEGER,\n"
+	    "CONSTRAINT fk_gc_r_srid FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))",
+
+	/* GeoPackage specification Table 6 / Table 22 */
+	"CREATE TABLE gpkg_geometry_columns (\n"
+	    "table_name TEXT NOT NULL,\n"
+	    "column_name TEXT,\n"
+	    "geometry_type_name TEXT,\n"
+	    "srs_id INTEGER NOT NULL,\n"
+	    "z INTEGER NOT NULL,\n"
+	    "m TINYINT NOT NULL,\n"
+	    "CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name),\n"
+	    "CONSTRAINT uk_gc_table_name UNIQUE (table_name),\n"
+	    "CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n"
+	    "CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))",
+
+	/* GeoPackage specification Table 8 / Table 26 */
+	"CREATE TABLE gpkg_tile_matrix_set (\n"
+	    "table_name TEXT NOT NULL PRIMARY KEY,\n"
+	    "srs_id INTEGER NOT NULL,\n"
+	    "min_x DOUBLE NOT NULL,\n"
+	    "min_y DOUBLE NOT NULL,\n"
+	    "max_x DOUBLE NOT NULL,\n"
+	    "max_y DOUBLE NOT NULL,\n"
+	    "CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n"
+	    "CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))",
+
+	/* Geopackage specification Table 9 / Table 27 */
+	/* TODO: figure out if the defaults are required - https://github.com/opengis/geopackage/issues/67 */
+	"CREATE TABLE gpkg_tile_matrix (\n"
+	    "table_name TEXT NOT NULL,\n"
+	    "zoom_level INTEGER NOT NULL,\n"
+	    "matrix_width INTEGER NOT NULL,\n"
+	    "matrix_height INTEGER NOT NULL,\n"
+	    "tile_width INTEGER NOT NULL,\n"
+	    "tile_height INTEGER NOT NULL,\n"
+	    "pixel_x_size DOUBLE NOT NULL,\n"
+	    "pixel_y_size DOUBLE NOT NULL,\n"
+	    "CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level),\n"
+	    "CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))",
+
+	/* GeoPackage specification Table 11 / Table 31 */
+	"CREATE TABLE gpkg_data_columns (\n"
+	    "table_name TEXT NOT NULL,\n"
+	    "column_name TEXT NOT NULL,\n"
+	    "name TEXT,\n"
+	    "title TEXT,\n"
+	    "description TEXT,\n"
+	    "mime_type TEXT,\n"
+	    "constraint_name TEXT,\n"
+	    "CONSTRAINT pk_gdc PRIMARY KEY (table_name, column_name),\n"
+	    "CONSTRAINT fk_gdc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))",
+
+	/* GeoPackage specification Table 12 / Table 32 */
+	"CREATE TABLE gpkg_data_column_constraints (\n"
+	    "constraint_name TEXT NOT NULL,\n"
+	    "constraint_type TEXT NOT NULL,\n"
+	    "value TEXT,\n"
+	    "min NUMERIC,\n"
+	    "minIsInclusive BOOLEAN,\n"
+	    "max NUMERIC,\n"
+	    "maxIsInclusive BOOLEAN,\n"
+	    "CONSTRAINT gdcc_ntv UNIQUE (constraint_name, constraint_type, value))",
+
+	/* GeoPackage specification Table 14 / Table 33 */
+	"CREATE TABLE gpkg_metadata (\n"
+	    "id INTEGER CONSTRAINT m_pk PRIMARY KEY ASC NOT NULL UNIQUE,\n"
+	    "md_scope TEXT NOT NULL DEFAULT 'dataset',\n"
+	    "md_standard_uri TEXT NOT NULL,\n"
+	    "mime_type TEXT NOT NULL DEFAULT 'text/xml',\n"
+	    "metadata TEXT NOT NULL)",
+
+	/* GeoPackage specification Table 16 / Table 34 */
+	"CREATE TABLE gpkg_metadata_reference (\n"
+	    "reference_scope TEXT NOT NULL,\n"
+	    "table_name TEXT,\n"
+	    "column_name TEXT,\n"
+	    "row_id_value INTEGER,\n"
+	    "timestamp DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n"
+	    "md_file_id INTEGER NOT NULL,\n"
+	    "md_parent_id INTEGER,\n"
+	    "CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES gpkg_metadata(id),\n"
+	    "CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES gpkg_metadata(id))",
+
+	/* GeoPackage specification Table 17 / Table 36 */
+	"CREATE TABLE gpkg_extensions (\n"
+	    "table_name TEXT,\n"
+	    "column_name TEXT,\n"
+	    "extension_name TEXT NOT NULL,\n"
+	    "definition TEXT NOT NULL,\n"
+	    "scope TEXT NOT NULL,\n"
+	    "CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))",
+
+	/* Next 10 constraints are from GeoPackage specification Table 37 */
+	"CREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0')\n"
+	    "WHERE (NEW.zoom_level < 0);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update'\n"
+	    "BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0')\n"
+	    "WHERE (NEW.zoom_level < 0);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1')\n"
+	    "WHERE (NEW.matrix_width < 1);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update'\n"
+	    "BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1')\n"
+	    "WHERE (NEW.matrix_width < 1);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1')\n"
+	    "WHERE (NEW.matrix_height < 1);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update'\n"
+	    "BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1')\n"
+	    "WHERE (NEW.matrix_height < 1);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0')\n"
+	    "WHERE NOT (NEW.pixel_x_size > 0);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update'\n"
+	    "BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0')\n"
+	    "WHERE NOT (NEW.pixel_x_size > 0);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0')\n"
+	    "WHERE NOT (NEW.pixel_y_size > 0);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update'\n"
+	    "BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0')\n"
+	    "WHERE NOT (NEW.pixel_y_size > 0);\n" "END",
+
+	/* Next two constraints are from GeoPackage specification Table 38 */
+	/* Note the change from catalogue to catalog, per https://github.com/opengis/geopackage/issues/69 */
+	"CREATE TRIGGER 'gpkg_metadata_md_scope_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_metadata'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n"
+	    "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup'));\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_md_scope_update'\n"
+	    "BEFORE UPDATE OF 'md_scope' ON 'gpkg_metadata'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n"
+	    "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup'));\n"
+	    "END",
+
+	/* The following eight constraints are from GeoPackage specification Table 39 */
+	"CREATE TRIGGER 'gpkg_metadata_reference_reference_scope_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: reference_scope must be one of \"geopackage\", \"table\", \"column\", \"row\", \"row/col\"')\n"
+	    "WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col');\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_reference_scope_update'\n"
+	    "BEFORE UPDATE OF 'reference_scope' ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: reference_scope must be one of \"geopackage\", \"table\", \"column\", \"row\", \"row/col\"')\n"
+	    "WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col');\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_column_name_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is \"geopackage\", \"table\" or \"row\"')\n"
+	    "WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_name IS NOT NULL);\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n"
+	    "WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%')));\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_column_name_update'\n"
+	    "BEFORE UPDATE OF column_name ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is \"geopackage\", \"table\" or \"row\"')\n"
+	    "WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_nameIS NOT NULL);\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n"
+	    "WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%')));\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_row_id_value_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is \"geopackage\", \"table\" or \"column\"')\n"
+	    "WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL;\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n"
+	    "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_row_id_value_update'\n"
+	    "BEFORE UPDATE OF 'row_id_value' ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is \"geopackage\", \"table\" or \"column\"')\n"
+	    "WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL;\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n"
+	    "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_timestamp_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n"
+	    "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL);\n"
+	    "END",
+
+	"CREATE TRIGGER 'gpkg_metadata_reference_timestamp_update'\n"
+	    "BEFORE UPDATE OF 'timestamp' ON 'gpkg_metadata_reference'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n"
+	    "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL);\n"
+	    "END",
+
+	/* the following four constraints probably should be in the GeoPackage spec, but aren't */
+	"CREATE TRIGGER 'gpkg_geometry_columns_z_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_geometry_columns'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2')\n"
+	    "WHERE NOT(NEW.z IN (0, 1, 2));\n" "END",
+
+	"CREATE TRIGGER 'gpkg_geometry_columns_z_update'\n"
+	    "BEFORE UPDATE OF 'z' ON 'gpkg_geometry_columns'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2')\n"
+	    "WHERE NOT NEW.z IN (0, 1, 2);\n" "END",
+
+	"CREATE TRIGGER 'gpkg_geometry_columns_m_insert'\n"
+	    "BEFORE INSERT ON 'gpkg_geometry_columns'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2')\n"
+	    "WHERE NOT(NEW.m IN (0, 1, 2));\n" "END",
+
+	"CREATE TRIGGER 'gpkg_geometry_columns_m_update'\n"
+	    "BEFORE UPDATE OF 'm' ON 'gpkg_geometry_columns'\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2')\n"
+	    "WHERE NOT NEW.m IN (0, 1, 2);\n" "END",
 
 	NULL
     };
-    
+
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+
     for (i = 0; tableSchemas[i] != NULL; ++i)
-    {
-	sql_stmt = sqlite3_mprintf("%s", tableSchemas[i]);    
-	sqlite = sqlite3_context_db_handle (context);
-	ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
-	sqlite3_free(sql_stmt);
-	if (ret != SQLITE_OK)
-	{
-	    sqlite3_result_error(context, errMsg, -1);
-	    sqlite3_free(errMsg);
-	    return;
-	}
-    }    
+      {
+	  sql_stmt = sqlite3_mprintf ("%s", tableSchemas[i]);
+	  sqlite = sqlite3_context_db_handle (context);
+	  ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_stmt);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_result_error (context, errMsg, -1);
+		sqlite3_free (errMsg);
+		return;
+	    }
+      }
 }
 #endif
diff --git a/src/geopackage/gpkgCreateTilesTable.c b/src/geopackage/gpkgCreateTilesTable.c
index 09009e8..2a3a3ed 100644
--- a/src/geopackage/gpkgCreateTilesTable.c
+++ b/src/geopackage/gpkgCreateTilesTable.c
@@ -43,16 +43,16 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #ifdef ENABLE_GEOPACKAGE
 GEOPACKAGE_DECLARE void
-fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc __attribute__ ((unused)),
-			   sqlite3_value ** argv)
+fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc
+			   __attribute__ ((unused)), sqlite3_value ** argv)
 {
 /* SQL function:
-/ gpkgCreateTilesTable(table_name, srid)
+/ gpkgCreateTilesTable(table_name, srid, min_x, min_y, max_x, max_y)
 /
-/ Create a new (empty) Tiles table and the associated metadata table, and the triggers for those tables
-/ It also adds in the matching entries into geopackage_contents, raster_columns and tile_table_metadata
+/ Create a new (empty) Tiles table and the triggers for that table
+/ It also adds in the matching entries into gpkg_contents and gpkg_tile_matrix_set
 /
-/ TODO: consider adding description and identifier to geopackage_contents
+/ TODO: consider adding description and identifier to gpkg_contents
 /
 / returns nothing on success, raises exception on error
 / 
@@ -61,80 +61,145 @@ fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc __attribute__ ((u
 */
     const unsigned char *table;
     int srid = -1;
+    double min_x;
+    double min_y;
+    double max_x;
+    double max_y;
     char *sql_stmt = NULL;
     sqlite3 *sqlite = NULL;
     char *errMsg = NULL;
     int ret = 0;
     int i = 0;
-    
-    const char* tableSchemas[] = {
-	"INSERT INTO geopackage_contents (table_name, data_type) VALUES (%Q, 'tiles')",
-	
-	"INSERT INTO tile_table_metadata VALUES (%Q, 1)",
 
+    const char *metaTableSchemas[] = {
+	"INSERT INTO gpkg_contents (table_name, data_type, srs_id, min_x, min_y, max_x, max_y) VALUES (%Q, 'tiles', %i, %f, %f, %f, %f)",
+	"INSERT INTO gpkg_tile_matrix_set (table_name, srs_id, min_x, min_y, max_x, max_y) VALUES (%Q, %i, %f, %f, %f, %f)",
+	NULL
+    };
+
+    const char *tableSchemas[] = {
 	"CREATE TABLE %q (\n"
-	"id INTEGER PRIMARY KEY AUTOINCREMENT,\n"
-	"zoom_level INTEGER NOT NULL DEFAULT 0,\n"
-	"tile_column INTEGER NOT NULL DEFAULT 0,\n"
-	"tile_row INTEGER NOT NULL DEFAULT 0,\n"
-	"tile_data BLOB NOT NULL,\n"
-	"UNIQUE (zoom_level, tile_column, tile_row))",
-	
-	"CREATE TABLE %q_rt_metadata (\n"
-	"row_id_value INTEGER NOT NULL,\n"
-	"r_raster_column TEXT NOT NULL DEFAULT 'tile_data',\n"
-	"georectification INTEGER NOT NULL DEFAULT 0,\n"
-	"min_x DOUBLE NOT NULL DEFAULT -180.0,\n"
-	"min_y DOUBLE NOT NULL DEFAULT -90.0,\n"
-	"max_x DOUBLE NOT NULL DEFAULT 180.0,\n"
-	"max_y DOUBLE NOT NULL DEFAULT 90.0,\n"
-	"compr_qual_factor INTEGER NOT NULL DEFAULT 100,\n"
-	"CONSTRAINT pk_smt_rm PRIMARY KEY (row_id_value, r_raster_column) ON CONFLICT ROLLBACK)",
-	
+	    "id INTEGER PRIMARY KEY AUTOINCREMENT,\n"
+	    "zoom_level INTEGER NOT NULL DEFAULT 0,\n"
+	    "tile_column INTEGER NOT NULL DEFAULT 0,\n"
+	    "tile_row INTEGER NOT NULL DEFAULT 0,\n"
+	    "tile_data BLOB NOT NULL,\n"
+	    "UNIQUE (zoom_level, tile_column, tile_row))",
+
 	"SELECT gpkgAddTileTriggers(%Q)",
-	
-	"SELECT gpkgAddRtMetadataTriggers(%Q)",
 
 	NULL
     };
-    
+
     if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesTable() error: argument 1 [table] is not of the String type",
+				-1);
+	  return;
+      }
     table = sqlite3_value_text (argv[0]);
 
     if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type",
+				-1);
+	  return;
+      }
     srid = sqlite3_value_int (argv[1]);
 
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  min_x = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  min_x = (double) sqlite3_value_int (argv[2]);
+      }
+    else
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesTable() error: argument 3 [min_x] is not a numeric type",
+				-1);
+	  return;
+      }
+
+    if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT)
+      {
+	  min_y = sqlite3_value_double (argv[3]);
+      }
+    else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
+      {
+	  min_y = (double) sqlite3_value_int (argv[3]);
+      }
+    else
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesTable() error: argument 4 [min_y] is not a numeric type",
+				-1);
+	  return;
+      }
+
+    if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT)
+      {
+	  max_x = sqlite3_value_double (argv[4]);
+      }
+    else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER)
+      {
+	  max_x = (double) sqlite3_value_int (argv[4]);
+      }
+    else
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesTable() error: argument 5 [max_x] is not a numeric type",
+				-1);
+	  return;
+      }
+
+    if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT)
+      {
+	  max_y = sqlite3_value_double (argv[5]);
+      }
+    else if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER)
+      {
+	  max_y = (double) sqlite3_value_int (argv[5]);
+      }
+    else
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesTable() error: argument 6 [max_y] is not a numeric type",
+				-1);
+	  return;
+      }
     sqlite = sqlite3_context_db_handle (context);
 
-    sql_stmt = sqlite3_mprintf("INSERT INTO raster_columns (r_table_name, r_raster_column, georectification, srid) VALUES (%Q, 'tile_data', 1, %i)", table, srid);
-    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
-    sqlite3_free(sql_stmt);
-    if (ret != SQLITE_OK)
-    {
-	sqlite3_result_error(context, errMsg, -1);
-	sqlite3_free(errMsg);
-	return;
-    }
+    for (i = 0; metaTableSchemas[i] != NULL; ++i)
+      {
+	  sql_stmt =
+	      sqlite3_mprintf (metaTableSchemas[i], table, srid, min_x, min_y,
+			       max_x, max_y);
+	  ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_stmt);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_result_error (context, errMsg, -1);
+		sqlite3_free (errMsg);
+		return;
+	    }
+      }
 
     for (i = 0; tableSchemas[i] != NULL; ++i)
-    {
-	sql_stmt = sqlite3_mprintf(tableSchemas[i], table);    
-	ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
-	sqlite3_free(sql_stmt);
-	if (ret != SQLITE_OK)
-	{
-	    sqlite3_result_error(context, errMsg, -1);
-	    sqlite3_free(errMsg);
-	    return;
-	}
-    }    
+      {
+	  sql_stmt = sqlite3_mprintf (tableSchemas[i], table);
+	  ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_stmt);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_result_error (context, errMsg, -1);
+		sqlite3_free (errMsg);
+		return;
+	    }
+      }
 }
 #endif
diff --git a/src/geopackage/gpkgCreateTilesZoomLevel.c b/src/geopackage/gpkgCreateTilesZoomLevel.c
index 7b904e5..6dda9e4 100644
--- a/src/geopackage/gpkgCreateTilesZoomLevel.c
+++ b/src/geopackage/gpkgCreateTilesZoomLevel.c
@@ -18,7 +18,7 @@ The Original Code is GeoPackage Extensions
 
 The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
  
-Portions created by the Initial Developer are Copyright (C) 2012
+Portions created by the Initial Developer are Copyright (C) 2012-2013
 the Initial Developer. All Rights Reserved.
 
 Contributor(s):
@@ -44,8 +44,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #ifdef ENABLE_GEOPACKAGE
 GEOPACKAGE_DECLARE void
-fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc __attribute__ ((unused)),
-			   sqlite3_value ** argv)
+fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc
+			       __attribute__ ((unused)), sqlite3_value ** argv)
 {
 /* SQL function:
 / gpkgCreateTilesZoomLevel(table_name, zoom_level, extent_width, extent_height)
@@ -69,70 +69,80 @@ fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc __attribute__
     sqlite3 *sqlite = NULL;
     char *errMsg = NULL;
     int ret = 0;
-        
+
     if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type",
+				-1);
+	  return;
+      }
     table = sqlite3_value_text (argv[0]);
 
     if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type",
+				-1);
+	  return;
+      }
     zoomlevel = sqlite3_value_int (argv[1]);
     if (zoomlevel < 0)
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0",
+				-1);
+	  return;
+      }
     if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
-    {
-	extent_width = (double)sqlite3_value_int (argv[2]);
-    }
+      {
+	  extent_width = (double) sqlite3_value_int (argv[2]);
+      }
     else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
-    {
-	extent_width = sqlite3_value_double (argv[2]);
-    }
+      {
+	  extent_width = sqlite3_value_double (argv[2]);
+      }
     else
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type", -1);
-	return;
-    }
-    
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type",
+				-1);
+	  return;
+      }
+
     if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
-    {
-	extent_height = (double)sqlite3_value_int (argv[3]);
-    }
+      {
+	  extent_height = (double) sqlite3_value_int (argv[3]);
+      }
     else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT)
-    {
-	extent_height = sqlite3_value_double (argv[3]);
-    }
+      {
+	  extent_height = sqlite3_value_double (argv[3]);
+      }
     else
-    {
-	sqlite3_result_error(context, "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type", -1);
-	return;
-    }
-    
+      {
+	  sqlite3_result_error (context,
+				"gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type",
+				-1);
+	  return;
+      }
+
     sqlite = sqlite3_context_db_handle (context);
-    columns = pow(2, zoomlevel);
+    columns = pow (2, zoomlevel);
     rows = columns;
 
-    sql_stmt = sqlite3_mprintf("INSERT INTO tile_matrix_metadata"
-                               "(t_table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height, pixel_x_size, pixel_y_size)"
-			       "VALUES (%Q, %i, %i, %i, %i, %i, %g, %g)",
-			       table, zoomlevel, columns, rows, tilesize, tilesize,
-			       extent_width/(tilesize * columns),
-			       extent_height/(tilesize * rows));
+    sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_tile_matrix"
+				"(table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height, pixel_x_size, pixel_y_size)"
+				"VALUES (%Q, %i, %i, %i, %i, %i, %g, %g)",
+				table, zoomlevel, columns, rows, tilesize,
+				tilesize, extent_width / (tilesize * columns),
+				extent_height / (tilesize * rows));
     ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
-    sqlite3_free(sql_stmt);
+    sqlite3_free (sql_stmt);
     if (ret != SQLITE_OK)
-    {
-	sqlite3_result_error(context, errMsg, -1);
-	sqlite3_free(errMsg);
-	return;
-    }
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
 }
 #endif
diff --git a/src/geopackage/gpkgGetImageType.c b/src/geopackage/gpkgGetImageType.c
index 572c96b..a6b7f36 100644
--- a/src/geopackage/gpkgGetImageType.c
+++ b/src/geopackage/gpkgGetImageType.c
@@ -67,33 +67,40 @@ fnct_gpkgGetImageType (sqlite3_context * context, int argc UNUSED,
     unsigned char *p_blob = NULL;
     int n_bytes = 0;
     int blobType;
-    
+
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
-    {
-	sqlite3_result_error(context, "gpkgGetImageType() error: argument 1 [image blob] is not of the BLOB type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetImageType() error: argument 1 [image blob] is not of the BLOB type",
+				-1);
+	  return;
+      }
     p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
     n_bytes = sqlite3_value_bytes (argv[0]);
-    
-    blobType = gaiaGuessBlobType(p_blob, n_bytes);
+
+    blobType = gaiaGuessBlobType (p_blob, n_bytes);
     switch (blobType)
-    {
-	case GAIA_TIFF_BLOB:
-	    sqlite3_result_text(context, "tiff", strlen("tiff"), SQLITE_TRANSIENT);
-	    break;
-	case GAIA_PNG_BLOB:
-    	    sqlite3_result_text(context, "png", strlen("png"), SQLITE_TRANSIENT);
-	    break;
-	case GAIA_JPEG_BLOB:
-    	    sqlite3_result_text(context, "jpeg", strlen("jpeg"), SQLITE_TRANSIENT);
-	    break;
-	case GAIA_WEBP_BLOB:
-    	    sqlite3_result_text(context, "x-webp", strlen("x-webp"), SQLITE_TRANSIENT);
-	    break;
-	default:
-    	    sqlite3_result_text(context, "unknown", strlen("unknown"), SQLITE_TRANSIENT);
-	    break;
-    }
+      {
+      case GAIA_TIFF_BLOB:
+	  sqlite3_result_text (context, "tiff", strlen ("tiff"),
+			       SQLITE_TRANSIENT);
+	  break;
+      case GAIA_PNG_BLOB:
+	  sqlite3_result_text (context, "png", strlen ("png"),
+			       SQLITE_TRANSIENT);
+	  break;
+      case GAIA_JPEG_BLOB:
+	  sqlite3_result_text (context, "jpeg", strlen ("jpeg"),
+			       SQLITE_TRANSIENT);
+	  break;
+      case GAIA_WEBP_BLOB:
+	  sqlite3_result_text (context, "x-webp", strlen ("x-webp"),
+			       SQLITE_TRANSIENT);
+	  break;
+      default:
+	  sqlite3_result_text (context, "unknown", strlen ("unknown"),
+			       SQLITE_TRANSIENT);
+	  break;
+      }
 }
 #endif
diff --git a/src/geopackage/gpkgInsertEpsgSRID.c b/src/geopackage/gpkgInsertEpsgSRID.c
new file mode 100644
index 0000000..13f9798
--- /dev/null
+++ b/src/geopackage/gpkgInsertEpsgSRID.c
@@ -0,0 +1,129 @@
+/*
+
+    GeoPackage extensions for SpatiaLite / SQLite
+ 
+Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage Extensions
+
+The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
+ 
+Portions created by the Initial Developer are Copyright (C) 2012
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include "spatialite/geopackage.h"
+#include "config.h"
+#include "geopackage_internal.h"
+
+#ifdef ENABLE_GEOPACKAGE
+GEOPACKAGE_DECLARE void
+fnct_gpkgInsertEpsgSRID (sqlite3_context * context, int argc UNUSED,
+			 sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgInsertEpsgSRID(srid)
+/
+/ Adds a spatial reference system entry for the specified EPSG identifier
+/
+/ It is an error to try to add the entry if it already exists (this is often indicated by
+/ the "PRIMARY KEY must be unique" error message)
+/
+/ returns nothing on success, raises exception on error
+*/
+    char *sqlcmd = NULL;
+    sqlite3 *sqlite = NULL;
+    sqlite3_stmt *sql_stmt;
+    int ret = 0;
+    int srid;
+    struct epsg_defs *first = NULL;
+    struct epsg_defs *last = NULL;
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_error (context,
+				"gpkgInsertEpsgSRID() error: argument 1 [srid] is not of the integer type",
+				-1);
+	  return;
+      }
+    srid = sqlite3_value_int (argv[0]);
+
+    /* get the EPSG definition for this SRID from our master list */
+    initialize_epsg (srid, &first, &last);
+    if (first == NULL)
+      {
+	  sqlite3_result_error (context,
+				"gpkgInsertEpsgSRID() error: srid is not defined in the EPSG inlined dataset",
+				-1);
+	  return;
+      }
+
+    /* get a context handle */
+    sqlite = sqlite3_context_db_handle (context);
+
+    /* add the definition for the SRID */
+    sqlcmd =
+	"INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, "
+	"organization_coordsys_id, definition) VALUES (?, ?, ?, ?, ?)";
+    ret = sqlite3_prepare_v2 (sqlite, sqlcmd, strlen (sqlcmd), &sql_stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, sqlite3_errmsg (sqlite), -1);
+	  goto stop;
+      }
+    sqlite3_bind_text (sql_stmt, 1, first->ref_sys_name,
+		       strlen (first->ref_sys_name), SQLITE_STATIC);
+    sqlite3_bind_int (sql_stmt, 2, first->srid);
+    sqlite3_bind_text (sql_stmt, 3, first->auth_name, strlen (first->auth_name),
+		       SQLITE_STATIC);
+    sqlite3_bind_int (sql_stmt, 4, first->auth_srid);
+    if (strlen (first->srs_wkt) == 0)
+      {
+	  sqlite3_bind_text (sql_stmt, 5, "Undefined", 9, SQLITE_STATIC);
+      }
+    else
+      {
+	  sqlite3_bind_text (sql_stmt, 5, first->srs_wkt,
+			     strlen (first->srs_wkt), SQLITE_STATIC);
+      }
+    ret = sqlite3_step (sql_stmt);
+    if (ret != SQLITE_DONE && ret != SQLITE_ROW)
+      {
+	  sqlite3_result_error (context, sqlite3_errmsg (sqlite), -1);
+	  goto stop;
+      }
+  stop:
+    if (sql_stmt != NULL)
+      {
+	  sqlite3_finalize (sql_stmt);
+      }
+
+/* freeing the EPSG defs list */
+    free_epsg (first);
+}
+#endif
diff --git a/src/geopackage/gpkgMakePoint.c b/src/geopackage/gpkgMakePoint.c
new file mode 100644
index 0000000..0e47b11
--- /dev/null
+++ b/src/geopackage/gpkgMakePoint.c
@@ -0,0 +1,826 @@
+/*
+
+    GeoPackage extensions for SpatiaLite / SQLite
+ 
+Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage Extensions
+
+The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
+ 
+Portions created by the Initial Developer are Copyright (C) 2012
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include "spatialite/geopackage.h"
+#include "config.h"
+#include "geopackage_internal.h"
+
+#ifdef ENABLE_GEOPACKAGE
+
+#define GEOPACKAGE_UNUSED() if (argc || argv) argc = argc;
+
+static void
+gpkgMakePoint (double x, double y, int srid, unsigned char **result,
+	       unsigned int *size)
+{
+    /* build a Blob encoded Geometry representing a POINT */
+    unsigned char *ptr;
+    int endian_arch = gaiaEndianArch ();
+
+    /* computing the Blob size and then allocating it */
+    *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN;
+    *size += GEOPACKAGE_WKB_HEADER_LEN;
+    *size += (sizeof (double) * 2);	/* [x,y] coords */
+    *result = malloc (*size);
+    if (*result == NULL)
+      {
+	  return;
+      }
+    memset (*result, 0xD9, *size);
+    ptr = *result;
+
+    /* setting the Blob value */
+    gpkgSetHeader2DLittleEndian (ptr, srid, endian_arch);
+
+    gpkgSetHeader2DMbr (ptr + GEOPACKAGE_HEADER_LEN, x, y, x, y, endian_arch);
+
+    *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN) =
+	GEOPACKAGE_WKB_LITTLEENDIAN;
+    gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + 1,
+		  GEOPACKAGE_WKB_POINT, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1,
+		  endian_arch);
+}
+
+static void
+gpkgMakePointZ (double x, double y, double z, int srid, unsigned char **result,
+		unsigned int *size)
+{
+/* build a Blob encoded Geometry representing a POINT */
+    unsigned char *ptr;
+    int endian_arch = gaiaEndianArch ();
+/* computing the Blob size and then allocating it */
+    *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN;
+    *size += GEOPACKAGE_WKB_HEADER_LEN;
+    *size += (sizeof (double) * 3);	/* [x,y,z] coords */
+    *result = malloc (*size);
+    if (*result == NULL)
+      {
+	  return;
+      }
+    memset (*result, 0xD9, *size);	/* just a flag value */
+    ptr = *result;
+/* setting the Blob value */
+    *ptr = GEOPACKAGE_MAGIC1;
+    *(ptr + 1) = GEOPACKAGE_MAGIC2;
+    *(ptr + 2) = GEOPACKAGE_VERSION;
+    *(ptr + 3) = GEOPACKAGE_FLAGS_3D_LITTLEENDIAN;
+    gaiaExport32 (ptr + 4, srid, 1, endian_arch);	/* the SRID */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch);	/* MBR - minimum X */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + sizeof (double), x, 1, endian_arch);	/* MBR - maximum x */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch);	/* MBR - minimum Y */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch);	/* MBR - maximum Y */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), z, 1, endian_arch);	/* MBR - maximum Z */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), z, 1, endian_arch);	/* MBR - maximum Z */
+    *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN) =
+	GEOPACKAGE_WKB_LITTLEENDIAN;
+    gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + 1,
+		  GEOPACKAGE_WKB_POINTZ, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1,
+		  endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), z, 1,
+		  endian_arch);
+}
+
+static void
+gpkgMakePointM (double x, double y, double m, int srid, unsigned char **result,
+		unsigned int *size)
+{
+/* build a Blob encoded Geometry representing a POINT */
+    unsigned char *ptr;
+    int endian_arch = gaiaEndianArch ();
+/* computing the Blob size and then allocating it */
+    *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN;
+    *size += GEOPACKAGE_WKB_HEADER_LEN;
+    *size += (sizeof (double) * 3);	/* [x,y,m] coords */
+    *result = malloc (*size);
+    if (*result == NULL)
+      {
+	  return;
+      }
+    memset (*result, 0xD9, *size);	/* just a flag value */
+    ptr = *result;
+/* setting the Blob value */
+    *ptr = GEOPACKAGE_MAGIC1;
+    *(ptr + 1) = GEOPACKAGE_MAGIC2;
+    *(ptr + 2) = GEOPACKAGE_VERSION;
+    *(ptr + 3) = GEOPACKAGE_FLAGS_2DM_LITTLEENDIAN;
+    gaiaExport32 (ptr + 4, srid, 1, endian_arch);	/* the SRID */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch);	/* MBR - minimum X */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + sizeof (double), x, 1, endian_arch);	/* MBR - maximum X */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch);	/* MBR - minimum Y */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch);	/* MBR - maximum Y */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), m, 1, endian_arch);	/* MBR - maximum M */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), m, 1, endian_arch);	/* MBR - maximum M */
+    *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN) =
+	GEOPACKAGE_WKB_LITTLEENDIAN;
+    gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + 1,
+		  GEOPACKAGE_WKB_POINTM, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1,
+		  endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), m, 1,
+		  endian_arch);
+}
+
+static void
+gpkgMakePointZM (double x, double y, double z, double m, int srid,
+		 unsigned char **result, unsigned int *size)
+{
+/* build a Blob encoded Geometry representing a POINT */
+    unsigned char *ptr;
+    int endian_arch = gaiaEndianArch ();
+/* computing the Blob size and then allocating it */
+    *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN;
+    *size += GEOPACKAGE_WKB_HEADER_LEN;
+    *size += (sizeof (double) * 4);	/* [x,y,z,m] coords */
+    *result = malloc (*size);
+    if (*result == NULL)
+      {
+	  return;
+      }
+    memset (*result, 0xD9, *size);	/* just a flag value */
+    ptr = *result;
+/* setting the Blob value */
+    *ptr = GEOPACKAGE_MAGIC1;
+    *(ptr + 1) = GEOPACKAGE_MAGIC2;
+    *(ptr + 2) = GEOPACKAGE_VERSION;
+    *(ptr + 3) = GEOPACKAGE_FLAGS_3DM_LITTLEENDIAN;
+    gaiaExport32 (ptr + 4, srid, 1, endian_arch);	/* the SRID */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch);	/* MBR - minimum X */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 1 * sizeof (double), x, 1, endian_arch);	/* MBR - maximum X */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch);	/* MBR - minimum Y */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch);	/* MBR - maximum Y */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), z, 1, endian_arch);	/* MBR - minimum Z */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), z, 1, endian_arch);	/* MBR - maximum Z */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 6 * sizeof (double), m, 1, endian_arch);	/* MBR - minimum M */
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 7 * sizeof (double), m, 1, endian_arch);	/* MBR - maximum M */
+    *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN) =
+	GEOPACKAGE_WKB_LITTLEENDIAN;
+    gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + 1,
+		  GEOPACKAGE_WKB_POINTZM, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1,
+		  endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), z, 1,
+		  endian_arch);
+    gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN +
+		  GEOPACKAGE_WKB_HEADER_LEN + (3 * sizeof (double)), m, 1,
+		  endian_arch);
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePoint (sqlite3_context * context, int argc UNUSED,
+		    sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePoint(x, y)
+/
+/ Creates a GeoPackage geometry POINT
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    gpkgMakePoint (x, y, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointWithSRID (sqlite3_context * context, int argc UNUSED,
+			    sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePoint(x, y, srid)
+/
+/ Creates a GeoPackage geometry POINT
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    int srid;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    srid = sqlite3_value_int (argv[2]);
+
+    gpkgMakePoint (x, y, srid, &p_result, &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointZ (sqlite3_context * context, int argc UNUSED,
+		     sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePointZ(x, y, z)
+/
+/ Creates a GeoPackage geometry POINT Z
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    double z;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  z = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[2]);
+	  z = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+
+    gpkgMakePointZ (x, y, z, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result,
+		    &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointZWithSRID (sqlite3_context * context, int argc UNUSED,
+			     sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePointZ(x, y, z, srid)
+/
+/ Creates a GeoPackage geometry POINT Z
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    double z;
+    int srid;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  z = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[2]);
+	  z = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    srid = sqlite3_value_int (argv[3]);
+
+    gpkgMakePointZ (x, y, z, srid, &p_result, &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointM (sqlite3_context * context, int argc UNUSED,
+		     sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePointM(x, y, m)
+/
+/ Creates a GeoPackage geometry POINT M
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    double m;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  m = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[2]);
+	  m = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+
+    gpkgMakePointM (x, y, m, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result,
+		    &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointMWithSRID (sqlite3_context * context, int argc UNUSED,
+			     sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePointM(x, y, m, srid)
+/
+/ Creates a GeoPackage geometry POINT M
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    double m;
+    int srid;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  m = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[2]);
+	  m = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    srid = sqlite3_value_int (argv[3]);
+
+    gpkgMakePointM (x, y, m, srid, &p_result, &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointZM (sqlite3_context * context, int argc UNUSED,
+		      sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePointM(x, y, z, m)
+/
+/ Creates a GeoPackage geometry POINT ZM
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    double z;
+    double m;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  z = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[2]);
+	  z = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT)
+      {
+	  m = sqlite3_value_double (argv[3]);
+      }
+    else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[3]);
+	  m = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+
+    gpkgMakePointZM (x, y, z, m, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result,
+		     &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+GEOPACKAGE_DECLARE void
+fnct_gpkgMakePointZMWithSRID (sqlite3_context * context, int argc UNUSED,
+			      sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgMakePointZM(x, y, z, m, srid)
+/
+/ Creates a GeoPackage geometry POINT ZM
+/
+/ returns nothing on success, raises exception on error
+*/
+    unsigned int len;
+    int int_value;
+    unsigned char *p_result = NULL;
+    double x;
+    double y;
+    double z;
+    double m;
+    int srid;
+    GEOPACKAGE_UNUSED ();	/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+      {
+	  x = sqlite3_value_double (argv[0]);
+      }
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[0]);
+	  x = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+      {
+	  y = sqlite3_value_double (argv[1]);
+      }
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[1]);
+	  y = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
+      {
+	  z = sqlite3_value_double (argv[2]);
+      }
+    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[2]);
+	  z = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT)
+      {
+	  m = sqlite3_value_double (argv[3]);
+      }
+    else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
+      {
+	  int_value = sqlite3_value_int (argv[3]);
+	  m = int_value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    srid = sqlite3_value_int (argv[4]);
+
+    gpkgMakePointZM (x, y, z, m, srid, &p_result, &len);
+    if (!p_result)
+      {
+	  sqlite3_result_null (context);
+      }
+    else
+      {
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+#endif
diff --git a/src/geopackage/gpkg_add_geometry_triggers.c b/src/geopackage/gpkg_add_geometry_triggers.c
new file mode 100644
index 0000000..f91e358
--- /dev/null
+++ b/src/geopackage/gpkg_add_geometry_triggers.c
@@ -0,0 +1,191 @@
+/*
+
+    GeoPackage extensions for SpatiaLite / SQLite
+ 
+Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage Extensions
+
+The Initial Developer of the Original Code is Sandro Furieri (a.furieri at lqt.it)
+ 
+Portions created by the Initial Developer are Copyright (C) 2014
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+Brad Hards (bradh at frogmouth.net)
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include "spatialite/geopackage.h"
+#include "spatialite/gaiaaux.h"
+#include "config.h"
+#include "geopackage_internal.h"
+
+#ifdef ENABLE_GEOPACKAGE
+GEOPACKAGE_DECLARE void
+fnct_gpkgAddGeometryTriggers (sqlite3_context * context, int argc
+			      __attribute__ ((unused)), sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgAddGeometryTriggers(table, column)
+/
+/ Adds Geopackage geometry table triggers for the named table
+/ returns nothing on success, raises exception on error
+/
+*/
+    const char *table;
+    const char *column;
+    char *xtable;
+    char *xcolumn;
+    char *sql_stmt = NULL;
+    sqlite3 *sqlite = NULL;
+    char *errMsg = NULL;
+    int ret = 0;
+    int i = 0;
+    const char *trigger_stmts[] = {
+	"CREATE TRIGGER \"fgti_%s_%s\"\n"
+	    "BEFORE INSERT ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE (ROLLBACK, 'insert on \"%s\" violates constraint: "
+	    "ST_GeometryType(\"%s\") is not assignable from "
+	    "gpkg_geometry_columns.geometry_type_name value')\n"
+	    "WHERE (SELECT geometry_type_name\n"
+	    "FROM gpkg_geometry_columns\n"
+	    "WHERE Lower(table_name) = Lower(%Q)\n"
+	    "AND Lower(column_name) = Lower(%Q)\n"
+	    "AND gpkg_IsAssignable(geometry_type_name, "
+	    "ST_GeometryType(NEW.\"%s\")) = 0);\nEND",
+
+	"CREATE TRIGGER \"fgtu_%s_%s\"\n"
+	    "BEFORE UPDATE OF \"%s\" ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE (ROLLBACK, 'update of \"%s\" on \"%s\" violates constraint: "
+	    "ST_GeometryType(\"%s\") is not assignable from "
+	    "gpkg_geometry_columns.geometry_type_name value')\n"
+	    "WHERE (SELECT geometry_type_name\n"
+	    "FROM gpkg_geometry_columns\n"
+	    "WHERE Lower(table_name) = Lower(%Q) "
+	    "AND Lower(column_name) = Lower(%Q) "
+	    "AND gpkg_IsAssignable(geometry_type_name, "
+	    "ST_GeometryType(NEW.\"%s\")) = 0);\nEND",
+
+	"CREATE TRIGGER \"fgsi_%s_%s\"\n"
+	    "BEFORE INSERT ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE (ROLLBACK, 'insert on \"%s\" violates constraint: "
+	    "ST_SRID(\"%s\") does not match gpkg_geometry_columns.srs_id value')\n"
+	    "WHERE (SELECT srs_id FROM gpkg_geometry_columns\n"
+	    "WHERE Lower(table_name) = Lower(%Q) "
+	    "AND Lower(column_name) = Lower(%Q) "
+	    "AND ST_SRID(NEW.\"%s\") <> srs_id);\nEND",
+
+	"CREATE TRIGGER \"fgsu_%s_%s\"\n"
+	    "BEFORE UPDATE OF \"%s\" ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE (ROLLBACK, 'update of \"%s\" on \"%s\" violates constraint: "
+	    "ST_SRID(\"%s\") does not match gpkg_geometry_columns.srs_id value')\n"
+	    "WHERE (SELECT srs_id FROM gpkg_geometry_columns\n"
+	    "WHERE Lower(table_name) = Lower(%Q) "
+	    "AND Lower(column_name) = Lower(%Q) "
+	    "AND ST_SRID(NEW.\"%s\") <> srs_id);\nEND",
+
+	NULL
+    };
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryTriggers() error: argument 1 [table] is not of the String type",
+				-1);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddGeometryTriggers() error: argument 2 [column] is not of the String type",
+				-1);
+	  return;
+      }
+    table = (const char *) sqlite3_value_text (argv[0]);
+    column = (const char *) sqlite3_value_text (argv[1]);
+    xtable = gaiaDoubleQuotedSql (table);
+    xcolumn = gaiaDoubleQuotedSql (column);
+    sqlite = sqlite3_context_db_handle (context);
+
+    for (i = 0; i < 4; i++)
+      {
+	  /* inserting the Triggers */
+	  if (i == 0 || i == 2)
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable,
+				   table, xcolumn, column, column, xcolumn);
+	  else
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn,
+				   xtable, table, column, xcolumn, column,
+				   column, xcolumn);
+	  ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_stmt);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_result_error (context, errMsg, -1);
+		sqlite3_free (errMsg);
+		free (xtable);
+		free (xcolumn);
+		return;
+	    }
+      }
+    free (xtable);
+    free (xcolumn);
+
+/* registering the GPKG extensions */
+    sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions "
+				"(table_name, column_name, extension_name, definition, scope) "
+				"VALUES (Lower(%Q), Lower(%Q), 'gpkg_geometry_type_trigger', "
+				"'GeoPackage 1.0 Specification Annex N', 'write-only')",
+				table, column);
+    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+    sqlite3_free (sql_stmt);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
+    sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions "
+				"(table_name, column_name, extension_name, definition, scope) "
+				"VALUES (Lower(%Q), Lower(%Q), 'gpkg_srs_id_trigger', "
+				"'GeoPackage 1.0 Specification Annex N', 'write-only')",
+				table, column);
+    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+    sqlite3_free (sql_stmt);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
+}
+#endif
diff --git a/src/geopackage/gpkg_add_rt_metadata_triggers.c b/src/geopackage/gpkg_add_rt_metadata_triggers.c
deleted file mode 100644
index 72978d0..0000000
--- a/src/geopackage/gpkg_add_rt_metadata_triggers.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-
-    GeoPackage extensions for SpatiaLite / SQLite
- 
-Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
-The contents of this file are subject to the Mozilla Public License Version
-1.1 (the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage Extensions
-
-The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
- 
-Portions created by the Initial Developer are Copyright (C) 2012
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include "spatialite/geopackage.h"
-#include "config.h"
-#include "geopackage_internal.h"
-
-#ifdef ENABLE_GEOPACKAGE
-GEOPACKAGE_DECLARE void
-fnct_gpkgAddRtMetadataTriggers (sqlite3_context * context, int argc UNUSED,
-			sqlite3_value ** argv)
-{
-/* SQL function:
-/ gpkgAddRtMetadataTriggers(table)
-/
-/ Adds Geopackage table triggers for the metadata table associated with the 
-/ named table. NOTE: pass the data table name, not the metadata table name.
-/
-/ returns nothing on success, raises exception on error
-*/
-    const unsigned char *table;
-    char *sql_stmt = NULL;
-    sqlite3 *sqlite = NULL;
-    char *errMsg = NULL;
-    int ret = 0;
-    int i = 0;
-    /* Note: the code below relies on there being five (or less) varargs, all of which are the table name */
-    const char* trigger_stmts[] = {
-	"CREATE TRIGGER '%q_rt_metadata_r_raster_column_insert'\n"
-	"BEFORE INSERT ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n"
-	"WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_r_raster_column_update'\n"
-	"BEFORE UPDATE OF r_raster_column ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update on table ''%q_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n"
-	"WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_georectification_insert'\n"
-	"BEFORE INSERT ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n"
-	"WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_georectification_update'\n"
-	"BEFORE UPDATE OF georectification ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n"
-	"WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_compr_qual_factor_insert'\n"
-	"BEFORE INSERT ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''%q_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor < 1;\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''%q_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor > 100;\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_compr_qual_factor_update'\n"
-	"BEFORE UPDATE OF compr_qual_factor ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''%q_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor < 1;\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''%q_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor > 100;\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_row_id_value_insert'\n"
-	"BEFORE INSERT ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table %q_rt_metadata violates constraint: row_id_value must exist in %q table')\n"
-	"WHERE NOT EXISTS (SELECT rowid FROM '%q' WHERE rowid = NEW.row_id_value);\n"
-	"END",
-
-	"CREATE TRIGGER '%q_rt_metadata_row_id_value_update'\n"
-	"BEFORE UPDATE OF 'row_id_value' ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table %q_rt_metadata violates constraint: row_id_value must exist in %qtable')\n"
-	"WHERE NOT EXISTS (SELECT rowid FROM '%q' WHERE rowid = NEW.row_id_value);\n"
-	"END",
-
-	NULL
-    };
-    
-    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgAddRtMetadataTriggers() error: argument 1 [table] is not of the String type", -1);
-	return;
-    }
-    table = sqlite3_value_text (argv[0]);
-
-    for (i = 0; trigger_stmts[i] != NULL; ++i)
-    {
-	sql_stmt = sqlite3_mprintf(trigger_stmts[i], table, table, table, table, table);    
-	sqlite = sqlite3_context_db_handle (context);
-	ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
-	sqlite3_free(sql_stmt);
-	if (ret != SQLITE_OK)
-	{
-	    sqlite3_result_error(context, errMsg, -1);
-	    sqlite3_free(errMsg);
-	    return;
-	}
-    } 
-}
-#endif
diff --git a/src/geopackage/gpkg_add_spatial_index.c b/src/geopackage/gpkg_add_spatial_index.c
new file mode 100644
index 0000000..d3be278
--- /dev/null
+++ b/src/geopackage/gpkg_add_spatial_index.c
@@ -0,0 +1,214 @@
+/*
+
+    GeoPackage extensions for SpatiaLite / SQLite
+ 
+Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage Extensions
+
+The Initial Developer of the Original Code is Sandro Furieri (a.furieri at lqt.it)
+ 
+Portions created by the Initial Developer are Copyright (C) 2014
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+Brad Hards (bradh at frogmouth.net)
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include "spatialite/geopackage.h"
+#include "spatialite/gaiaaux.h"
+#include "config.h"
+#include "geopackage_internal.h"
+
+#ifdef ENABLE_GEOPACKAGE
+GEOPACKAGE_DECLARE void
+fnct_gpkgAddSpatialIndex (sqlite3_context * context, int argc
+			  __attribute__ ((unused)), sqlite3_value ** argv)
+{
+/* SQL function:
+/ gpkgAddSpatialIndex(table, column)
+/
+/ Adds Geopackage SpatialIndex triggers for the named table
+/ and creates the "rtree_<T>_<C> Virtual Table
+/ returns nothing on success, raises exception on error
+/
+*/
+    const char *table;
+    const char *column;
+    char *xtable;
+    char *xcolumn;
+    char *sql_stmt = NULL;
+    sqlite3 *sqlite = NULL;
+    char *errMsg = NULL;
+    int ret = 0;
+    int i = 0;
+    const char *trigger_stmts[] = {
+	"CREATE TRIGGER \"rtree_%s_%s_insert\"\n"
+	    "AFTER INSERT ON \"%s\"\n"
+	    "WHEN (new.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n"
+	    "BEGIN\n"
+	    "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, "
+	    "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), "
+	    "ST_MaxY(NEW.\"%s\"));\nEND",
+
+	"CREATE TRIGGER \"rtree_%s_%s_update1\"\n"
+	    "AFTER UPDATE OF \"%s\" ON \"%s\"\n"
+	    "WHEN OLD.ROWID = NEW.ROWID AND "
+	    "(NEW.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n"
+	    "BEGIN\n"
+	    "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, "
+	    "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), "
+	    "ST_MaxY(NEW.\"%s\"));\nEND",
+
+	"CREATE TRIGGER \"rtree_%s_%s_update2\"\n"
+	    "AFTER UPDATE OF \"%s\" ON \"%s\"\n"
+	    "WHEN OLD.ROWID = NEW.ROWID AND "
+	    "(NEW.\"%s\" IS NULL OR ST_IsEmpty(NEW.\"%s\"))\n"
+	    "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\nEND",
+
+	"CREATE TRIGGER \"rtree_%s_%s_update3\"\n"
+	    "AFTER UPDATE OF \"%s\" ON \"%s\"\n"
+	    "WHEN OLD.ROWID != NEW.ROWID AND "
+	    "(NEW.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n"
+	    "BEGIN\n"
+	    "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\n"
+	    "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, "
+	    "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), "
+	    "ST_MaxY(NEW.\"%s\"));\nEND",
+
+	"CREATE TRIGGER \"rtree_%s_%s_update4\"\n"
+	    "AFTER UPDATE ON \"%s\"\n"
+	    "WHEN OLD.ROWID != NEW.ROWID AND "
+	    "(NEW.\"%s\" IS NULL OR ST_IsEmpty(NEW.\"%s\"))\n"
+	    "BEGIN\n"
+	    "DELETE FROM \"rtree_%s_%s\" WHERE id IN (OLD.ROWID, NEW.ROWID);\n"
+	    "END",
+
+	"CREATE TRIGGER \"rtree_%s_%s_delete\"\n"
+	    "AFTER DELETE ON \"%s\""
+	    "WHEN old.\"%s\" NOT NULL\n"
+	    "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\nEND",
+
+	NULL
+    };
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddSpatialIndex() error: argument 1 [table] is not of the String type",
+				-1);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddSpatialIndex() error: argument 2 [column] is not of the String type",
+				-1);
+	  return;
+      }
+    table = (const char *) sqlite3_value_text (argv[0]);
+    column = (const char *) sqlite3_value_text (argv[1]);
+    xtable = gaiaDoubleQuotedSql (table);
+    xcolumn = gaiaDoubleQuotedSql (column);
+    sqlite = sqlite3_context_db_handle (context);
+
+    for (i = 0; i < 6; i++)
+      {
+	  /* inserting the Triggers */
+	  if (i == 0)
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable,
+				   xcolumn, xcolumn, xtable, xcolumn, xcolumn,
+				   xcolumn, xcolumn, xcolumn);
+	  else if (i == 1)
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn,
+				   xtable, xcolumn, xcolumn, xtable, xcolumn,
+				   xcolumn, xcolumn, xcolumn, xcolumn, xcolumn);
+	  else if (i == 2)
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn,
+				   xtable, xcolumn, xcolumn, xtable, xcolumn);
+	  else if (i == 3)
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn,
+				   xtable, xcolumn, xcolumn, xtable, xcolumn,
+				   xtable, xcolumn, xcolumn, xcolumn, xcolumn,
+				   xcolumn);
+	  else if (i == 4)
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable,
+				   xcolumn, xcolumn, xtable, xcolumn);
+	  else
+	      sql_stmt =
+		  sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable,
+				   xcolumn, xtable, xcolumn);
+
+	  ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_stmt);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_result_error (context, errMsg, -1);
+		sqlite3_free (errMsg);
+		free (xtable);
+		free (xcolumn);
+		return;
+	    }
+      }
+
+/* creating the R*Tree Virtual Table */
+    sql_stmt = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"rtree_%s_%s\" "
+				"USING rtree(id, minx, maxx, miny, maxy)",
+				xtable, xcolumn);
+    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+    sqlite3_free (sql_stmt);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  free (xtable);
+	  free (xcolumn);
+	  return;
+      }
+    free (xtable);
+    free (xcolumn);
+
+/* registering the GPKG extensions */
+    sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions "
+				"(table_name, column_name, extension_name, definition, scope) "
+				"VALUES (Lower(%Q), Lower(%Q), 'gpkg_rtree_index', "
+				"'GeoPackage 1.0 Specification Annex L', 'write-only')",
+				table, column);
+    ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+    sqlite3_free (sql_stmt);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
+}
+#endif
diff --git a/src/geopackage/gpkg_add_tile_triggers.c b/src/geopackage/gpkg_add_tile_triggers.c
index c5fd30a..2e0d33b 100644
--- a/src/geopackage/gpkg_add_tile_triggers.c
+++ b/src/geopackage/gpkg_add_tile_triggers.c
@@ -43,8 +43,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #ifdef ENABLE_GEOPACKAGE
 GEOPACKAGE_DECLARE void
-fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc __attribute__ ((unused)),
-			  sqlite3_value ** argv)
+fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc
+			  __attribute__ ((unused)), sqlite3_value ** argv)
 {
 /* SQL function:
 / gpkgAddTileTriggers(table)
@@ -60,79 +60,84 @@ fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc __attribute__ ((un
     int ret = 0;
     int i = 0;
     /* Note: the code below relies on there being twelve (or less) varargs, all of which are the table name */
-    const char* trigger_stmts[] = {
-	"CREATE TRIGGER \"%s_zoom_insert\"\n" 
-	"BEFORE INSERT ON \"%s\"\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: zoom_level not specified for table in tile_matrix_metadata')\n"
-	"WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM tile_matrix_metadata WHERE t_table_name = \"%s\"));\n"
-	"END",
-	
+    const char *trigger_stmts[] = {
+	"CREATE TRIGGER \"%s_zoom_insert\"\n"
+	    "BEFORE INSERT ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: zoom_level not specified for table in gpkg_tile_matrix')\n"
+	    "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM gpkg_tile_matrix WHERE table_name = \"%s\"));\n"
+	    "END",
+
 	"CREATE TRIGGER \"%s_zoom_update\"\n"
-	"BEFORE UPDATE OF zoom_level ON \"%s\"\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: zoom_level not specified for table in tile_matrix_metadata')\n"
-	"WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM tile_matrix_metadata WHERE t_table_name = \"%s\"));\n"
-	"END",
+	    "BEFORE UPDATE OF zoom_level ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: zoom_level not specified for table in gpkg_tile_matrix')\n"
+	    "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM gpkg_tile_matrix WHERE table_name = \"%s\"));\n"
+	    "END",
 
 	"CREATE TRIGGER \"%s_tile_column_insert\"\n"
-	"BEFORE INSERT ON \"%s\"\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column cannot be < 0')\n"
-	"WHERE (NEW.tile_column < 0) ;\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata')\n"
-	"WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
-	"END",
+	    "BEFORE INSERT ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column cannot be < 0')\n"
+	    "WHERE (NEW.tile_column < 0) ;\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix')\n"
+	    "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
+	    "END",
 
 	"CREATE TRIGGER \"%s_tile_column_update\"\n"
-	"BEFORE UPDATE OF tile_column ON \"%s\"\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column cannot be < 0')\n"
-	"WHERE (NEW.tile_column < 0) ;\n"
-	"SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata')\n"
-	"WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
-	"END",
-	
+	    "BEFORE UPDATE OF tile_column ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column cannot be < 0')\n"
+	    "WHERE (NEW.tile_column < 0) ;\n"
+	    "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix')\n"
+	    "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
+	    "END",
+
 	"CREATE TRIGGER \"%s_tile_row_insert\"\n"
-	"BEFORE INSERT ON \"%s\"\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row cannot be < 0')\n"
-	"WHERE (NEW.tile_row < 0) ;\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata')\n"
-	"WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
-	"END",
-	
+	    "BEFORE INSERT ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row cannot be < 0')\n"
+	    "WHERE (NEW.tile_row < 0) ;\n"
+	    "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix')\n"
+	    "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
+	    "END",
+
 	"CREATE TRIGGER \"%s_tile_row_update\"\n"
-	"BEFORE UPDATE OF tile_row ON \"%s\"\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row cannot be < 0')\n"
-	"WHERE (NEW.tile_row < 0) ;\n"
-	"SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata')\n"
-	"WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM tile_matrix_metadata WHERE t_table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
-	"END",
+	    "BEFORE UPDATE OF tile_row ON \"%s\"\n"
+	    "FOR EACH ROW BEGIN\n"
+	    "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row cannot be < 0')\n"
+	    "WHERE (NEW.tile_row < 0) ;\n"
+	    "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix')\n"
+	    "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n"
+	    "END",
 
 	NULL
     };
-    
+
     if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgAddTileTriggers() error: argument 1 [table] is not of the String type",
+				-1);
+	  return;
+      }
     table = sqlite3_value_text (argv[0]);
 
     for (i = 0; trigger_stmts[i] != NULL; ++i)
-    {
-	sql_stmt = sqlite3_mprintf(trigger_stmts[i], table, table, table, table, table, table, table, table, table, table, table, table);    
-	sqlite = sqlite3_context_db_handle (context);
-	ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
-	sqlite3_free(sql_stmt);
-	if (ret != SQLITE_OK)
-	{
-	    sqlite3_result_error(context, errMsg, -1);
-	    sqlite3_free(errMsg);
-	    return;
-	}
-    }    
+      {
+	  sql_stmt =
+	      sqlite3_mprintf (trigger_stmts[i], table, table, table, table,
+			       table, table, table, table, table, table, table,
+			       table);
+	  sqlite = sqlite3_context_db_handle (context);
+	  ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_stmt);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_result_error (context, errMsg, -1);
+		sqlite3_free (errMsg);
+		return;
+	    }
+      }
 }
 #endif
diff --git a/src/geopackage/gpkg_get_normal_row.c b/src/geopackage/gpkg_get_normal_row.c
index 8b9968d..73da7b7 100644
--- a/src/geopackage/gpkg_get_normal_row.c
+++ b/src/geopackage/gpkg_get_normal_row.c
@@ -69,65 +69,82 @@ fnct_gpkgGetNormalRow (sqlite3_context * context, int argc UNUSED,
     int rows = 0;
     int columns = 0;
     int ret = 0;
-    
+
     if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type",
+				-1);
+	  return;
+      }
     table = sqlite3_value_text (argv[0]);
-    
+
     if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type",
+				-1);
+	  return;
+      }
     zoom_level = sqlite3_value_int (argv[1]);
 
     if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type",
+				-1);
+	  return;
+      }
     inverted_row_number = sqlite3_value_int (argv[2]);
 
-    sql_stmt = sqlite3_mprintf("SELECT matrix_height FROM tile_matrix_metadata WHERE t_table_name=\"%q\" AND zoom_level=%i", table, zoom_level);
+    sql_stmt =
+	sqlite3_mprintf
+	("SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name=\"%q\" AND zoom_level=%i",
+	 table, zoom_level);
 
     sqlite = sqlite3_context_db_handle (context);
-    ret = sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, &errMsg);
-    sqlite3_free(sql_stmt);
+    ret =
+	sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns,
+			   &errMsg);
+    sqlite3_free (sql_stmt);
     if (ret != SQLITE_OK)
-    {
-	sqlite3_result_error (context, errMsg, -1);
-	sqlite3_free (errMsg);
-	return;
-    }
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
     if (rows != 1)
-    {
-	sqlite3_result_error (context, "gpkgGetNormalRow: tile table or zoom level not found", -1);
-	sqlite3_free_table(results);
-	sqlite3_free (errMsg);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalRow: tile table or zoom level not found",
+				-1);
+	  sqlite3_free_table (results);
+	  sqlite3_free (errMsg);
+	  return;
+      }
     errno = 0;
-    matrix_height = strtol(results[1 * columns + 0], &endptr, 10);
-    if ((endptr == results[1 * columns + 0]) 
+    matrix_height = strtol (results[1 * columns + 0], &endptr, 10);
+    if ((endptr == results[1 * columns + 0])
 	|| (matrix_height < 0)
 	|| (errno == ERANGE && matrix_height == INT_MAX)
 	|| (errno != 0 && matrix_height == 0))
-    {
-	sqlite3_free_table (results);
-	sqlite3_result_error (context, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)", -1);
-	return;
-    }
+      {
+	  sqlite3_free_table (results);
+	  sqlite3_result_error (context,
+				"gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)",
+				-1);
+	  return;
+      }
     sqlite3_free_table (results);
     if ((inverted_row_number >= matrix_height) || (inverted_row_number < 0))
-    {
-	sqlite3_result_error (context, "gpkgGetNormalRow: row number outside of matrix height range", -1);
-	return;
-    }
-    
-    normal_row_number = matrix_height - inverted_row_number -1;
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalRow: row number outside of matrix height range",
+				-1);
+	  return;
+      }
+
+    normal_row_number = matrix_height - inverted_row_number - 1;
     sqlite3_result_int (context, normal_row_number);
 }
 #endif
diff --git a/src/geopackage/gpkg_get_normal_zoom.c b/src/geopackage/gpkg_get_normal_zoom.c
index f1484f3..1a88b78 100644
--- a/src/geopackage/gpkg_get_normal_zoom.c
+++ b/src/geopackage/gpkg_get_normal_zoom.c
@@ -60,7 +60,7 @@ fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc UNUSED,
     int inverted_zoom_level;
     long max_zoom_level;
     long normal_zoom_level;
-    char * sql_stmt = NULL;
+    char *sql_stmt = NULL;
     sqlite3 *sqlite = NULL;
     char *errMsg = NULL;
     char **results;
@@ -68,58 +68,73 @@ fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc UNUSED,
     int rows = 0;
     int columns = 0;
     int ret = 0;
-    
+
     if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type",
+				-1);
+	  return;
+      }
     table = sqlite3_value_text (argv[0]);
-    
+
     if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type", -1);
-	return;
-    }
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type",
+				-1);
+	  return;
+      }
     inverted_zoom_level = sqlite3_value_int (argv[1]);
 
-    sql_stmt = sqlite3_mprintf("SELECT MAX(zoom_level) FROM tile_matrix_metadata WHERE t_table_name=\"%q\"", table);
+    sql_stmt =
+	sqlite3_mprintf
+	("SELECT MAX(zoom_level) FROM gpkg_tile_matrix WHERE table_name=\"%q\"",
+	 table);
 
     sqlite = sqlite3_context_db_handle (context);
-    ret = sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, &errMsg);
-    sqlite3_free(sql_stmt);
+    ret =
+	sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns,
+			   &errMsg);
+    sqlite3_free (sql_stmt);
     if (ret != SQLITE_OK)
-    {
-	sqlite3_result_error (context, errMsg, -1);
-	sqlite3_free (errMsg);
-	return;
-    }
+      {
+	  sqlite3_result_error (context, errMsg, -1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
     if ((rows != 1) || (results[1 * columns + 0] == NULL))
-    {
-	sqlite3_free_table(results);
-	sqlite3_result_error (context, "gpkgGetNormalZoom: tile table not found in tile_matrix_metadata", -1);
-	sqlite3_free (errMsg);
-	return;
-    }
+      {
+	  sqlite3_free_table (results);
+	  sqlite3_result_error (context,
+				"gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix",
+				-1);
+	  sqlite3_free (errMsg);
+	  return;
+      }
     errno = 0;
-    max_zoom_level = strtol(results[1 * columns + 0], &endptr, 10);
-    if ((endptr == results[1 * columns + 0]) 
+    max_zoom_level = strtol (results[1 * columns + 0], &endptr, 10);
+    if ((endptr == results[1 * columns + 0])
 	|| (max_zoom_level < 0)
 	|| (errno == ERANGE && max_zoom_level == LONG_MAX)
 	|| (errno != 0 && max_zoom_level == 0))
-    {
-	sqlite3_free_table (results);
-	sqlite3_result_error (context, "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)", -1);
-	return;
-    }
+      {
+	  sqlite3_free_table (results);
+	  sqlite3_result_error (context,
+				"gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)",
+				-1);
+	  return;
+      }
     sqlite3_free_table (results);
     if ((inverted_zoom_level > max_zoom_level) || (inverted_zoom_level < 0))
-    {
-	sqlite3_result_error (context, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels", -1);
-	return;
-    }
-    
+      {
+	  sqlite3_result_error (context,
+				"gpkgGetNormalZoom: input zoom level number outside of valid zoom levels",
+				-1);
+	  return;
+      }
+
     normal_zoom_level = max_zoom_level - inverted_zoom_level;
     sqlite3_result_int (context, normal_zoom_level);
 }
-#endif
\ No newline at end of file
+#endif
diff --git a/src/geopackage/gpkg_point_to_tile.c b/src/geopackage/gpkg_point_to_tile.c
deleted file mode 100644
index a539435..0000000
--- a/src/geopackage/gpkg_point_to_tile.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
-
-    GeoPackage extensions for SpatiaLite / SQLite
- 
-Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
-The contents of this file are subject to the Mozilla Public License Version
-1.1 (the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage Extensions
-
-The Initial Developer of the Original Code is Brad Hards (bradh at frogmouth.net)
- 
-Portions created by the Initial Developer are Copyright (C) 2012
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include "spatialite/geopackage.h"
-#include "config.h"
-#include "geopackage_internal.h"
-
-#ifdef ENABLE_GEOPACKAGE
-GEOPACKAGE_DECLARE void
-fnct_gpkgPointToTile (sqlite3_context * context, int argc UNUSED,
-			sqlite3_value ** argv)
-{
-/* SQL function:
-/ gpkgPointToTile (table, srid, x, y, zoom)
-/
-/ Returns tile from tile matrix for specified srid, point and zoom level
-*/
-    const unsigned char *table;
-    int srid = 0;
-    int target_srid = -1;
-    double x_coord, y_coord;
-    int int_value;
-    int zoom;
-    char *sql_stmt = NULL;
-    sqlite3 *sqlite = NULL;
-    sqlite3_stmt *stmt;
-    int ret;
-    
-    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: argument 1 [table] is not of the String type", -1);
-	return;
-    }
-    table = sqlite3_value_text (argv[0]);
-    
-    if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: argument 2 [srid] is not of the integer type", -1);
-	return;
-    }
-    srid = sqlite3_value_int (argv[1]);
-    if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
-    {
-	x_coord = sqlite3_value_double (argv[2]);
-    }
-    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
-    {
-	int_value = sqlite3_value_int (argv[2]);
-	x_coord = int_value;
-    }
-    else
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: argument 3 [x coordinate] is not of a numerical type", -1);
-	return;
-    }
-
-    if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT)
-    {
-	y_coord = sqlite3_value_double (argv[3]);
-    }
-    else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
-    {
-	int_value = sqlite3_value_int (argv[3]);
-	y_coord = int_value;
-    }
-    else
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: argument 4 [y coordinate] is not of a numerical type", -1);
-	return;
-    }
-    
-    if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER)
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: argument 5 [zoom level] is not of the integer type", -1);
-	return;
-    }
-    zoom = sqlite3_value_int (argv[4]);
-    
-    /* project into right coordinate basis if the input isn't already there */
-    /* Get the target table SRID */
-    sql_stmt = sqlite3_mprintf("SELECT srid FROM raster_columns WHERE r_table_name=%Q AND r_raster_column='tile_data'", table);
-
-    sqlite = sqlite3_context_db_handle (context);
-    ret = sqlite3_prepare_v2 (sqlite, sql_stmt, strlen(sql_stmt), &stmt, NULL);
-    sqlite3_free(sql_stmt);
-    if (ret != SQLITE_OK)
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: failed to prepare SQL SRID select statement", -1);
-        return;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	sqlite3_finalize (stmt);
-	sqlite3_result_error(context, "gpkgPointToTile() error: Could not find SRID for specified table", -1);
-        return;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER)
-    {
-	sqlite3_finalize (stmt);
-	sqlite3_result_error(context, "gpkgPointToTile() error: SRID for table is not an integer. Corrupt GeoPackage?", -1);
-	return;
-    }
-    target_srid = sqlite3_column_int(stmt, 0);
-    sqlite3_finalize (stmt);
-    
-    if (srid != target_srid)
-    {
-	/* project input coordinates */
-	sql_stmt = sqlite3_mprintf("SELECT ST_X(projected),ST_Y(projected) FROM (SELECT Transform(MakePoint(%f, %f, %i), %i) AS projected)",
-				   x_coord, y_coord, srid, target_srid);
-
-	sqlite = sqlite3_context_db_handle (context);
-	ret = sqlite3_prepare_v2 (sqlite, sql_stmt, strlen(sql_stmt), &stmt, NULL);
-	sqlite3_free(sql_stmt);
-	if (ret != SQLITE_OK)
-	{
-	    sqlite3_result_error(context, "gpkgPointToTile() error: failed to prepare SQL Transform statement", -1);
-	    return;
-	}
-	ret = sqlite3_step (stmt);
-	if (ret == SQLITE_ROW)
-	{
-	    if ((sqlite3_column_type (stmt, 0) == SQLITE_FLOAT) && (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT))
-	    {
-		x_coord = sqlite3_column_double(stmt, 0);
-		y_coord = sqlite3_column_double(stmt, 1);
-	    }
-	}
-	ret = sqlite3_finalize (stmt);
-    }
-    
-    /* now we can get the tile blob */
-    sql_stmt = sqlite3_mprintf("SELECT tile_data FROM \"%q\",\"%s_rt_metadata\" WHERE %q.id=%s_rt_metadata.id AND zoom_level=%i AND min_x <= %g AND max_x >=%g AND min_y <= %g AND max_y >= %g",
-			table, table, table, table, zoom, x_coord, x_coord, y_coord, y_coord);
-
-    sqlite = sqlite3_context_db_handle (context);
-    ret = sqlite3_prepare_v2 (sqlite, sql_stmt, strlen(sql_stmt), &stmt, NULL);
-    sqlite3_free(sql_stmt);
-    if (ret != SQLITE_OK)
-    {
-	sqlite3_result_error(context, "gpkgPointToTile() error: failed to prepare SQL statement", -1);
-        return;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret == SQLITE_ROW)
-    {
-	if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB)
-	{
-	    sqlite3_result_value (context, sqlite3_column_value(stmt, 0));
-	}
-    }
-    ret = sqlite3_finalize (stmt);
-}
-#endif
diff --git a/src/headers/Makefile.in b/src/headers/Makefile.in
index cc80111..2a43e50 100644
--- a/src/headers/Makefile.in
+++ b/src/headers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,8 +79,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/headers
-DIST_COMMON = $(nobase_include_HEADERS) $(noinst_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(nobase_include_HEADERS) $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -64,6 +92,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -100,11 +140,29 @@ am__uninstall_files_from_dir = { \
   }
 am__installdirs = "$(DESTDIR)$(includedir)"
 HEADERS = $(nobase_include_HEADERS) $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -315,26 +373,15 @@ uninstall-nobase_includeHEADERS:
 	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
 	dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -346,15 +393,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -363,9 +406,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -516,18 +560,19 @@ uninstall-am: uninstall-nobase_includeHEADERS
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool cscopelist ctags distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-nobase_includeHEADERS \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-nobase_includeHEADERS
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool cscopelist-am ctags ctags-am distclean \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man \
+	install-nobase_includeHEADERS install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-nobase_includeHEADERS
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/headers/spatialite.h b/src/headers/spatialite.h
index 7c79855..2ace84e 100644
--- a/src/headers/spatialite.h
+++ b/src/headers/spatialite.h
@@ -72,12 +72,45 @@ extern "C"
 
 #include <spatialite/gaiageo.h>
 
+#ifdef LOADABLE_EXTENSION
+    SPATIALITE_DECLARE int
+	sqlite3_spatialite_init (sqlite3 * db, char **pzErrMsg,
+				 const sqlite3_api_routines * pApi);
+#endif
+
+/**
+ Initializes the library
+
+ \note you are always expected to explicitly call this function
+ before attempting to call any SpatiaLite own function.
+ */
+    SPATIALITE_DECLARE void spatialite_initialize (void);
+
+/**
+ Finalizes the library
+
+ \note you are always expected to explicitly call this function
+ immediately before exiting the main application.\n
+ This function will free any memory allocation and will release
+ any system resource internally used by the library.\n 
+ */
+    SPATIALITE_DECLARE void spatialite_shutdown (void);
+
 /**
  Return the current library version.
+
+ \return the version string.
  */
     SPATIALITE_DECLARE const char *spatialite_version (void);
 
 /**
+ Return the target CPU name.
+
+ \return the target CPU string.
+ */
+    SPATIALITE_DECLARE const char *spatialite_target_cpu (void);
+
+/**
  Initializes the internal memory block supporting each connection
 
  \sa spatialite_init_ex, spatialite_cleanup_ex
@@ -86,7 +119,7 @@ extern "C"
     SPATIALITE_DECLARE void *spatialite_alloc_connection (void);
 
 /**
- Initializes the library. 
+ Initializes a SpatiaLite connection. 
 
  This function is now \b DEPRECATED because is not reentrant (not thread safe);
  use spatialite_init_ex() for all new development.
@@ -102,7 +135,7 @@ extern "C"
     SPATIALITE_DECLARE void spatialite_init (int verbose);
 
 /**
- Initializes the library. 
+ Initializes a SpatiaLite connection. 
 
  \param db_handle handle to the current SQLite connection
  \param ptr a memory pointer returned by spatialite_alloc_connection()
@@ -114,8 +147,8 @@ extern "C"
  any other SpatiaLite's call.
 
  */
-    SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle, void *ptr,
-						int verbose);
+    SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle,
+						const void *ptr, int verbose);
 
 /**
  Initializes the GEOS library. 
@@ -126,7 +159,7 @@ extern "C"
     SPATIALITE_DECLARE void spatialite_init_geos (void);
 
 /**
- Cleanup spatialite 
+ Cleanup a SpatiaLite connection
 
  This function is now \b DEPRECATED; use spatialite_cleanup_ex() for all new development.
 
@@ -138,7 +171,7 @@ extern "C"
     SPATIALITE_DECLARE void spatialite_cleanup (void);
 
 /**
- Cleanup spatialite
+ Cleanup a SpatiaLite connection
 
  This function performs general cleanup, essentially undoing the effect
  of spatialite_init_ex().
@@ -148,7 +181,7 @@ extern "C"
 
  \sa spatialite_init_ex, spatialite_alloc_connection
 */
-    SPATIALITE_DECLARE void spatialite_cleanup_ex (void *ptr);
+    SPATIALITE_DECLARE void spatialite_cleanup_ex (const void *ptr);
 
 /**
  Dumps a full geometry-table into an external Shapefile
@@ -438,7 +471,7 @@ extern "C"
  \param sqlite handle to current DB connection
  \param table name of the table to be cleaned
 
- \sa check_duplicated_rows
+ \sa check_duplicated_rows, remove_duplicated_rows_ex
 
  \note when two (or more) duplicated rows exist, only the first occurence
  will be preserved, then deleting any further occurrence.
@@ -447,6 +480,23 @@ extern "C"
 						    char *table);
 
 /**
+ Remove duplicated rows from a table
+
+ \param sqlite handle to current DB connection
+ \param table name of the table to be cleaned
+ \param removed on successful completion will contain the total
+ count of removed duplicate rows
+
+ \sa check_duplicated_rows, remove_duplicated_rows
+
+ \note when two (or more) duplicated rows exist, only the first occurence
+ will be preserved, then deleting any further occurrence.
+ */
+    SPATIALITE_DECLARE void remove_duplicated_rows_ex (sqlite3 * sqlite,
+						       char *table,
+						       int *removed);
+
+/**
  Creates a derived table surely containing elementary Geometries
 
  \param sqlite handle to current DB connection
@@ -512,6 +562,8 @@ extern "C"
    - if both table and column are not NULL, then only the
      given entry will be processed.
 
+ \sa gaiaStatisticsInvalidate, gaiaGetLayerExtent, gaiaGetVectorLayersList
+
  \return 0 on failure, the total count of processed entries on success
  */
     SPATIALITE_DECLARE int update_layer_statistics (sqlite3 * sqlite,
@@ -519,6 +571,25 @@ extern "C"
 						    const char *column);
 
 /**
+ Immediately and unconditionally invalidates the already existing Statistics
+
+ \param handle SQLite handle to current DB connection.
+ \param table VectorLayer Table (or View, or VirtualShape).
+ \param geometry Geometry Column name.
+ 
+ \return 0 on success, any other value on success
+
+ \sa update_layer_statistics, gaiaGetLayerExtent, gaiaGetVectorLayersList
+
+ \note if the table arg is NULL all Statistics for any VectorLayer defined within 
+ the DB will be invalidated; otherwise only a single Layer will be affectedd (if existing).
+ \n By defining the geometry arg (not NULL) you can further restrict your selection.
+ */
+    SPATIALITE_DECLARE int gaiaStatisticsInvalidate (sqlite3 * handle,
+						     const char *table,
+						     const char *geometry);
+
+/**
  Queries the Metadata tables returning the Layer Full Extent
 
  \param handle SQLite handle to current DB connection.
@@ -529,6 +600,8 @@ extern "C"
  
  \return the pointer to the newly created Geometry (Envelope): NULL on failure
 
+ \sa update_layer_statistic, gaiaStatisticsInvalidate, gaiaGetVectorLayersList
+
  \note you are responsible to destroy (before or after) any allocated
  Geometry returned by gaiaGetLayerExtent().
  \n The geometry arg is optional when the table simply has a single Geometry Column,
@@ -551,20 +624,21 @@ extern "C"
  \param handle SQLite handle to current DB connection.
  \param table VectorLayer Table (or View, or VirtualShape).
  \param geometry Geometry Column name.
- \param mode one of GAIA_VECTORS_LIST_LOOSE or GAIA_VECTORS_LIST_STRICT.
+ \param mode one of GAIA_VECTORS_LIST_OPTIMISTIC or GAIA_VECTORS_LIST_PESSIMISTIC.
  
  \return the pointer to the newly created VectorLayersList object: NULL on failure
 
- \sa gaiaFreeVectorLayersList
+ \sa gaiaFreeVectorLayersList, update_layer_statistics, gaiaStatisticsInvalidate, 
+ gaiaGetLayerExtent, gaiaGetVectorLayersList
 
  \note you are responsible to destroy (before or after) any allocated
  VectorLayersList returned by gaiaGetVectorLayersList().
  \n If the table arg is NULL all VectorLayers defined within the DB will be reported;
   otherwise only a single Layer will be reported (if existing).
  \n By defining the geometry arg (not NULL) you can further restrict the returned report.
- \n When the mode arg is set to GAIA_VECTORS_LIST_FAST (default) then the returned infos
+ \n When the mode arg is set to GAIA_VECTORS_LIST_OPTIMISTIC (default) then the returned infos
   will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate).
- \n If the mode arg is set to GAIA_VECTORS_LIST_PRECISE a preliminary attempt to update the
+ \n If the mode arg is set to GAIA_VECTORS_LIST_PESSIMISTIC a preliminary attempt to update the
   statistic tables will be always performed (probably slower, but surely accurate).
  */
     SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3
@@ -580,6 +654,54 @@ extern "C"
 									mode);
 
 /**
+ Creates (or re-creates) the "splite_metacatalog" and 
+ "splite_metacalog_statistics" tables.
+
+ \param handle SQLite handle to current DB connection.
+ 
+ \return 0 (FALSE) on failure, any other value (TRUE) on success
+
+ \sa gaiaUpdateMetaCatalogStatistics, gaiaUpdateMetaCatalogStatisticsFromMaster
+ */
+    SPATIALITE_DECLARE int gaiaCreateMetaCatalogTables (sqlite3 * handle);
+
+/**
+ Updates the "splite_metacatalog_statistics" table.
+
+ \param handle SQLite handle to current DB connection.
+ \param table name of the table to be processed.
+ \param column name of the column to be processed.
+ 
+ \return 0 (FALSE) on failure, any other value (TRUE) on success
+
+ \sa gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatisticsFromMaster
+ */
+    SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatistics (sqlite3 * handle,
+							    const char *table,
+							    const char *column);
+
+/**
+ Updates the "splite_metacatalog_statistics" table (using a Master Table).
+
+ \param handle SQLite handle to current DB connection.
+ \param master_table name of the master-table controlling the whole process.
+ \param table_name name of the column into the master-table containing table-names.
+ \param column_name name of the column into the master-table containing column-names.
+ 
+ \return 0 (FALSE) on failure, any other value (TRUE) on success
+
+ \sa gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatistics
+ */
+    SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 *
+								      handle,
+								      const char
+								      *master_table,
+								      const char
+								      *table_name,
+								      const char
+								      *column_name);
+
+/**
  Destroys a VectorLayersList object
 
  \param ptr pointer to the VectorLayersList object to be destroyed
@@ -601,10 +723,36 @@ extern "C"
  selected table will be removed from the Metadata tables.
 
  \return 0 on failure, any other value on success
+
+ \sa gaiaDropTableEx
+
+ \note this one simply is a convenience method alway defaulting to
+ gaiaDropTableEx(sqlite, "main", table);
  */
     SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table);
 
 /**
+ Drops a layer-table, removing any related dependency
+
+ \param sqlite handle to current DB connection
+ \param prefix schema prefix identifying the target DB\n
+ "main" always identifies the main DB (primary, not Attached).
+ \param table name of the table to be removed
+
+ \note this function will drop a SpatialTable, SpatialView or VirtualShape being
+ properly registered within the Metadata tables.
+ \n an eventual Spatial Index will be dropped as well, and any row referring the
+ selected table will be removed from the Metadata tables.
+
+ \return 0 on failure, any other value on success
+
+ \sa gaiaDropTable
+ */
+    SPATIALITE_DECLARE int gaiaDropTableEx (sqlite3 * sqlite,
+					    const char *prefix,
+					    const char *table);
+
+/**
  Checks a Geometry Column for validity
 
  \param sqlite handle to current DB connection
@@ -618,10 +766,14 @@ extern "C"
  \param err_msg if this variable is not NULL and the return status is ZERO
  (failure), an appropriate error message will be returned
 
+ \sa check_geometry_column_r, check_all_geometry_columns,
+ sanitize_geometry_column, sanitize_all_geometry_columns
+
  \note this function will check a Geometry Column (layer) for validity;
  a HTML report will be produced.
  \n an eventual error message returned via err_msg requires to be deallocated
- by invoking free()
+ by invoking free()\n
+ not reentrant and thread unsafe.
 
  \return 0 on failure, any other value on success
  */
@@ -633,6 +785,41 @@ extern "C"
 						  char **err_msg);
 
 /**
+ Checks a Geometry Column for validity
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param sqlite handle to current DB connection
+ \param table name of the table 
+ \param geometry name of the column to be checked
+ \param report_path pathname of the report-file
+ \param n_rows if this variable is not NULL on successful completion will
+ contain the total number of rows found into the checkeck table
+ \param n_invalids if this variable is not NULL on successful completion will
+ contain the total number of invalid Geometries found into the checkeck table
+ \param err_msg if this variable is not NULL and the return status is ZERO
+ (failure), an appropriate error message will be returned
+
+ \sa check_geometry_column, check_all_geometry_columns,
+ sanitize_geometry_column, sanitize_all_geometry_columns
+
+ \note this function will check a Geometry Column (layer) for validity;
+ a HTML report will be produced.
+ \n an eventual error message returned via err_msg requires to be deallocated
+ by invoking free()\n
+ reentrant and thread-safe.
+
+ \return 0 on failure, any other value on success
+ */
+    SPATIALITE_DECLARE int check_geometry_column_r (const void *p_cache,
+						    sqlite3 * sqlite,
+						    const char *table,
+						    const char *geom,
+						    const char *report_path,
+						    int *n_rows,
+						    int *n_invalids,
+						    char **err_msg);
+
+/**
  Checks all Geometry Columns for validity
 
  \param sqlite handle to current DB connection
@@ -642,10 +829,14 @@ extern "C"
  \param err_msg if this variable is not NULL and the return status is ZERO
  (failure), an appropriate error message will be returned
 
+ \sa check_all_geometry_columns_r, check_geometry_column,
+ sanitize_geometry_column, sanitize_all_geometry_columns
+
  \note this function will check all Geometry Columns (vector layers) for validity;
  a HTML report will be produced.
  \n an eventual error message returned via err_msg requires to be deallocated
- by invoking free()
+ by invoking free()\n
+ not reentrant and thread unsafe.
 
  \return 0 on failure, any other value on success
  */
@@ -655,6 +846,34 @@ extern "C"
 						       char **err_msg);
 
 /**
+ Checks all Geometry Columns for validity
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param sqlite handle to current DB connection
+ \param output_dir pathname of the directory to be created for report-files
+ \param n_invalids if this variable is not NULL on successful completion will
+ contain the total number of invalid Geometries found
+ \param err_msg if this variable is not NULL and the return status is ZERO
+ (failure), an appropriate error message will be returned
+
+ \sa check_all_geometry_columns, check_geometry_column,
+ sanitize_geometry_column, sanitize_all_geometry_columns
+
+ \note this function will check all Geometry Columns (vector layers) for validity;
+ a HTML report will be produced.
+ \n an eventual error message returned via err_msg requires to be deallocated
+ by invoking free()\n
+ reentrant and thread-safe.
+
+ \return 0 on failure, any other value on success
+ */
+    SPATIALITE_DECLARE int check_all_geometry_columns_r (const void *p_cache,
+							 sqlite3 * sqlite,
+							 const char *output_dir,
+							 int *n_invalids,
+							 char **err_msg);
+
+/**
  Sanitizes a Geometry Column making all invalid geometries to be valid
 
  \param sqlite handle to current DB connection
@@ -673,13 +892,17 @@ extern "C"
  \param err_msg if this variable is not NULL and the return status is ZERO
  (failure), an appropriate error message will be returned
 
+ \sa sanitize_geometry_column_r, check_geometry_column,
+ check_all_geometry_columns, sanitize_all_geometry_columns
+
  \note this function will attempt to make valid all invalid geometries
  found within a Geometry Column (layer); a temporary table is required.
  \n if the process has full success the temprary table will be deleted;
  otherwise it will be preserved for further inspection.
  a HTML report will be produced as well.
  \n an eventual error message returned via err_msg requires to be deallocated
- by invoking free()
+ by invoking free()\n
+ not reentrant and thread unsafe.
 
  \return 0 on failure, any other value on success
  */
@@ -695,6 +918,52 @@ extern "C"
 						     char **err_msg);
 
 /**
+ Sanitizes a Geometry Column making all invalid geometries to be valid
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param sqlite handle to current DB connection
+ \param table name of the table 
+ \param geometry name of the column to be checked
+ \param tmp_table name of the temporary table
+ \param report_path pathname of the report-file
+ \param n_invalids if this variable is not NULL on successful completion will
+ contain the total number of invalid Geometries found into the sanitize table
+ \param n_repaired if this variable is not NULL on successful completion will
+ contain the total number of repaired Geometries
+ \param n_discarded if this variable is not NULL on successful completion will
+ contain the total number of repaired Geometries (by discarding fragments)
+ \param n_failures if this variable is not NULL on successful completion will
+ contain the total number of repair failures (i.e. Geometries beyond possible repair)
+ \param err_msg if this variable is not NULL and the return status is ZERO
+ (failure), an appropriate error message will be returned
+
+ \sa sanitize_geometry_column, check_geometry_column,
+ check_all_geometry_columns, sanitize_all_geometry_columns
+
+ \note this function will attempt to make valid all invalid geometries
+ found within a Geometry Column (layer); a temporary table is required.
+ \n if the process has full success the temprary table will be deleted;
+ otherwise it will be preserved for further inspection.
+ a HTML report will be produced as well.
+ \n an eventual error message returned via err_msg requires to be deallocated
+ by invoking free()\n
+ reentrant and thread-safe.
+
+ \return 0 on failure, any other value on success
+ */
+    SPATIALITE_DECLARE int sanitize_geometry_column_r (const void *p_cache,
+						       sqlite3 * sqlite,
+						       const char *table,
+						       const char *geom,
+						       const char *tmp_table,
+						       const char *report_path,
+						       int *n_invalids,
+						       int *n_repaired,
+						       int *n_discarded,
+						       int *n_failures,
+						       char **err_msg);
+
+/**
  Sanitizes all Geometry Columns making all invalid geometries to be valid
 
  \param sqlite handle to current DB connection
@@ -705,6 +974,9 @@ extern "C"
  \param err_msg if this variable is not NULL and the return status is ZERO
  (failure), an appropriate error message will be returned
 
+ \sa sanitize_all_geometry_columns_r, check_geometry_column,
+ check_all_geometry_columns, sanitize_geometry_column
+
  \note this function will attempt to make valid all invalid geometries
  found within all Geometry Columns (vector layers); a temporary table is 
  required so to support each input table.
@@ -712,7 +984,8 @@ extern "C"
  otherwise it will be preserved for further inspection.
  a HTML report will be produced as well.
  \n an eventual error message returned via err_msg requires to be deallocated
- by invoking free()
+ by invoking free()\n
+ not reentrant and thread unsafe.
 
  \return 0 on failure, any other value on success
  */
@@ -724,6 +997,51 @@ extern "C"
 							  int *not_repaired,
 							  char **err_msg);
 
+/**
+ Sanitizes all Geometry Columns making all invalid geometries to be valid
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param sqlite handle to current DB connection
+ \param tmp_prefix name-prefix for temporary tables
+ \param output_dir pathname of the directory to be created for report-files
+ \param not_repaired if this variable is not NULL on successful completion will
+ contain the total count of repair failures (i.e. Geometries beyond possible repair)
+ \param err_msg if this variable is not NULL and the return status is ZERO
+ (failure), an appropriate error message will be returned
+
+ \sa sanitize_all_geometry_columns, check_geometry_column,
+ check_all_geometry_columns, sanitize_geometry_column
+
+ \note this function will attempt to make valid all invalid geometries
+ found within all Geometry Columns (vector layers); a temporary table is 
+ required so to support each input table.
+ \n if the process has full success the temprary table will be deleted;
+ otherwise it will be preserved for further inspection.
+ a HTML report will be produced as well.
+ \n an eventual error message returned via err_msg requires to be deallocated
+ by invoking free()\n
+ reentrant and thread-safe.
+
+ \return 0 on failure, any other value on success
+ */
+    SPATIALITE_DECLARE int sanitize_all_geometry_columns_r (const void *p_cache,
+							    sqlite3 * sqlite,
+							    const char
+							    *tmp_prefix,
+							    const char
+							    *output_dir,
+							    int *not_repaired,
+							    char **err_msg);
+
+    SPATIALITE_DECLARE int gaiaGPKG2Spatialite (sqlite3 * handle_in,
+						const char *gpkg_in_path,
+						sqlite3 * handle_out,
+						const char *splite_out_path);
+    SPATIALITE_DECLARE int gaiaSpatialite2GPKG (sqlite3 * handle_in,
+						const char *splite_in_path,
+						sqlite3 * handle_out,
+						const char *gpkg_out_path);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/headers/spatialite/gaiaaux.h b/src/headers/spatialite/gaiaaux.h
index bc01d5e..45c126b 100644
--- a/src/headers/spatialite/gaiaaux.h
+++ b/src/headers/spatialite/gaiaaux.h
@@ -360,6 +360,44 @@ extern "C"
  */
     GAIAAUX_DECLARE char *gaiaFinalizeMD5Checksum (void *md5);
 
+/**
+ Return longitude and latitude angles from a DMS string
+
+ \param dms a text string representing a valid DMS (Degrees/Minutes/Seconds)
+ expression.
+ \param longitude on completion this variable will contain the longitude angle
+ expressed in Decimal Degrees.
+ \param latitude on completion this variable will contain the latitude angle
+ expressed in Decimal Degrees.
+
+ \return ZERO (FALSE) on failure, any other different value (TRUE) on success.
+
+ \sa gaiaConvertToDMS
+
+ \note this function will return a dynamically allocated buffer created 
+ by malloc(). 
+ You are required to explicitly free() any string returned by this function.
+ */
+    GAIAAUX_DECLARE int gaiaParseDMS (const char *dms, double *longitude,
+				      double *latitude);
+
+/**
+ Return a DMS string
+
+ \param longitude the angle of longitude expressed in Decimal Degrees.
+ \param latitude the angle of latitude expressed in Decimal Degrees.
+
+ \return the corresponding DMS (Degrees/Minutes/Seconds) text string,
+ or NULL on failure
+
+ \sa gaiaLongitudeFromDMS, gaiaLatitudeFromDMS
+
+ \note this function will return a dynamically allocated buffer created 
+ by malloc(). 
+ You are required to explicitly free() any string returned by this function.
+ */
+    GAIAAUX_DECLARE char *gaiaConvertToDMS (double longitude, double latitude);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/headers/spatialite/gaiaexif.h b/src/headers/spatialite/gaiaexif.h
index 3a8083e..73aa6fa 100644
--- a/src/headers/spatialite/gaiaexif.h
+++ b/src/headers/spatialite/gaiaexif.h
@@ -91,6 +91,8 @@ extern "C"
 #define GAIA_WEBP_BLOB		10
 /** this BLOB does actually contain a SpatiaLite XmlBLOB */
 #define GAIA_XML_BLOB		11
+/** this BLOB does actually contain a GPKG Geometry */
+#define GAIA_GPB_BLOB		12
 
 /* constants used for EXIF value types */
 /** unrecognized EXIF value */
@@ -608,7 +610,8 @@ extern "C"
 
  \return the BLOB type: one of GAIA_HEX_BLOB, GAIA_GIF_BLOB, GAIA_PNG_BLOB,
  GAIA_JPEG_BLOB, GAIA_EXIF_BLOB, GAIA_EXIF_GPS_BLOB, GAIA_ZIP_BLOB,
- GAIA_PDF_BLOB, GAIA_GEOMETRY_BLOB, GAIA_TIFF_BLOB
+ GAIA_PDF_BLOB, GAIA_GEOMETRY_BLOB, GAIA_TIFF_BLOB, GAIA_WEBP_BLOB,
+ GAIA_XML_BLOB, GAIA_GPB_BLOB
  */
     GAIAEXIF_DECLARE int gaiaGuessBlobType (const unsigned char *blob,
 					    int size);
diff --git a/src/headers/spatialite/geopackage.h b/src/headers/spatialite/geopackage.h
index 7ad412e..da20382 100644
--- a/src/headers/spatialite/geopackage.h
+++ b/src/headers/spatialite/geopackage.h
@@ -22,6 +22,7 @@ Portions created by the Initial Developer are Copyright (C) 2012
 the Initial Developer. All Rights Reserved.
 
 Contributor(s):
+Sandro Furieri (a.furieri at lqt.it) 
 
 Alternatively, the contents of this file may be used under the terms of
 either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -38,9 +39,9 @@ the terms of any one of the MPL, the GPL or the LGPL.
 */
 
 /**
- \file gaiaexif.h
+ \file geopackage.h
 
- EXIF/image: supporting functions and constants
+ GeoPackage: supporting functions and constants
  */
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -63,6 +64,8 @@ extern "C"
 {
 #endif
 
+#include <spatialite/gaiageo.h>
+
 /* Internal geopackage SQL function implementation */
     GEOPACKAGE_DECLARE void fnct_gpkgCreateBaseTables (sqlite3_context *
 						       context, int argc,
@@ -74,17 +77,12 @@ extern "C"
 							   context, int argc,
 							   sqlite3_value **
 							   argv);
-
+    GEOPACKAGE_DECLARE void fnct_gpkgInsertEpsgSRID (sqlite3_context *
+						     context, int argc,
+						     sqlite3_value ** argv);
     GEOPACKAGE_DECLARE void fnct_gpkgAddTileTriggers (sqlite3_context * context,
 						      int argc,
 						      sqlite3_value ** argv);
-    GEOPACKAGE_DECLARE void fnct_gpkgAddRasterTriggers (sqlite3_context *
-							context, int argc,
-							sqlite3_value ** argv);
-    GEOPACKAGE_DECLARE void fnct_gpkgAddRtMetadataTriggers (sqlite3_context *
-							    context, int argc,
-							    sqlite3_value **
-							    argv);
     GEOPACKAGE_DECLARE void fnct_gpkgGetNormalRow (sqlite3_context * context,
 						   int argc,
 						   sqlite3_value ** argv);
@@ -94,9 +92,81 @@ extern "C"
     GEOPACKAGE_DECLARE void fnct_gpkgGetImageType (sqlite3_context * context,
 						   int argc,
 						   sqlite3_value ** argv);
-    GEOPACKAGE_DECLARE void fnct_gpkgPointToTile (sqlite3_context * context,
-						  int argc,
+    GEOPACKAGE_DECLARE void fnct_gpkgAddGeometryColumn (sqlite3_context *
+							context, int argc,
+							sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePoint (sqlite3_context *
+						context, int argc,
+						sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointWithSRID (sqlite3_context *
+							context, int argc,
+							sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointZ (sqlite3_context *
+						 context, int argc,
+						 sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointZWithSRID (sqlite3_context *
+							 context, int argc,
+							 sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointM (sqlite3_context *
+						 context, int argc,
+						 sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointMWithSRID (sqlite3_context *
+							 context, int argc,
+							 sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointZM (sqlite3_context *
+						  context, int argc,
 						  sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgMakePointZMWithSRID (sqlite3_context *
+							  context, int argc,
+							  sqlite3_value **
+							  argv);
+    GEOPACKAGE_DECLARE void fnct_ToGPB (sqlite3_context * context, int argc,
+					sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_GeomFromGPB (sqlite3_context * context,
+					      int argc, sqlite3_value ** argv);
+
+    GEOPACKAGE_DECLARE gaiaGeomCollPtr gaiaFromGeoPackageGeometryBlob (const
+								       unsigned
+								       char
+								       *gpb,
+								       unsigned
+								       int
+								       gpb_len);
+
+/* Sandro Furieri - 2014-05-19 */
+    GEOPACKAGE_DECLARE int gaiaIsValidGPB (const unsigned char *gpb,
+					   int gpb_len);
+    GEOPACKAGE_DECLARE int gaiaGetSridFromGPB (const unsigned char *gpb,
+					       int gpb_len);
+    GEOPACKAGE_DECLARE int gaiaIsEmptyGPB (const unsigned char *gpb,
+					   int gpb_len);
+    GEOPACKAGE_DECLARE int gaiaGetEnvelopeFromGPB (const unsigned char *gpb,
+						   int gpb_len, double *min_x,
+						   double *max_x, double *min_y,
+						   double *max_y, int *has_z,
+						   double *min_z, double *max_z,
+						   int *has_m, double *min_m,
+						   double *max_m);
+    GEOPACKAGE_DECLARE char *gaiaGetGeometryTypeFromGPB (const unsigned char
+							 *gpb, int gpb_len);
+    GEOPACKAGE_DECLARE void fnct_IsValidGPB (sqlite3_context * context,
+					     int argc, sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_GPKG_IsAssignable (sqlite3_context * context,
+						    int argc,
+						    sqlite3_value ** argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgAddGeometryTriggers (sqlite3_context *
+							  context, int argc,
+							  sqlite3_value **
+							  argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgAddGeometryTriggers (sqlite3_context *
+							  context, int argc,
+							  sqlite3_value **
+							  argv);
+    GEOPACKAGE_DECLARE void fnct_gpkgAddSpatialIndex (sqlite3_context * context,
+						      int argc,
+						      sqlite3_value ** argv);
+/* end Sandro Furieri - 2014-05-19 */
+
 
 /* Markers for unused arguments / variable */
 #if __GNUC__
diff --git a/src/headers/spatialite/gg_advanced.h b/src/headers/spatialite/gg_advanced.h
index ae9b862..e0b403a 100644
--- a/src/headers/spatialite/gg_advanced.h
+++ b/src/headers/spatialite/gg_advanced.h
@@ -113,6 +113,7 @@ extern "C"
 /**
  Tansforms a Geometry object into a different Reference System
  [aka Reprojection]
+
  \param org pointer to input Geometry object.
  \param proj_from geodetic parameters string [EPSG format] qualifying the
  input Reference System
@@ -121,9 +122,10 @@ extern "C"
 
  \return the pointer to newly created Geometry object: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaTransform_r, gaiaFreeGeomColl
 
- \note you are responsible to destroy (before or after) any allocated Geometry,  this including any Geometry returned by gaiaGeometryTransform()
+ \note you are responsible to destroy (before or after) any allocated Geometry,  this including any Geometry returned by gaiaGeometryTransform()\n
+ not reentrant and thread unsafe.
 
  \remark \b PROJ.4 support required
  */
@@ -131,6 +133,31 @@ extern "C"
 						   char *proj_from,
 						   char *proj_to);
 
+/**
+ Tansforms a Geometry object into a different Reference System
+ [aka Reprojection]
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param org pointer to input Geometry object.
+ \param proj_from geodetic parameters string [EPSG format] qualifying the
+ input Reference System
+ \param proj_to geodetic parameters string [EPSG format] qualifying the
+ output Reference System
+
+ \return the pointer to newly created Geometry object: NULL on failure.
+
+ \sa gaiaTransform, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,  this including any Geometry returned by gaiaGeometryTransform()\n
+ reentrant and thread-safe.
+
+ \remark \b PROJ.4 support required
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache,
+						     gaiaGeomCollPtr org,
+						     char *proj_from,
+						     char *proj_to);
+
 #endif				/* end including PROJ.4 */
 
 #ifndef OMIT_GEOS		/* including GEOS */
@@ -138,99 +165,282 @@ extern "C"
 /**
  Resets the GEOS error and warning messages to an empty state
 
- \sa gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg,
+ \sa gaiaResetGeosMsg_r,
+ gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg,
  gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE void gaiaResetGeosMsg (void);
 
 /**
+ Resets the GEOS error and warning messages to an empty state
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+
+ \sa gaiaResetGeosMsg,
+ gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg,
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache);
+
+/**
  Return the latest GEOS error message (if any)
 
  \return the latest GEOS error message: an empty string if no error was
  previoysly found.
 
- \sa gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg,
- gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+ \sa gaiaGetGeosErrorMsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg,
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg,
+ gaiaCriticalPointFromGEOSmsg
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void);
 
 /**
+ Return the latest GEOS error message (if any)
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+
+ \return the latest GEOS error message: an empty string if no error was
+ previoysly found.
+
+ \sa gaiaGetGeosErrorMsg,
+ gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg,
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg,
+ gaiaCriticalPointFromGEOSmsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache);
+
+/**
  Return the latest GEOS warning message (if any)
 
  \return the latest GEOS warning message: an empty string if no warning was 
  previoysly found.
 
- \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg,
- gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+ \sa gaiaGetGeosWarningMsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg,
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg,
+ gaiaCriticalPointFromGEOSmsg
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void);
 
 /**
+ Return the latest GEOS warning message (if any)
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+
+ \return the latest GEOS warning message: an empty string if no warning was 
+ previoysly found.
+
+ \sa gaiaGetGeosWarningMsg,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg,
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg,
+ gaiaCriticalPointFromGEOSmsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache);
+
+/**
  Return the latest GEOS (auxiliary) error message (if any)
 
  \return the latest GEOS (auxiliary) error message: an empty string if no 
  error was previoysly found.
 
- \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, 
+ \sa gaiaGetGeosAuxErrorMsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, 
  gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void);
 
 /**
+ Return the latest GEOS (auxiliary) error message (if any)
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+
+ \return the latest GEOS (auxiliary) error message: an empty string if no 
+ error was previoysly found.
+
+ \sa gaiaGetGeosAuxErrorMsg,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, 
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache);
+
+/**
+ Attempts to (possibile) return a Point Geometry extracted from the latest 
+ GEOS error / warning message
+
+ \return a Point Geometry: NULL if no warning/error was previoysly found
+ or if the current GEOS message doesn't contains a critical Point.
+
+ \sa gaiaCriticalPointFromGEOSmsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, 
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+
+ \note not reentrant and thread unsafe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void);
+
+/**
+ Attempts to (possibile) return a Point Geometry extracted from the latest 
+ GEOS error / warning message
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+
+ \return a Point Geometry: NULL if no warning/error was previoysly found
+ or if the current GEOS message doesn't contains a critical Point.
+
+ \sa gaiaCriticalPointFromGEOSmsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, 
+ gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void
+								    *p_cache);
+
+/**
  Set the current GEOS error message
 
  \param msg the error message to be set.
 
- \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
+ \sa gaiaSetGeosErrorMsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
  gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg);
 
 /**
+ Set the current GEOS error message
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param msg the error message to be set.
+
+ \sa gaiaSetGeosErrorMsg,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
+ gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache,
+						const char *msg);
+
+/**
  Set the current GEOS warning message
 
  \param msg the warning message to be set.
 
- \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
+ \sa gaiaSetGeosWarningMsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
  gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg);
 
 /**
+ Set the current GEOS warning message
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param msg the warning message to be set.
+
+ \sa gaiaSetGeosWarningMsg,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
+ gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache,
+						  const char *msg);
+
+/**
  Set the current GEOS (auxiliary) error message
 
  \param msg the error message to be set.
 
- \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
+ \sa gaiaSetAuxErrorMsg_r,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
  gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg);
 
 /**
+ Set the current GEOS (auxiliary) error message
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param msg the error message to be set.
+
+ \sa gaiaSetAuxErrorMsg,
+ gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg,
+ gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache,
+						   const char *msg);
+
+/**
  Converts a Geometry object into a GEOS Geometry
 
  \param gaia pointer to Geometry object
 
  \return handle to GEOS Geometry
  
- \sa gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM,
-  gaiaToGeosSelective
+ \sa gaiaToGeos_r, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, 
+ gaiaFromGeos_XYZM, gaiaToGeosSelective
 
- \note convenience method, simply defaulting to gaiaToGeos(geom, GAIA2GEOS_ALL)
+ \note convenience method, simply defaulting to gaiaToGeosSelective(geom, GAIA2GEOS_ALL)\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -239,16 +449,37 @@ extern "C"
 /**
  Converts a Geometry object into a GEOS Geometry
 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param gaia pointer to Geometry object
+
+ \return handle to GEOS Geometry
+ 
+ \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, 
+ gaiaFromGeos_XYZM, gaiaToGeosSelective_r
+
+ \note convenience method, simply defaulting to gaiaToGeosSelective_r(p_cache, geom, GAIA2GEOS_ALL)\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache,
+					const gaiaGeomCollPtr gaia);
+
+/**
+ Converts a Geometry object into a GEOS Geometry
+
  \param gaia pointer to Geometry object
  \param mode one of GAIA2GEOS_ALL, GAIA2GEOS_ONLY_POINTS,
   GAIA2GEOS_ONLY_LINESTRINGS or GAIA2GEOS_ONLY_POLYGONS
 
  \return handle to GEOS Geometry
  
- \sa gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
+ \sa gaiaToGeosSelective_r, gaiaFromGeos_XY, gaiaFromGeos_XYZ,
+ gaiaFromGeos_XYM, gaiaFromGeos_XYZM
 
  \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries
-  of the selected type will be passed to GEOS, ignoring any other.
+  of the selected type will be passed to GEOS, ignoring any other.\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -256,83 +487,215 @@ extern "C"
 					       int mode);
 
 /**
+ Converts a Geometry object into a GEOS Geometry
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param gaia pointer to Geometry object
+ \param mode one of GAIA2GEOS_ALL, GAIA2GEOS_ONLY_POINTS,
+  GAIA2GEOS_ONLY_LINESTRINGS or GAIA2GEOS_ONLY_POLYGONS
+
+ \return handle to GEOS Geometry
+ 
+ \sa gaiaToGeosSelective, gaiaFromGeos_XY, gaiaFromGeos_XYZ,
+ gaiaFromGeos_XYM, gaiaFromGeos_XYZM
+
+ \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries
+  of the selected type will be passed to GEOS, ignoring any other.\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache,
+						 const gaiaGeomCollPtr gaia,
+						 int mode);
+
+/**
  Converts a GEOS Geometry into a Geometry object [XY dims]
 
  \param geos handle to GEOS Geometry
 
  \return the pointer to the newly created Geometry object
 
- \sa gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
+ \sa gaiaFromGeos_XY_r,
+ gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
 
  \note you are responsible to destroy (before or after) any allocated 
- Geometry, this including any Geometry returned by gaiaFromGeos_XY()
+ Geometry, this including any Geometry returned by gaiaFromGeos_XY()\n
+ not reentrant and thread usafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos);
 
 /**
+ Converts a GEOS Geometry into a Geometry object [XY dims]
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geos handle to GEOS Geometry
+
+ \return the pointer to the newly created Geometry object
+
+ \sa gaiaFromGeos_XY,
+ gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
+
+ \note you are responsible to destroy (before or after) any allocated 
+ Geometry, this including any Geometry returned by gaiaFromGeos_XY_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache,
+						       const void *geos);
+
+/**
  Converts a GEOS Geometry into a Geometry object [XYZ dims]
 
  \param geos handle to GEOS Geometry
     
  \return the pointer to the newly created Geometry object
 
- \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
+ \sa gaiaFromGeos_XYZ_r,
+ gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
  
  \note you are responsible to destroy (before or after) any allocated 
- Geometry, this including any Geometry returned by gaiaFromGeos_XYZ()
+ Geometry, this including any Geometry returned by gaiaFromGeos_XYZ()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos);
 
 /**
+ Converts a GEOS Geometry into a Geometry object [XYZ dims]
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geos handle to GEOS Geometry
+    
+ \return the pointer to the newly created Geometry object
+
+ \sa gaiaFromGeos_XYZ,
+ gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM
+ 
+ \note you are responsible to destroy (before or after) any allocated 
+ Geometry, this including any Geometry returned by gaiaFromGeos_XYZ_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache,
+							const void *geos);
+
+/**
  Converts a GEOS Geometry into a Geometry object [XYM dims]
 
  \param geos handle to GEOS Geometry
     
  \return the pointer to the newly created Geometry object
 
- \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM
+ \sa gaiaFromGeos_XYM_r,
+ gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM
  
  \note you are responsible to destroy (before or after) any allocated 
- Geometry, this including any Geometry returned by gaiaFromGeos_XYM()
+ Geometry, this including any Geometry returned by gaiaFromGeos_XYM()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos);
 
 /**
+ Converts a GEOS Geometry into a Geometry object [XYM dims]
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geos handle to GEOS Geometry
+    
+ \return the pointer to the newly created Geometry object
+
+ \sa gaiaFromGeos_XYM,
+ gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM
+ 
+ \note you are responsible to destroy (before or after) any allocated 
+ Geometry, this including any Geometry returned by gaiaFromGeos_XYM_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache,
+							const void *geos);
+
+/**
  Converts a GEOS Geometry into a Geometry object [XYZM dims]
 
  \param geos handle to GEOS Geometry
     
  \return the pointer to the newly created Geometry object
 
- \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM
+ \sa gaiaFromGeos_XYZM_r,
+ gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM
  
  \note you are responsible to destroy (before or after) any allocated 
- Geometry, this including any Geometry returned by gaiaFromGeos_XYZM()
+ Geometry, this including any Geometry returned by gaiaFromGeos_XYZM()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos);
 
 /**
+ Converts a GEOS Geometry into a Geometry object [XYZM dims]
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geos handle to GEOS Geometry
+    
+ \return the pointer to the newly created Geometry object
+
+ \sa gaiaFromGeos_XYZM,
+ gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM
+ 
+ \note you are responsible to destroy (before or after) any allocated 
+ Geometry, this including any Geometry returned by gaiaFromGeos_XYZM_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache,
+							 const void *geos);
+
+/**
  Checks if a Geometry object represents an OGC Simple Geometry
 
  \param geom pointer to Geometry object.
 
  \return 0 if false; any other value if true
 
- \sa gaiaIsClosed, gaiaIsRing, gaiaIsValid
+ \sa gaiaIsSimple_r,
+ gaiaIsClosed, gaiaIsRing, gaiaIsValid
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom);
 
 /**
+ Checks if a Geometry object represents an OGC Simple Geometry
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object.
+
+ \return 0 if false; any other value if true
+
+ \sa gaiaIsSimple,
+ gaiaIsClosed, gaiaIsRing, gaiaIsValid
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache,
+					gaiaGeomCollPtr geom);
+
+/**
  Checks if a Linestring object represents an OGC Closed Geometry
  
  This function only works on a single linestring - if you pass in a multi-line
@@ -356,47 +719,113 @@ extern "C"
 
  \return 0 if false; any other value if true
 
- \sa gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed
+ \sa gaiaIsClosedGeom_r,
+ gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom);
 
 /**
- Checks if a Linestring object represents an OGC Ring Geometry
+ Checks if a Geometry object represents an OGC Closed Linestring
 
- \param line pointer to Geometry object.
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object.
 
  \return 0 if false; any other value if true
 
- \sa gaiaIsSimple, gaiaIsClosed, gaiaIsValid
+ \sa gaiaIsClosedGeom,
+ gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed
+
+ \note reentrant and thread-safe.
 
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line);
+    GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache,
+					    gaiaGeomCollPtr geom);
 
 /**
- Checks if a Geometry object represents an OGC Valid Geometry
+ Checks if a Linestring object represents an OGC Ring Geometry
 
- \param geom pointer to Geometry object.
+ \param line pointer to Geometry object.
 
  \return 0 if false; any other value if true
 
- \sa gaiaIsSimple, gaiaIsClosed, gaiaIsRing
+ \sa gaiaIsRing_r,
+ gaiaIsSimple, gaiaIsClosed, gaiaIsValid
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom);
+    GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line);
 
 /**
- Measures the total Length for a Geometry object
+ Checks if a Linestring object represents an OGC Ring Geometry
 
- \param geom pointer to Geometry object
- \param length on completion this variable will contain the measured length
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param line pointer to Geometry object.
+
+ \return 0 if false; any other value if true
+
+ \sa gaiaIsRing,
+ gaiaIsSimple, gaiaIsClosed, gaiaIsValid
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache,
+				      gaiaLinestringPtr line);
+
+/**
+ Checks if a Geometry object represents an OGC Valid Geometry
+
+ \param geom pointer to Geometry object.
+
+ \return 0 if false; any other value if true
+
+ \sa gaiaIsValid_r,
+ gaiaIsSimple, gaiaIsClosed, gaiaIsRing
+
+ \note not reentrant and thread unsafe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom);
+
+/**
+ Checks if a Geometry object represents an OGC Valid Geometry
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object.
+
+ \return 0 if false; any other value if true
+
+ \sa gaiaIsValid,
+ gaiaIsSimple, gaiaIsClosed, gaiaIsRing
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache,
+				       gaiaGeomCollPtr geom);
+
+/**
+ Measures the total Length for a Geometry object
+
+ \param geom pointer to Geometry object
+ \param length on completion this variable will contain the measured length
 
  \return 0 on failure: any other value on success
 
- \sa gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter
+ \sa gaiaGeomCollLenght_r, 
+ gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -404,6 +833,26 @@ extern "C"
 					    double *length);
 
 /**
+ Measures the total Length for a Geometry object
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object
+ \param length on completion this variable will contain the measured length
+
+ \return 0 on failure: any other value on success
+
+ \sa gaiaGeomCollLenght, 
+ gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache,
+					      gaiaGeomCollPtr geom,
+					      double *length);
+
+/**
  Measures the total Length or Perimeter for a Geometry object
 
  \param geom pointer to Geometry object
@@ -414,13 +863,41 @@ extern "C"
 
  \return 0 on failure: any other value on success
 
- \sa gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength
+ \sa gaiaGeomCollLengthOrPerimeter_r,
+ gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom,
 						       int perimeter,
 						       double *length);
+
+/**
+ Measures the total Length or Perimeter for a Geometry object
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object
+ \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting
+ \n the opposite if FALSE (considering only Linestrings and ignoring any Polygon)
+ \param length on completion this variable will contain the measured length
+  or perimeter
+
+ \return 0 on failure: any other value on success
+
+ \sa gaiaGeomCollLengthOrPerimeter,
+ gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache,
+							 gaiaGeomCollPtr geom,
+							 int perimeter,
+							 double *length);
+
 /**
  Measures the total Area for a Geometry object
 
@@ -429,13 +906,35 @@ extern "C"
 
  \return 0 on failure: any other value on success
 
- \sa gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea
+ \sa gaiaGeoCollArea_r,
+ gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area);
 
 /**
+ Measures the total Area for a Geometry object
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object
+ \param area on completion this variable will contain the measured area
+
+ \return 0 on failure: any other value on success
+
+ \sa gaiaGeoCollArea,
+ gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache,
+					    gaiaGeomCollPtr geom, double *area);
+
+/**
  Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon
 
  \param geom the input Geometry object
@@ -445,15 +944,39 @@ extern "C"
  \return the pointer to newly created Geometry object representing a
  Polygon or MultiPolygon Geometry: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaPolygonize_r, gaiaMakePolygon, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaPolygonize()
+ this including any Geometry returned by gaiaPolygonize()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom,
 						    int force_multi);
+
+/**
+ Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+ \param force_multi if not set to 0, then an eventual Polygon will be 
+ returned casted to MultiPolygon
+
+ \return the pointer to newly created Geometry object representing a
+ Polygon or MultiPolygon Geometry: NULL on failure.
+
+ \sa gaiaPolygonize, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaPolygonize_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache,
+						      gaiaGeomCollPtr geom,
+						      int force_multi);
 /**
  Spatial relationship evalution: Equals
  
@@ -462,14 +985,36 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps,
- gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin,
- gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedDisjoint
+ \sa gaiaGeomCollEquals_r, gaiaGeomCollDisjoint, gaiaGeomCollIntersects,
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note Obsolete: not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1,
 					    gaiaGeomCollPtr geom2);
+/**
+ Spatial relationship evalution: Equals
+ 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache,
+					      gaiaGeomCollPtr geom1,
+					      gaiaGeomCollPtr geom2);
 
 /**
  Spatial relationship evalution: Disjoint
@@ -479,9 +1024,11 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollEquals, gaiaGeomCollIntersects, gaiaGeomCollOverlaps,
- gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin,
- gaiaGeomCollTouches, gaiaGeomCollRelate
+ \sa gaiaGeomCollDisjoint_r, gaiaGeomCollEquals, gaiaGeomCollIntersects,
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note Obsolete: not reentrant and thread unsafe.
  
  \remark \b GEOS support required.
  */
@@ -489,6 +1036,27 @@ extern "C"
 					      gaiaGeomCollPtr geom2);
 
 /**
+ Spatial relationship evalution: Disjoint
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollDisjoint_r, gaiaGeomCollEquals, gaiaGeomCollIntersects,
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+ 
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache,
+						gaiaGeomCollPtr geom1,
+						gaiaGeomCollPtr geom2);
+
+/**
  Spatial relationship evalution: Disjoint (GEOSPreparedGeometry)
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -501,11 +1069,13 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollDisjoint
+ \sa gaiaGeomCollDisjoint, gaiaGeomCollDisjoint_r
+
+ \note reentrant and thread-safe.
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache,
 						      gaiaGeomCollPtr geom1,
 						      unsigned char *blob1,
 						      int size1,
@@ -516,23 +1086,49 @@ extern "C"
 /**
  Spatial relationship evalution: Intesects
 
- \param p_cache a memory pointer returned by spatialite_alloc_connection()
  \param geom1 the first Geometry object to be evaluated
  \param geom2 the second Geometry object to be evaluated
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps,
+ \sa gaiaGeomCollIntersects_r, gaiaGeomCollPreparedIntersects,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps,
  gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin,
- gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedIntersects
- 
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1,
 						gaiaGeomCollPtr geom2);
+
+/**
+ Spatial relationship evalution: Intersects
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollIntersects, gaiaGeomCollPreparedIntersects,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps,
+ gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin,
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache,
+						  gaiaGeomCollPtr geom1,
+						  gaiaGeomCollPtr geom2);
+
 /**
- Spatial relationship evalution: Intesects (GEOSPreparedGeometry)
+ Spatial relationship evalution: Intersects (GEOSPreparedGeometry)
 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
  \param geom1 the first Geometry object to be evaluated
  \param blob1 the BLOB corresponding to the first Geometry
  \param size1 the size (in bytes) of the first BLOB
@@ -542,11 +1138,13 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollIntersects
+ \sa gaiaGeomCollIntersects, gaiaGeomCollIntersects_r
+
+ \note reentrant and thread-safe.
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache,
 							gaiaGeomCollPtr geom1,
 							unsigned char *blob1,
 							int size1,
@@ -562,9 +1160,12 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ \sa gaiaGeomCollOverlaps_r, gaiaGeomCollPreparedOverlaps,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects,
  gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin,
- gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedOverlaps
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note not reentrant and thread unsafe.
  
  \remark \b GEOS support required.
  */
@@ -572,6 +1173,28 @@ extern "C"
 					      gaiaGeomCollPtr geom2);
 
 /**
+ Spatial relationship evalution: Overlaps
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollOverlaps, gaiaGeomCollPreparedOverlaps,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin,
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+ 
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache,
+						gaiaGeomCollPtr geom1,
+						gaiaGeomCollPtr geom2);
+
+/**
  Spatial relationship evalution: Overlaps (GEOSPreparedGeometry)
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -584,11 +1207,13 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollOverlaps
+ \sa gaiaGeomCollOverlaps, gaiaGeomCollOverlaps_r
+
+ \note reentrant and thread-safe.
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache,
 						      gaiaGeomCollPtr geom1,
 						      unsigned char *blob1,
 						      int size1,
@@ -604,9 +1229,12 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ \sa gaiaGeomCollCrosses_r, gaiaGeomCollPreparedCrosses,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
  gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin,
- gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollCrosses
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note not reentrant and thread unsafe.
  
  \remark \b GEOS support required.
  */
@@ -614,6 +1242,28 @@ extern "C"
 					     gaiaGeomCollPtr geom2);
 
 /**
+ Spatial relationship evalution: Crosses
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollCrosses, gaiaGeomCollPreparedCrosses,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin,
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+ 
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache,
+					       gaiaGeomCollPtr geom1,
+					       gaiaGeomCollPtr geom2);
+
+/**
  Spatial relationship evalution: Crosses (GEOSPreparedGeometry)
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -626,11 +1276,13 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollCrosses
+ \note reentrant and thread-safe.
+
+ \sa gaiaGeomCollCrosses, gaiaGeomCollCrosses_r
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache,
 						     gaiaGeomCollPtr geom1,
 						     unsigned char *blob1,
 						     int size1,
@@ -646,9 +1298,12 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ \sa gaiaGeomCollContains_r, gaiaGeomCollPreparedContains,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
  gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin,
- gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollPreparedContains
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note not reentrant and thread unsafe.
  
  \remark \b GEOS support required.
  */
@@ -656,6 +1311,28 @@ extern "C"
 					      gaiaGeomCollPtr geom2);
 
 /**
+ Spatial relationship evalution: Contains
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollContains, gaiaGeomCollPreparedContains,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin,
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+ 
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache,
+						gaiaGeomCollPtr geom1,
+						gaiaGeomCollPtr geom2);
+
+/**
  Spatial relationship evalution: Contains (GEOSPreparedGeometry)
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -668,11 +1345,13 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollContains
+ \sa gaiaGeomCollContains, gaiaGeomCollContains_r
+
+ \note reentrant and thread-safe.
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache,
 						      gaiaGeomCollPtr geom1,
 						      unsigned char *blob1,
 						      int size1,
@@ -687,10 +1366,13 @@ extern "C"
  \param geom2 the second Geometry object to be evaluated
 
  \return 0 if false: any other value if true
+ 
+ \sa gaiaGeomCollWithin_r, gaiaGeomCollPreparedWithin,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollTouches, gaiaGeomCollRelate
 
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
- gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, 
- gaiaGeomCollTouches, gaiaGeomCollRelate, gaiaGeomCollWithin
+ \note not reentrant and thread unsafe.
  
  \remark \b GEOS support required.
  */
@@ -698,6 +1380,28 @@ extern "C"
 					    gaiaGeomCollPtr geom2);
 
 /**
+ Spatial relationship evalution: Within
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+
+ \return 0 if false: any other value if true
+ 
+ \sa gaiaGeomCollWithin, gaiaGeomCollPreparedWithin,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollTouches, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+ 
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache,
+					      gaiaGeomCollPtr geom1,
+					      gaiaGeomCollPtr geom2);
+
+/**
  Spatial relationship evalution: Within (GEOSPreparedGeometry)
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -710,11 +1414,13 @@ extern "C"
 
  \return 0 if false: any other value if true
 
- \sa gaiaGeomCollPrepared
+ \sa gaiaGeomCollWithin, gaiaGeomCollWithin_r
+
+ \note reentrant and thread-safe.
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache,
 						    gaiaGeomCollPtr geom1,
 						    unsigned char *blob1,
 						    int size1,
@@ -729,10 +1435,13 @@ extern "C"
  \param geom2 the second Geometry object to be evaluated
 
  \return 0 if false: any other value if true
+ 
+ \sa gaiaGeomCollTouches_r, gaiaGeomCollPreparedTouches,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollRelate
 
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
- gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, 
- gaiaGeomCollWithin, gaiaGeomCollRelate, gaiaGeomCollPreparedTouches
+ \note not reentrant and thread unsafe.
  
  \remark \b GEOS support required.
  */
@@ -740,23 +1449,47 @@ extern "C"
 					     gaiaGeomCollPtr geom2);
 
 /**
- Spatial relationship evalution: Touches (GEOSPreparedGeometry)
+ Spatial relationship evalution: Touches
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
  \param geom1 the first Geometry object to be evaluated
- \param blob1 the BLOB corresponding to the first Geometry
- \param size1 the size (in bytes) of the first BLOB
  \param geom2 the second Geometry object to be evaluated
- \param blob2 the BLOB corresponding to the second Geometry
- \param size2 the size (in bytes) of the second BLOB
 
  \return 0 if false: any other value if true
+ 
+ \sa gaiaGeomCollTouches, gaiaGeomCollPreparedTouches,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollRelate
 
- \sa gaiaGeomCollTouches
+ \note reentrant and thread-safe.
  
  \remark \b GEOS support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache,
+					       gaiaGeomCollPtr geom1,
+					       gaiaGeomCollPtr geom2);
+
+/**
+ Spatial relationship evalution: Touches (GEOSPreparedGeometry)
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param blob1 the BLOB corresponding to the first Geometry
+ \param size1 the size (in bytes) of the first BLOB
+ \param geom2 the second Geometry object to be evaluated
+ \param blob2 the BLOB corresponding to the second Geometry
+ \param size2 the size (in bytes) of the second BLOB
+
+ \return 0 if false: any other value if true
+
+ \sa gaiaGeomCollTouches, gaiaGeomCollTouches_r
+
+ \note reentrant and thread-safe.
+ 
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache,
 						     gaiaGeomCollPtr geom1,
 						     unsigned char *blob1,
 						     int size1,
@@ -767,16 +1500,20 @@ extern "C"
 /**
  Spatial relationship evalution: Relate
 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
  \param geom1 the first Geometry object to be evaluated
  \param geom2 the second Geometry object to be evaluated
  \param pattern intersection matrix pattern [DE-9IM]
 
  \return 0 if false: any other value if true
-
- \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
- gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, 
- gaiaGeomCollWithin, gaiaGeomCollTouches
  
+ \sa gaiaGeomCollRelate_r,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollRelate
+
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1,
@@ -784,6 +1521,30 @@ extern "C"
 					    const char *pattern);
 
 /**
+ Spatial relationship evalution: Relate
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object to be evaluated
+ \param geom2 the second Geometry object to be evaluated
+ \param pattern intersection matrix pattern [DE-9IM]
+
+ \return 0 if false: any other value if true
+ 
+ \sa gaiaGeomCollRelate,
+ gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, 
+ gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains,
+ gaiaGeomCollWithin, gaiaGeomCollRelate
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache,
+					      gaiaGeomCollPtr geom1,
+					      gaiaGeomCollPtr geom2,
+					      const char *pattern);
+
+/**
  Calculates the maximum distance intercurring between two Geometry objects
 
  \param geom1 the first Geometry object 
@@ -792,9 +1553,11 @@ extern "C"
 
  \return 0 on failure: any other value on success.
 
- \sa gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance
+ \sa gaiaGeomCollDistance_r, 
+ gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance
 
- \note this function always computes the 2D cartesian distance.
+ \note this function always computes the 2D cartesian distance.\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -803,19 +1566,44 @@ extern "C"
 					      double *dist);
 
 /**
+ Calculates the maximum distance intercurring between two Geometry objects
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object 
+ \param geom2 the second Geometry object 
+ \param dist on completion this variable will contain the calculated distance
+
+ \return 0 on failure: any other value on success.
+
+ \sa gaiaGeomCollDistance, 
+ gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance
+
+ \note this function always computes the 2D cartesian distance.\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache,
+						gaiaGeomCollPtr geom1,
+						gaiaGeomCollPtr geom2,
+						double *dist);
+
+/**
  Spatial operator: Intersection
-                                              
+                                     
  \param geom1 the first Geometry object 
  \param geom2 the second Geometry object 
 
  \return the pointer to newly created Geometry object representing the
  geometry Intersection of both input Geometries: NULL on failure.
 
- \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference,
+ \sa gaiaGeometryIntersection_r,
+ gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference,
  gaiaGeometrySymDifference, gaiaBoundary
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeometryIntersection()
+ this including any Geometry returned by gaiaGeometryIntersection()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -825,18 +1613,47 @@ extern "C"
 							      geom2);
 
 /**
- Spatial operator: Union
+ Spatial operator: Intersection
+                                     
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()         
+ \param geom1 the first Geometry object 
+ \param geom2 the second Geometry object 
+
+ \return the pointer to newly created Geometry object representing the
+ geometry Intersection of both input Geometries: NULL on failure.
+
+ \sa gaiaGeometryIntersection,
+ gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference,
+ gaiaGeometrySymDifference, gaiaBoundary
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeometryIntersection_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void
+								*p_cache,
+								gaiaGeomCollPtr
+								geom1,
+								gaiaGeomCollPtr
+								geom2);
 
+/**
+ Spatial operator: Union
+ 
  \param geom1 the first Geometry object
  \param geom2 the second Geometry object
 
  \return the pointer to newly created Geometry object representing the
  geometry Union of both input Geometries: NULL on failure.
 
- \sa gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded
+ \sa gaiaGeometryUnion_r,
+ gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeometryUnion()
+ this including any Geometry returned by gaiaGeometryUnion()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -844,6 +1661,29 @@ extern "C"
 						       gaiaGeomCollPtr geom2);
 
 /**
+ Spatial operator: Union
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()  
+ \param geom1 the first Geometry object
+ \param geom2 the second Geometry object
+
+ \return the pointer to newly created Geometry object representing the
+ geometry Union of both input Geometries: NULL on failure.
+
+ \sa gaiaGeometryUnion,
+ gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeometryUnion_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache,
+							 gaiaGeomCollPtr geom1,
+							 gaiaGeomCollPtr geom2);
+
+/**
  Spatial operator: Union Cascaded
 
  \param geom the input Geometry object.
@@ -853,16 +1693,41 @@ extern "C"
  MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions.
  NULL on failure.
 
- \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion
+ \sa gaiaUnionCascaded,
+ gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaUnionCascaded()
+ this including any Geometry returned by gaiaUnionCascaded()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom);
 
 /**
+ Spatial operator: Union Cascaded
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()  
+ \param geom the input Geometry object.
+
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n this function is similar to gaiaUnaryUnion, but it only accepts Polygons and 
+ MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions.
+ NULL on failure.
+
+ \sa gaiaUnionCascaded,
+ gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaUnionCascaded_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache,
+							 gaiaGeomCollPtr geom);
+
+/**
  Spatial operator: Difference
 
  \param geom1 the first Geometry object
@@ -871,10 +1736,11 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  geometry Difference of both input Geometries: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaGeometryDifference_r, gaiaGeometrySymDifference, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeometryDifference()
+ this including any Geometry returned by gaiaGeometryDifference()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -884,6 +1750,31 @@ extern "C"
 							    geom2);
 
 /**
+ Spatial operator: Difference
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object
+ \param geom2 the second Geometry object
+
+ \return the pointer to newly created Geometry object representing the
+ geometry Difference of both input Geometries: NULL on failure.
+
+ \sa gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeometryDifference_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void
+							      *p_cache,
+							      gaiaGeomCollPtr
+							      geom1,
+							      gaiaGeomCollPtr
+							      geom2);
+
+/**
  Spatial operator: SymDifference
 
  \param geom1 the first Geometry object
@@ -892,10 +1783,11 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  geometry SymDifference of both input Geometries: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaGeometrySymDifference_r, gaiaGeometryDifference, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeometrySymDifference()
+ this including any Geometry returned by gaiaGeometrySymDifference()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -905,6 +1797,31 @@ extern "C"
 							       geom2);
 
 /**
+ Spatial operator: SymDifference
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 the first Geometry object
+ \param geom2 the second Geometry object
+
+ \return the pointer to newly created Geometry object representing the
+ geometry SymDifference of both input Geometries: NULL on failure.
+
+ \sa gaiaGeometrySymDifference, gaiaGeometryDifference, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeometrySymDifference_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void
+								 *p_cache,
+								 gaiaGeomCollPtr
+								 geom1,
+								 gaiaGeomCollPtr
+								 geom2);
+
+/**
  Spatial operator: Boundary
 
  \param geom the Geometry object to be evaluated
@@ -912,16 +1829,37 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  geometry Boundary of the input Geometry: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaBoudary_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaBoundary()
+ this including any Geometry returned by gaiaBoundary()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom);
 
 /**
+ Spatial operator: Boundary
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the Geometry object to be evaluated
+
+ \return the pointer to newly created Geometry object representing the
+ geometry Boundary of the input Geometry: NULL on failure.
+
+ \sa gaiaBoudary, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaBoundary_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache,
+						    gaiaGeomCollPtr geom);
+
+/**
  Spatial operator: Centroid
 
  \param geom pointer to Geometry object.
@@ -930,7 +1868,9 @@ extern "C"
  
  \return 0 on failure: any other value on success
 
- \sa gaiaRingCentroid
+ \sa gaiaGeomCollCentroid_r, gaiaRingCentroid
+
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -938,6 +1878,26 @@ extern "C"
 					      double *y);
 
 /**
+ Spatial operator: Centroid
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object.
+ \param x on completion this variable will contain the centroid X coordinate 
+ \param y on completion this variable will contain the centroid Y coordinate 
+ 
+ \return 0 on failure: any other value on success
+
+ \sa gaiaGeomCollCentroid, gaiaRingCentroid
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache,
+						gaiaGeomCollPtr geom, double *x,
+						double *y);
+
+/**
  Spatial operator: PointOnSurface
 
  \param geom pointer to Geometry object.
@@ -946,12 +1906,36 @@ extern "C"
  
  \return 0 on failure: any other value on success
 
+ \sa gaiaGetPointOnSurface_r
+
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x,
 					       double *y);
 
 /**
+ Spatial operator: PointOnSurface
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object.
+ \param x on completion this variable will contain the Point X coordinate  
+ \param y on completion this variable will contain the Point Y coordinate
+ 
+ \return 0 on failure: any other value on success
+
+ \sa gaiaGetPointOnSurface
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache,
+						 gaiaGeomCollPtr geom,
+						 double *x, double *y);
+
+/**
  Spatial operator: Simplify
 
  \param geom the input Geometry object
@@ -960,10 +1944,12 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure.
 
- \sa gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology
+ \sa gaiaGeomCollSimplify_r, 
+ gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeomCollSimplify()
+ this including any Geometry returned by gaiaGeomCollSimplify()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -971,6 +1957,30 @@ extern "C"
 							  double tolerance);
 
 /**
+ Spatial operator: Simplify
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+ \param tolerance approximation threshold
+
+ \return the pointer to newly created Geometry object representing the
+ simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure.
+
+ \sa gaiaGeomCollSimplify, 
+ gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeomCollSimplify_r()\n
+ reentrant and thread safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void *p_cache,
+							    gaiaGeomCollPtr
+							    geom,
+							    double tolerance);
+
+/**
  Spatial operator: Simplify [preserving topology]
 
  \param geom the input Geometry object
@@ -979,10 +1989,12 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure.
 
- \sa gaiaFreeGeomColl, gaiaGeomCollSimplify
+ \sa gaiaGeomCollSimplifyPreserveTopology_r,
+ gaiaFreeGeomColl, gaiaGeomCollSimplify
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeomCollSimplify()
+ this including any Geometry returned by gaiaGeomCollSimplify()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -991,6 +2003,30 @@ extern "C"
 					      double tolerance);
 
 /**
+ Spatial operator: Simplify [preserving topology]
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+ \param tolerance approximation threshold
+
+ \return the pointer to newly created Geometry object representing the
+ simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure.
+
+ \sa gaiaGeomCollSimplifyPreserveTopology,
+ gaiaFreeGeomColl, gaiaGeomCollSimplify
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeomCollSimplify_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr
+	gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache,
+						gaiaGeomCollPtr geom,
+						double tolerance);
+
+/**
  Spatial operator: ConvexHull
 
  \param geom the input Geometry object
@@ -998,15 +2034,36 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  ConvexHull of input Geometry: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaConvexHull_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaConvexHull()
+ this including any Geometry returned by gaiaConvexHull()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom);
 
+/**
+ Spatial operator: ConvexHull
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+
+ \return the pointer to newly created Geometry object representing the
+ ConvexHull of input Geometry: NULL on failure.
+
+ \sa gaiaConvexHull, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaConvexHull_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache,
+						      gaiaGeomCollPtr geom);
+
 /** 
  Spatial operator: Buffer
 
@@ -1018,10 +2075,11 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  Buffer of input Geometry: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaGeomCollBuffer_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaGeomCollBuffer()
+ this including any Geometry returned by gaiaGeomCollBuffer()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS support required.
  */
@@ -1029,6 +2087,31 @@ extern "C"
 							double radius,
 							int points);
 
+/** 
+ Spatial operator: Buffer
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+ \param radius the buffer's radius
+ \param points number of points (aka vertices) to be used in order to 
+ approximate a circular arc.
+
+ \return the pointer to newly created Geometry object representing the
+ Buffer of input Geometry: NULL on failure.
+
+ \sa gaiaGeomCollBuffer, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaGeomCollBuffer_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache,
+							  gaiaGeomCollPtr geom,
+							  double radius,
+							  int points);
+
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
 #ifdef GEOS_ADVANCED
 #endif
@@ -1043,6 +2126,10 @@ extern "C"
 
  \return 0 on failure: any other value on success.
 
+ \sa gaiaHausdorffDistance_r
+
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS-ADVANCED support required.
  */
     GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1,
@@ -1050,6 +2137,28 @@ extern "C"
 					       double *dist);
 
 /**
+ Calculates the Hausdorff distance intercurring between two Geometry objects
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 pointer to first Geometry object
+ \param geom2 pointer to second Geometry object
+ \param dist on completion this variable will contain the calculated Hausdorff
+ distance 
+
+ \return 0 on failure: any other value on success.
+
+ \sa gaiaHausdorffDistance
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache,
+						 gaiaGeomCollPtr geom1,
+						 gaiaGeomCollPtr geom2,
+						 double *dist);
+
+/**
  Spatial operator: Offset Curve
 
  \param geom the input Geometry object
@@ -1062,10 +2171,11 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  OffsetCurve of input Geometry: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaOffsetCurve_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaOffsetCurve()
+ this including any Geometry returned by gaiaOffsetCurve()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1074,6 +2184,34 @@ extern "C"
 						     int left_right);
 
 /**
+ Spatial operator: Offset Curve
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+ \param radius the buffer's radius
+ \param points number of points (aka vertices) to be used in order to 
+ approximate a circular arc.
+ \param left_right if set to 1 the left-sided OffsetCurve will be returned;
+ otherwise the right-sided one.
+
+ \return the pointer to newly created Geometry object representing the
+ OffsetCurve of input Geometry: NULL on failure.
+
+ \sa gaiaOffsetCurve, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaOffsetCurve_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache,
+						       gaiaGeomCollPtr geom,
+						       double radius,
+						       int points,
+						       int left_right);
+
+/**
  Spatial operator: Single Sided Buffer
 
  \param geom the input Geometry object
@@ -1086,10 +2224,11 @@ extern "C"
  \return the pointer to newly created Geometry object representing the
  single-sided Buffer of input Geometry: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaSingleSidedBuffer_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaSingleSidedBuffer()
+ this including any Geometry returned by gaiaSingleSidedBuffer()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1099,6 +2238,36 @@ extern "C"
 							   int left_right);
 
 /**
+ Spatial operator: Single Sided Buffer
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object
+ \param radius the buffer's radius
+ \param points number of points (aka vertices) to be used in order to
+ approximate a circular arc.
+ \param left_right if set to 1 the left-sided Buffer will be returned;
+ otherwise the right-sided one.
+
+ \return the pointer to newly created Geometry object representing the
+ single-sided Buffer of input Geometry: NULL on failure.
+
+ \sa gaiaSingleSidedBuffer, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaSingleSidedBuffer_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void
+							     *p_cache,
+							     gaiaGeomCollPtr
+							     geom,
+							     double radius,
+							     int points,
+							     int left_right);
+
+/**
  Spatial operator: Shared Paths
 
  \param geom1 pointer to first Geometry object
@@ -1107,10 +2276,11 @@ extern "C"
  \return the pointer to newly created Geometry object representing any
  Share Path common to both input geometries: NULL on failure.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaSharedPaths_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaSharedPaths()
+ this including any Geometry returned by gaiaSharedPaths()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1118,6 +2288,28 @@ extern "C"
 						     gaiaGeomCollPtr geom2);
 
 /**
+ Spatial operator: Shared Paths
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 pointer to first Geometry object
+ \param geom2 pointer to second Geometry object
+
+ \return the pointer to newly created Geometry object representing any
+ Share Path common to both input geometries: NULL on failure.
+
+ \sa gaiaSharedPaths, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaSharedPaths_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache,
+						       gaiaGeomCollPtr geom1,
+						       gaiaGeomCollPtr geom2);
+
+/**
  Spatial operator: Line Interpolate Point
 
  \param ln_geom the input Geometry object [expected to be of lineal type]
@@ -1127,11 +2319,12 @@ extern "C"
  laying on the input Geometry and positioned at the given length fraction:
  NULL on failure.
 
- \sa gaiaLineInterpolateEquidistantPoints
- \sa gaiaFreeGeomColl
+ \sa gaiaLineInterpolatePoint_r, 
+ gaiaLineInterpolateEquidistantPoints, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaLineInterpolatePoint()
+ this including any Geometry returned by gaiaLineInterpolatePoint()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1140,6 +2333,33 @@ extern "C"
 							      double fraction);
 
 /**
+ Spatial operator: Line Interpolate Point
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param ln_geom the input Geometry object [expected to be of lineal type]
+ \param fraction total length fraction [in the range 0.0 / 1.0]
+
+ \return the pointer to newly created Geometry object representing a Point
+ laying on the input Geometry and positioned at the given length fraction:
+ NULL on failure.
+
+ \sa gaiaLineInterpolatePoint, 
+ gaiaLineInterpolateEquidistantPoints, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaLineInterpolatePoint_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void
+								*p_cache,
+								gaiaGeomCollPtr
+								ln_geom,
+								double
+								fraction);
+
+/**
  Spatial operator: Line Interpolate Equidistant Points
 
  \param ln_geom the input Geometry object [expected to be of lineal type]
@@ -1151,11 +2371,12 @@ extern "C"
  individual Points will be regularly spaced by the given distance:
  NULL on failure.
 
- \sa gaiaLineInterpolatePoint
- \sa gaiaFreeGeomColl
+ \sa gaiaLineInterpolateEquidistantPoints_r,
+ gaiaLineInterpolatePoint, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaLineInterpolateEquidistantPoints()
+ this including any Geometry returned by gaiaLineInterpolateEquidistantPoints()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1164,32 +2385,111 @@ extern "C"
 					      double distance);
 
 /**
+ Spatial operator: Line Interpolate Equidistant Points
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param ln_geom the input Geometry object [expected to be of lineal type]
+ \param distance regular distance between interpolated points
+
+ \return the pointer to newly created Geometry object representing a MultiPoint;
+ such MultiPoint always supports the M coordinate (the corresponding value
+ representing the progressive distance for each interpolated Point).
+ individual Points will be regularly spaced by the given distance:
+ NULL on failure.
+
+ \sa gaiaLineInterpolateEquidistantPoints,
+ gaiaLineInterpolatePoint, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaLineInterpolateEquidistantPoints_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr
+	gaiaLineInterpolateEquidistantPoints_r (const void *p_cache,
+						gaiaGeomCollPtr ln_geom,
+						double distance);
+
+/**
+ Spatial operator: Line Substring
+
+ \param ln_geom the input Geometry object [expected to be of lineal type]
+ \param start_fraction substring start, expressed as total length fraction
+ [in the range 0.0 / 1.0]
+ \param end_fraction substring end, expressed as total length fraction
+
+ \return the pointer to newly created Geometry object representing a Linestring
+ laying on the input Geometry.
+ \n this Linestring will begin (and stop) at given total length fractions. 
+ NULL on failure.
+
+ \sa gaiaLineSubstring_r, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaLineSubstring()\n
+ not reentrant and thread unsafe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr ln_geom,
+						       double start_fraction,
+						       double end_fraction);
+
+/**
  Spatial operator: Line Substring
 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
  \param ln_geom the input Geometry object [expected to be of lineal type]
  \param start_fraction substring start, expressed as total length fraction
  [in the range 0.0 / 1.0]
  \param end_fraction substring end, expressed as total length fraction
 
- \return the pointer to newly created Geometry object representing a Linestring
- laying on the input Geometry.
- \n this Linestring will begin (and stop) at given total length fractions. 
+ \return the pointer to newly created Geometry object representing a Linestring
+ laying on the input Geometry.
+ \n this Linestring will begin (and stop) at given total length fractions. 
+ NULL on failure.
+
+ \sa gaiaLineSubstring, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaLineSubstring_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache,
+							 gaiaGeomCollPtr
+							 ln_geom,
+							 double start_fraction,
+							 double end_fraction);
+
+/**
+ Spatial operator: Shortest Line
+
+ \param geom1 pointer to the first Geometry object.
+ \param geom2 pointer to the second Geometry object.
+
+ \return the pointer to newly created Geometry object representing a Linestring;
  NULL on failure.
+ \n the returned Linestring graphically represents the minimum distance 
+ intercurrinng between both input geometries.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaShortestLine_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaLineSubstring()
+ this including any Geometry returned by gaiaShortestLine()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
-    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr ln_geom,
-						       double start_fraction,
-						       double end_fraction);
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1,
+						      gaiaGeomCollPtr geom2);
 
 /**
  Spatial operator: Shortest Line
 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
  \param geom1 pointer to the first Geometry object.
  \param geom2 pointer to the second Geometry object.
 
@@ -1198,18 +2498,20 @@ extern "C"
  \n the returned Linestring graphically represents the minimum distance 
  intercurrinng between both input geometries.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaShortestLine, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaShortestLine()
+ this including any Geometry returned by gaiaShortestLine_r()\n
+ reentrant and thread-safe.
 
  \remark \b GEOS-ADVANCED support required.
  */
-    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1,
-						      gaiaGeomCollPtr geom2);
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache,
+							gaiaGeomCollPtr geom1,
+							gaiaGeomCollPtr geom2);
 
 /**
- Spatial operator: Shortest Line
+ Spatial operator: Snap
 
  \param geom1 pointer to the first Geometry object.
  \param geom2 pointer to the second Geometry object.
@@ -1219,10 +2521,11 @@ extern "C"
  \n the returned Geometry represents the first input Geometry (nicely
  \e snapped to the second input Geometry, whenever is possible).
 
- \sa gaiaFreeGeomColl
+ \sa gaiaSnap_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaShortestLine()
+ this including any Geometry returned by gaiaSnap()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1231,6 +2534,31 @@ extern "C"
 					      double tolerance);
 
 /**
+ Spatial operator: Snap
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 pointer to the first Geometry object.
+ \param geom2 pointer to the second Geometry object.
+ \param tolerance approximation factor
+
+ \return the pointer to newly created Geometry object; NULL on failure.
+ \n the returned Geometry represents the first input Geometry (nicely
+ \e snapped to the second input Geometry, whenever is possible).
+
+ \sa gaiaSnap, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaSnap_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache,
+						gaiaGeomCollPtr geom1,
+						gaiaGeomCollPtr geom2,
+						double tolerance);
+
+/**
  Spatial operator: Line Merge
 
  \param geom pointer to input Geometry object.
@@ -1238,16 +2566,37 @@ extern "C"
  \return the pointer to newly created Geometry object; NULL on failure.
  \n if possible, this representing a reassembled Linestring or MultiLinestring.
 
- \sa gaiaFreeGeomColl
+ \sa gaiaLineMerge_r, gaiaFreeGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaLineMerge()
+ this including any Geometry returned by gaiaLineMerge()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom);
 
 /**
+ Spatial operator: Line Merge
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to input Geometry object.
+
+ \return the pointer to newly created Geometry object; NULL on failure.
+ \n if possible, this representing a reassembled Linestring or MultiLinestring.
+
+ \sa gaiaLineMerge, gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaLineMerge_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache,
+						     gaiaGeomCollPtr geom);
+
+/**
  Spatial operator: Line Cut At Nodes
 
  \param geom1 pointer to input Geometry object [Linestring or MultiLinestring].
@@ -1277,16 +2626,39 @@ extern "C"
  works internally to the input Geometry itself.
  NULL on failure.
 
- \sa gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded
+ \sa gaiaUnaryUnion_r, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaUnaryUnion()
+ this including any Geometry returned by gaiaUnaryUnion()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom);
 
 /**
+ Spatial operator: Unary Union
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the input Geometry object.
+
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n this function is the same as gaiaGeometryUnion, except in that this
+ works internally to the input Geometry itself.
+ NULL on failure.
+
+ \sa gaiaUnaryUnion, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaUnaryUnion_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache,
+						      gaiaGeomCollPtr geom);
+
+/**
  Determines the location of the closest Point on Linestring to the given Point
 
  \param ln_geom pointer to first input Geometry object [expected to be of
@@ -1297,11 +2669,37 @@ extern "C"
  \return the fraction [in the range 0.0 / 1.0] of ln_geom total length
  where the closest Point to pt_geom lays.
 
+ \sa gaiaLineLocatePoint_r
+
+ \note not reentrant and thread unsafe.
+
  \remark \b GEOS-ADVANCED support required.
  */
     GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom,
 						gaiaGeomCollPtr pt_geom);
 
+/**
+ Determines the location of the closest Point on Linestring to the given Point
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param ln_geom pointer to first input Geometry object [expected to be of
+ the lineal type].
+ \param pt_geom pointer to second input Geometry object [expected to be a
+ Point].
+
+ \return the fraction [in the range 0.0 / 1.0] of ln_geom total length
+ where the closest Point to pt_geom lays.
+
+ \sa gaiaLineLocatePoint
+
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache,
+						  gaiaGeomCollPtr ln_geom,
+						  gaiaGeomCollPtr pt_geom);
+
 /** 
  Topology check: test if a Geometry covers another one
 
@@ -1310,7 +2708,9 @@ extern "C"
 
  \return 0 if false; any other value if geom1 \e spatially \e covers geom2.
 
- \sa gaiaGeomCollCoveredBy
+ \sa gaiaGeomCollCovers_r, gaiaGeomCollPreparedCovers, gaiaGeomCollCoveredBy
+
+ \note not reentrant and thead unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1318,6 +2718,25 @@ extern "C"
 					    gaiaGeomCollPtr geom2);
 
 /** 
+ Topology check: test if a Geometry covers another one
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 pointer to first input Geometry object.
+ \param geom2 pointer to second input Geometry object.
+
+ \return 0 if false; any other value if geom1 \e spatially \e covers geom2.
+
+ \sa gaiaGeomCollCovers, gaiaGeomCollPreparedCovers, gaiaGeomCollCoveredBy
+
+ \note reentrant and thead-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache,
+					      gaiaGeomCollPtr geom1,
+					      gaiaGeomCollPtr geom2);
+
+/** 
  Topology check: test if a Geometry covers another one (GEOSPreparedGeometry)
 
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -1330,11 +2749,13 @@ extern "C"
 
  \return 0 if false; any other value if geom1 \e spatially \e covers geom2.
 
- \sa gaiaGeomCollCovers
+ \note reentrant and thread-safe.
+
+ \sa gaiaGeomCollCovers, gaiaGeomCollCovers_r
 
  \remark \b GEOS-ADVANCED support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache,
 						    gaiaGeomCollPtr geom1,
 						    unsigned char *blob1,
 						    int size1,
@@ -1351,7 +2772,9 @@ extern "C"
  \return 0 if false; any other value if geom2 is \e spatially \e covered \e by
  geom1.
 
- \sa gaiaGeomCollCovers
+ \sa gaiaGeomCollCoveredBy_r, gaiaGeomCollPreparedCoveredBy, gaiaGeomCollCovers
+ 
+ \note not reentrant and thread unsafe.
 
  \remark \b GEOS-ADVANCED support required.
  */
@@ -1359,6 +2782,26 @@ extern "C"
 					       gaiaGeomCollPtr geom2);
 
 /**
+ Topology check: test if a Geometry is covered by another one
+                            
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()                
+ \param geom1 pointer to first input Geometry object.
+ \param geom2 pointer to second input Geometry object.
+                                               
+ \return 0 if false; any other value if geom2 is \e spatially \e covered \e by
+ geom1.
+
+ \sa gaiaGeomCollCoveredBy, gaiaGeomCollPreparedCoveredBy, gaiaGeomCollCovers
+ 
+ \note reentrant and thread-safe.
+
+ \remark \b GEOS-ADVANCED support required.
+ */
+    GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache,
+						 gaiaGeomCollPtr geom1,
+						 gaiaGeomCollPtr geom2);
+
+/**
  Topology check: test if a Geometry is covered by another one (GEOSPreparedGeometry)
                                             
  \param p_cache a memory pointer returned by spatialite_alloc_connection()
@@ -1372,11 +2815,13 @@ extern "C"
  \return 0 if false; any other value if geom2 is \e spatially \e covered \e by
  geom1.
 
- \sa gaiaGeomCollCovers
+ \sa gaiaGeomCollCoveredBy, gaiaGeomCollCoveredBy_r, gaiaGeomCollCovers
+ 
+ \note reentrant and thread-safe.
 
  \remark \b GEOS-ADVANCED support required.
  */
-    GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (void *p_cache,
+    GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache,
 						       gaiaGeomCollPtr geom1,
 						       unsigned char *blob1,
 						       int size1,
@@ -1398,10 +2843,11 @@ extern "C"
  \n this function will always return a MultiPolygon 
  \n NULL will be returned if any argument is invalid.
 
- \sa gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid
+ \sa gaiaSquareGrid_r, gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaSquareGrid()
+ this including any Geometry returned by gaiaSquareGrid()\n
+ not reentrant and thread unsafe.
 
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom,
@@ -1411,6 +2857,35 @@ extern "C"
 						    int only_edges);
 
 /**
+ Utility function: SquareGrid
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()   
+ \param geom the Geometry to be covered by the Grid.
+ \param origin_x the X ccordinate identifying the Grid Origin.
+ \param origin_y the Y coordinate identifiying the Grid Origin.
+ \param size the Grid cell-side size.
+ \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will
+  return a MULTIPOLYGON containing square POLYGONs.
+ 
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n this function will always return a MultiPolygon 
+ \n NULL will be returned if any argument is invalid.
+
+ \sa gaiaSquareGrid, gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaSquareGrid_r()\n
+ reentrant and thread-safe.
+
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache,
+						      gaiaGeomCollPtr geom,
+						      double origin_x,
+						      double origin_y,
+						      double size,
+						      int only_edges);
+
+/**
  Utility function: TriangularGrid
 
  \param geom the Geometry to be covered by the Grid.
@@ -1424,10 +2899,11 @@ extern "C"
  \n this function will always return a MultiPolygon 
  \n NULL will be returned if any argument is invalid.
 
- \sa gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid
+ \sa gaiaTriangularGrid_r, gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaTriangularGrid()
+ this including any Geometry returned by gaiaTriangularGrid()\n
+ not reentrant and thread unsafe.
 
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom,
@@ -1437,6 +2913,35 @@ extern "C"
 							int only_edges);
 
 /**
+ Utility function: TriangularGrid
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the Geometry to be covered by the Grid.
+ \param origin_x the X ccordinate identifying the Grid Origin.
+ \param origin_y the Y coordinate identifiying the Grid Origin.
+ \param size the Grid cell-side size.
+ \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will
+  return a MULTIPOLYGON containing triangular POLYGONs.
+ 
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n this function will always return a MultiPolygon 
+ \n NULL will be returned if any argument is invalid.
+
+ \sa gaiaTriangularGrid, gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaTriangularGrid_r()\n
+ reentrant and thread-safe.
+
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache,
+							  gaiaGeomCollPtr geom,
+							  double origin_x,
+							  double origin_y,
+							  double size,
+							  int only_edges);
+
+/**
  Utility function: HexagonalGrid
 
  \param geom the Geometry to be covered by the Grid.
@@ -1450,10 +2955,11 @@ extern "C"
  \n this function will always return a MultiPolygon 
  \n NULL will be returned if any argument is invalid.
 
- \sa gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid
+ \sa gaiaGexagonalGrid_r, gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaHexagonalGrid()
+ this including any Geometry returned by gaiaHexagonalGrid()\n
+ not reentrant and thread unsafe.
 
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom,
@@ -1462,6 +2968,35 @@ extern "C"
 						       double size,
 						       int only_edges);
 
+/**
+ Utility function: HexagonalGrid
+   
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom the Geometry to be covered by the Grid.
+ \param origin_x the X ccordinate identifying the Grid Origin.
+ \param origin_y the Y coordinate identifiying the Grid Origin.
+ \param size the Grid cell-side size.
+ \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will
+  return a MULTIPOLYGON containing hexagonal POLYGONs.
+ 
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n this function will always return a MultiPolygon 
+ \n NULL will be returned if any argument is invalid.
+
+ \sa gaiaGexagonalGrid, gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaHexagonalGrid_r()\n
+ reentrant and thread-safe.
+
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache,
+							 gaiaGeomCollPtr geom,
+							 double origin_x,
+							 double origin_y,
+							 double size,
+							 int only_edges);
+
 #endif				/* end GEOS advanced features */
 
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
@@ -1479,10 +3014,12 @@ extern "C"
  \return the pointer to newly created Geometry object: NULL on failure.
  \n NULL will be returned if any argument is invalid.
 
- \sa gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull
+ \sa gaiaDelaunatTriangulation_r,
+ gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaDelaunayTriangulation()
+ this including any Geometry returned by gaiaDelaunayTriangulation()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-TRUNK support required.
  */
@@ -1492,6 +3029,36 @@ extern "C"
 							       int only_edges);
 
 /**
+ Delaunay Triangulation
+                          
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()                   
+ \param geom pointer to input Geometry object.
+ \param tolerance optional snapping tolerance.
+ \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will
+  return a MULTIPOLYGON containing triangular POLYGONs.
+ 
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n NULL will be returned if any argument is invalid.
+
+ \sa gaiaDelaunatTriangulation,
+ gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaDelaunayTriangulation_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-TRUNK support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void
+								 *p_cache,
+								 gaiaGeomCollPtr
+								 geom,
+								 double
+								 tolerance,
+								 int
+								 only_edges);
+
+/**
  Voronoj Diagram
                                             
  \param geom pointer to input Geometry object.
@@ -1503,10 +3070,11 @@ extern "C"
  \return the pointer to newly created Geometry object: NULL on failure.
  \n NULL will be returned if any argument is invalid.
 
- \sa gaiaFreeGeomColl, gaiaDelaunayTriangulation
+ \sa gaiaVoronojDiagram_r, gaiaFreeGeomColl, gaiaDelaunayTriangulation
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaVoronojDiagram()
+ this including any Geometry returned by gaiaVoronojDiagram()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-TRUNK support required.
  */
@@ -1516,6 +3084,34 @@ extern "C"
 							int only_edges);
 
 /**
+ Voronoj Diagram
+                                 
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()            
+ \param geom pointer to input Geometry object.
+ \param extra_frame_size percent factor expanding the BBOX of input Geometry
+ \param tolerance optional snapping tolerance.
+ \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will
+  return a MULTIPOLYGON.
+ 
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n NULL will be returned if any argument is invalid.
+
+ \sa gaiaVoronojDiagram, gaiaFreeGeomColl, gaiaDelaunayTriangulation
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaVoronojDiagram_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-TRUNK support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache,
+							  gaiaGeomCollPtr geom,
+							  double
+							  extra_frame_size,
+							  double tolerance,
+							  int only_edges);
+
+/**
  Concave Hull
                                             
  \param geom pointer to input Geometry object.
@@ -1527,7 +3123,7 @@ extern "C"
   NULL on failure.
  \n NULL will be returned if any argument is invalid.
 
- \sa gaiaFreeGeomColl, gaiaDelaunayTriangulation
+ \sa gaiaConcaveHull_r, gaiaFreeGeomColl, gaiaDelaunayTriangulation
 
  \note This function will first create the Delauany Triangulation corresponding
   to input Geometry, determining at the same time the \b standard \b deviation
@@ -1538,7 +3134,8 @@ extern "C"
  \n All filtered triangles will then be merged altogether so to create the Concave Hull.
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
- this including any Geometry returned by gaiaConcaveHull()
+ this including any Geometry returned by gaiaConcaveHull()\n
+ not reentrant and thread unsafe.
 
  \remark \b GEOS-TRUNK support required.
  */
@@ -1547,6 +3144,41 @@ extern "C"
 						     double tolerance,
 						     int allow_holes);
 
+/**
+ Concave Hull
+                                       
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()         
+ \param geom pointer to input Geometry object.
+ \param factor multiplier used for filtering Delaunay triangles: please read the note.
+ \param tolerance optional snapping tolerance.
+ \param allow_holes if FALSE any interior hole will be suppressed.
+ 
+ \return the pointer to newly created Geometry object (always of the Polygon type): 
+  NULL on failure.
+ \n NULL will be returned if any argument is invalid.
+
+ \sa gaiaConcaveHull, gaiaFreeGeomColl, gaiaDelaunayTriangulation
+
+ \note This function will first create the Delauany Triangulation corresponding
+  to input Geometry, determining at the same time the \b standard \b deviation
+  for all edge's lengths.
+ \n Then in a second pass all Delaunay's triangles will be filtered, and all
+ triangles presenting at least one edge longer than \b standard \b deviation
+ \b * \b factor will be discarded. 
+ \n All filtered triangles will then be merged altogether so to create the Concave Hull.
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaConcaveHull_r()\n
+ reentrant and thread-safe.
+
+ \remark \b GEOS-TRUNK support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache,
+						       gaiaGeomCollPtr geom,
+						       double factor,
+						       double tolerance,
+						       int allow_holes);
+
 #endif				/* end GEOS experimental features */
 
 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
@@ -1559,6 +3191,8 @@ extern "C"
  \sa gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg,
  gaiaSetLwGeomWarningMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b LWGEOM support required.
  */
     GAIAGEO_DECLARE void gaiaResetLwGeomMsg (void);
@@ -1569,6 +3203,8 @@ extern "C"
  \return the latest LWGEOM error message: an empty string if no error was
  previoysly found.
 
+ \note not reentrant and thread unsafe.
+
  \sa gaiaResetLwGeomMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg,
  gaiaSetLwGeomWarningMsg
 
@@ -1585,6 +3221,8 @@ extern "C"
  \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaSetLwGeomErrorMsg,
  gaiaSetLwGeomWarningMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b LWGEOM support required.
  */
     GAIAGEO_DECLARE const char *gaiaGetLwGeomWarningMsg (void);
@@ -1597,6 +3235,8 @@ extern "C"
  \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg,
  gaiaSetLwGeomWarningMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b LWGEOM support required.
  */
     GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg);
@@ -1609,6 +3249,8 @@ extern "C"
  \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg,
  gaiaSetLwGeomErrorMsg
 
+ \note not reentrant and thread unsafe.
+
  \remark \b LWGEOM support required.
  */
     GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg);
@@ -1918,6 +3560,24 @@ extern "C"
 					  double b, int use_ellipsoid,
 					  double *area);
 
+/**
+ Utility function: re-noding lines
+
+ \param input the input Geometry object.
+
+ \return the pointer to newly created Geometry object: NULL on failure.
+ \n The function fully nodes a set of linestrings, using the least nodes
+ preserving all the input ones.
+
+ \sa gaiaFreeGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaNode()
+
+ \remark \b LWGEOM support required.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (gaiaGeomCollPtr input);
+
 #endif				/* end LWGEOM support */
 
 #endif				/* end including GEOS */
diff --git a/src/headers/spatialite/gg_const.h b/src/headers/spatialite/gg_const.h
index 38b7695..415c080 100644
--- a/src/headers/spatialite/gg_const.h
+++ b/src/headers/spatialite/gg_const.h
@@ -62,9 +62,6 @@ extern "C"
 
 /* constant values for getVectorLayersList modes */
 
-/** mode: FAST */
-#define GAIA_VECTORS_LIST_FAST		0
-
 /** mode: OPTIMISTIC */
 #define GAIA_VECTORS_LIST_OPTIMISTIC	1
 
diff --git a/src/headers/spatialite/gg_core.h b/src/headers/spatialite/gg_core.h
index 3a1feca..184f419 100644
--- a/src/headers/spatialite/gg_core.h
+++ b/src/headers/spatialite/gg_core.h
@@ -1166,49 +1166,110 @@ extern "C"
 
  \return 0 if the Geometry is not toxic: otherwise any other different value.
 
- \sa gaiaSanitize
+ \sa gaiaIsToxic_r, gaiaSanitize
 
  \note a \b toxic Geometry is a Geometry containing severely malformed
  Polygons: i.e. containing less than 4 Points.
  \n Or containing severely malformed Linestrings: i.e. containing less 
  than 2 Points.
  \n Attempting to pass any toxic Geometry to GEOS supported functions
- will easily cause a crash.
+ will easily cause a crash.\n
+ not reentrant and thread unsafe.
  */
     GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom);
 
 /**
+ Checks for toxic Geometry object
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object
+
+ \return 0 if the Geometry is not toxic: otherwise any other different value.
+
+ \sa gaiaIsToxic, gaiaSanitize
+
+ \note a \b toxic Geometry is a Geometry containing severely malformed
+ Polygons: i.e. containing less than 4 Points.
+ \n Or containing severely malformed Linestrings: i.e. containing less 
+ than 2 Points.
+ \n Attempting to pass any toxic Geometry to GEOS supported functions
+ will easily cause a crash.\n
+ reentrant and thread-safe.
+ */
+    GAIAGEO_DECLARE int gaiaIsToxic_r (const void *p_cache,
+				       gaiaGeomCollPtr geom);
+
+/**
  Checks for not-closed Rings 
 
  \param ring pointer to Ring object
 
  \return 0 if the Ring in unclosed: otherwise any other different value.
 
- \sa gaiaIsToxic, gaiaIsNotClosedGeomColl
+ \sa gaiaIsNotClosedRing_r, gaiaIsToxic, gaiaIsNotClosedGeomColl
 
  \note unclosed Rings cause GEOS supported functions to crash.
  \n SpatiaLite will always carefully check any Ring before passing it
  to GEOS, eventually silently inserting a further point required so 
  to properly close the figure.
- \n This function allows to explicitly identify any unclosed Ring.
+ \n This function allows to explicitly identify any unclosed Ring.\n
+ not reentrant and thread unsafe.
  */
     GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring);
 
 /**
+ Checks for not-closed Rings 
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param ring pointer to Ring object
+
+ \return 0 if the Ring in unclosed: otherwise any other different value.
+
+ \sa gaiaIsNotClosedRing, gaiaIsToxic, gaiaIsNotClosedGeomColl
+
+ \note unclosed Rings cause GEOS supported functions to crash.
+ \n SpatiaLite will always carefully check any Ring before passing it
+ to GEOS, eventually silently inserting a further point required so 
+ to properly close the figure.
+ \n This function allows to explicitly identify any unclosed Ring.\n
+ reentrant and thread-safe.
+ */
+    GAIAGEO_DECLARE int gaiaIsNotClosedRing_r (const void *p_data,
+					       gaiaRingPtr ring);
+
+/**
  Checks for not-closed Rings in a Geometry object
 
  \param geom pointer to Geometry object
 
  \return 0 if the Geometry has no unclosed Rings: otherwise any other different value.
 
- \sa gaiaIsToxic, gaiaIsNotClosedRing
+ \sa gaiaIsNotClosedGeomColl_r, gaiaIsToxic, gaiaIsNotClosedRing
 
  \note This function allows to explicitly identify any Geometry containing
- at least one unclosed Ring.
+ at least one unclosed Ring.\n
+ not reentrant and thread unsafe.
  */
     GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom);
 
 /**
+ Checks for not-closed Rings in a Geometry object
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom pointer to Geometry object
+
+ \return 0 if the Geometry has no unclosed Rings: otherwise any other different value.
+
+ \sa gaiaIsNotClosedGeomColl, gaiaIsToxic, gaiaIsNotClosedRing
+
+ \note This function allows to explicitly identify any Geometry containing
+ at least one unclosed Ring.\n
+ reentrant and thread-safe.
+ */
+    GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl_r (const void *p_data,
+						   gaiaGeomCollPtr geom);
+
+/**
  Attempts to sanitize a possibly malformed Geometry object
 
  \param org pointer to Geometry object.
@@ -1349,17 +1410,41 @@ extern "C"
 
  \return the pointer to newly created Geometry: NULL on failure.
 
- \sa gaiaCloneGeomColl
+ \sa gaiaMergeGeometries_r, gaiaCloneGeomColl
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
  this including any Geometry created by gaiaMergeGeometries()
  \n the newly created Geometry will contain any Point, Linestring and/or
- Polygon contained in both input Geometries.
+ Polygon contained in both input Geometries.\n
+ not reentrant and thread unsafe.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1,
 							 gaiaGeomCollPtr geom2);
 
 /**
+ Merges two Geometry objects into a single one
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param geom1 pointer to first Geometry object.
+ \param geom2 pointer to second Geometry object.
+
+ \return the pointer to newly created Geometry: NULL on failure.
+
+ \sa gaiaMergeGeometries, gaiaCloneGeomColl
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry created by gaiaMergeGeometries()
+ \n the newly created Geometry will contain any Point, Linestring and/or
+ Polygon contained in both input Geometries.\n
+ reentrant and thread-safe.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries_r (const void *p_cache,
+							   gaiaGeomCollPtr
+							   geom1,
+							   gaiaGeomCollPtr
+							   geom2);
+
+/**
  Return a GeometryCollection containing elements matching the specified range of measures
 
  \param geom pointer to Geometry object
@@ -1847,6 +1932,26 @@ extern "C"
 							 double stop,
 							 double step);
 
+/**
+ Creates a Polygon from closed Linestrings
+
+ \param exterior a closed Linestring assumed to represent the Exterior Ring.
+ \param interiors one (or more than one) clsed Linestrings assumed to represent 
+ all Interior Rings (could be a Linstring or a MultiLinestring).\n
+ NULL if there are no Interior Rings at all.
+
+ \sa gaiaPolygonize
+
+ \note this method will simply check if all the received Linestrings are 
+ closed, but it could possibly return an invalid Polygon if there is any 
+ topology inconsistency between the exterior and interior rings.
+ You are responsible to destroy (before or after) any allocated Geometry,
+ this including any Geometry returned by gaiaPolygonize()\n
+ not reentrant and thread unsafe.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakePolygon (gaiaGeomCollPtr exterior,
+						     gaiaGeomCollPtr interiors);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/headers/spatialite/gg_dxf.h b/src/headers/spatialite/gg_dxf.h
index 03796a1..cb64231 100644
--- a/src/headers/spatialite/gg_dxf.h
+++ b/src/headers/spatialite/gg_dxf.h
@@ -716,16 +716,39 @@ extern "C"
 
  \return 0 on failure, any other value on success
 
- \sa gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser
+ \sa gaiaParseDxfFile_r,
+ gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser
 
  \note the pointer to the DXF Parser object is expected to be the one 
  returned by a previous call to gaiaCreateDxfParser.
- A DXF Parser object can be used only a single time to parse a DXF file
+ A DXF Parser object can be used only a single time to parse a DXF file.\n
+ not reentrant and thread unsafe.
  */
     GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr parser,
 					  const char *dxf_path);
 
 /**
+ Parsing a DXF file
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param parser pointer to DXF Parser object
+ \param dxf_path pathname of the DXF external file to be parsed
+
+ \return 0 on failure, any other value on success
+
+ \sa gaiaParseDxfFile,
+ gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser
+
+ \note the pointer to the DXF Parser object is expected to be the one 
+ returned by a previous call to gaiaCreateDxfParser.
+ A DXF Parser object can be used only a single time to parse a DXF file.\n
+ reentrant and thread-safe.
+ */
+    GAIAGEO_DECLARE int gaiaParseDxfFile_r (const void *p_cache,
+					    gaiaDxfParserPtr parser,
+					    const char *dxf_path);
+
+/**
  Populating a DB so to permanently store all Geometries from a DXF Parser
 
  \param db_handle handle to a valid DB connection
diff --git a/src/headers/spatialite/gg_formats.h b/src/headers/spatialite/gg_formats.h
index 32a429c..26b0911 100644
--- a/src/headers/spatialite/gg_formats.h
+++ b/src/headers/spatialite/gg_formats.h
@@ -899,18 +899,41 @@ extern "C"
 
  \return the pointer to the newly created Geometry object: NULL on failure
 
- \sa gaiaOutGml
+ \sa gaiaParseGml_r, gaiaOutGml
 
  \note you are responsible to destroy (before or after) any allocated Geometry,
  unless you've passed ownership of the Geometry object to some further object:
  in this case destroying the higher order object will implicitly destroy any
- contained child object.
+ contained child object.\n
+ not reentrant and thread unsafe.
  */
     GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml (const unsigned char
 						  *in_buffer,
 						  sqlite3 * sqlite_handle);
 
 /**
+ Creates a Geometry object from GML notation
+
+ \param p_cache a memory pointer returned by spatialite_alloc_connection()
+ \param in_buffer pointer to GML buffer
+ \param sqlite_handle handle to current DB connection
+
+ \return the pointer to the newly created Geometry object: NULL on failure
+
+ \sa gaiaParseGml, gaiaOutGml
+
+ \note you are responsible to destroy (before or after) any allocated Geometry,
+ unless you've passed ownership of the Geometry object to some further object:
+ in this case destroying the higher order object will implicitly destroy any
+ contained child object.\n
+ reentrant and thread-safe.
+ */
+    GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml_r (const void *p_cache,
+						    const unsigned char
+						    *in_buffer,
+						    sqlite3 * sqlite_handle);
+
+/**
  Encodes a Geometry object into GML notation
 
  \param out_buf pointer to dynamically growing Text buffer
diff --git a/src/headers/spatialite/gg_wfs.h b/src/headers/spatialite/gg_wfs.h
index 682289f..43ef426 100644
--- a/src/headers/spatialite/gg_wfs.h
+++ b/src/headers/spatialite/gg_wfs.h
@@ -91,7 +91,7 @@ extern "C"
  \param callback_ptr an arbitrary pointer (to be passed as the second argument
  by the callback function).
  
- \sa create_wfs_catalog, load_from_wfs_paged
+ \sa create_wfs_catalog, load_from_wfs_paged, reset_wfs_http_connection
 
  \return 0 on failure, any other value on success
  
@@ -134,7 +134,7 @@ extern "C"
  \param callback_ptr an arbitrary pointer (to be passed as the second argument
  by the callback function).
  
- \sa create_wfs_catalog, load_from_wfs
+ \sa create_wfs_catalog, load_from_wfs, reset_wfs_http_connection
 
  \return 0 on failure, any other value on success
  
@@ -168,7 +168,8 @@ extern "C"
 
  \return the pointer to the corresponding WFS-Catalog object: NULL on failure
  
- \sa destroy_wfs_catalog, get_wfs_catalog_count, get_wfs_catalog_item, load_from_wfs
+ \sa destroy_wfs_catalog, get_wfs_catalog_count, get_wfs_catalog_item, load_from_wfs,
+ reset_wfs_http_connection
  
  \note an eventual error message returned via err_msg requires to be deallocated
  by invoking free().\n
@@ -502,6 +503,13 @@ extern "C"
 						       int *type,
 						       int *nullable);
 
+/**
+ Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings
+ 
+ \sa create_wfs_catalog, load_from_wfs, load_from_wfs_paged
+ */
+    SPATIALITE_DECLARE void reset_wfs_http_connection (void);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/headers/spatialite/gg_xml.h b/src/headers/spatialite/gg_xml.h
index 054b33e..468532f 100644
--- a/src/headers/spatialite/gg_xml.h
+++ b/src/headers/spatialite/gg_xml.h
@@ -66,7 +66,9 @@ extern "C"
 /** XmlBLOB internal marker: END */
 #define GAIA_XML_END		0xDD
 /** XmlBLOB internal marker: HEADER */
-#define GAIA_XML_HEADER		0xAB
+#define GAIA_XML_HEADER		0xAC
+/** XmlBLOB internal marker: LEGACY HEADER */
+#define GAIA_XML_LEGACY_HEADER	0xAB
 /** XmlBLOB internal marker: SCHEMA */
 #define GAIA_XML_SCHEMA		0xBA
 /** XmlBLOB internal marker: FILEID */
@@ -74,6 +76,8 @@ extern "C"
 /** XmlBLOB internal marker: PARENTID */
 #define GAIA_XML_PARENTID	0xDA
 /** XmlBLOB internal marker: TITLE */
+#define GAIA_XML_NAME		0xDE
+/** XmlBLOB internal marker: TITLE */
 #define GAIA_XML_TITLE		0xDB
 /** XmlBLOB internal marker: ABSTRACT */
 #define GAIA_XML_ABSTRACT	0xDC
@@ -98,6 +102,8 @@ extern "C"
 #define GAIA_XML_SLD_SE_RASTER_STYLE	0x10
 /** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */
 #define GAIA_XML_SLD_SE_VECTOR_STYLE	0x40
+/** XmlBLOB FLAG - SLD STYLE bitmask */
+#define GAIA_XML_SLD_STYLE		0x48
 /** XmlBLOB FLAG - SVG bitmask */
 #define GAIA_XML_SVG			0x20
 
@@ -143,9 +149,9 @@ extern "C"
  so you are responsible to free() it [unless SQLite will take care
  of memory cleanup via buffer binding].
  */
-    GAIAGEO_DECLARE void gaiaXmlToBlob (void *p_cache, const unsigned char *xml,
-					int xml_len, int compressed,
-					const char *schemaURI,
+    GAIAGEO_DECLARE void gaiaXmlToBlob (const void *p_cache,
+					const unsigned char *xml, int xml_len,
+					int compressed, const char *schemaURI,
 					unsigned char **result, int *size,
 					char **parsing_errors,
 					char **schema_validation_errors);
@@ -211,7 +217,8 @@ extern "C"
 
  \sa gaiaIsCompressedXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
  gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, 
- gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob
+ gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob,
+ gaiaIsSvgXmlBlob
  */
     GAIAGEO_DECLARE int gaiaIsValidXmlBlob (const unsigned char *blob,
 					    int size);
@@ -226,7 +233,8 @@ extern "C"
 
  \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
  gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, 
- gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob
+ gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob,
+ gaiaIsSvgXmlBlob
  */
     GAIAGEO_DECLARE int gaiaIsCompressedXmlBlob (const unsigned char *blob,
 						 int size);
@@ -241,7 +249,8 @@ extern "C"
 
  \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
  gaiaIsCompressedXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, 
- gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob
+ gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob,
+ gaiaIsSvgXmlBlob
  */
     GAIAGEO_DECLARE int gaiaIsIsoMetadataXmlBlob (const unsigned char *blob,
 						  int size);
@@ -252,7 +261,8 @@ extern "C"
  \param blob pointer to the XmlBLOB buffer.
  \param size XmlBLOB's size (in bytes).
 
- \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case.
+ \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the 
+ Vector type; -1 in any other case.
 
  \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
  gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, 
@@ -267,16 +277,35 @@ extern "C"
  \param blob pointer to the XmlBLOB buffer.
  \param size XmlBLOB's size (in bytes).
 
- \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case.
+ \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the
+ Raster type; -1 in any other case.
 
  \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
  gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, 
- gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSvgXmlBlob
+ gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldStyleXmlBlob,
+ gaiaIsSvgXmlBlob
  */
     GAIAGEO_DECLARE int gaiaIsSldSeRasterStyleXmlBlob (const unsigned char
 						       *blob, int size);
 
 /**
+ Checks if a valid XmlBLOB buffer does contain an SLD Style or not
+
+ \param blob pointer to the XmlBLOB buffer.
+ \param size XmlBLOB's size (in bytes).
+
+ \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the
+ SLD type; -1 in any other case.
+
+ \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
+ gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, 
+ gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterXmlBlob,
+ gaiaIsSvgXmlBlob
+ */
+    GAIAGEO_DECLARE int gaiaIsSldStyleXmlBlob (const unsigned char
+					       *blob, int size);
+
+/**
  Checks if a valid XmlBLOB buffer does contain an SVG Symbol or not
 
  \param blob pointer to the XmlBLOB buffer.
@@ -286,7 +315,8 @@ extern "C"
 
  \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, 
  gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, 
- gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob
+ gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldStyleXmlBlob,
+ gaiaIsSldSeRasterStyleXmlBlob
  */
     GAIAGEO_DECLARE int gaiaIsSvgXmlBlob (const unsigned char *blob, int size);
 
@@ -322,7 +352,8 @@ extern "C"
 
  \sa gaiaIsValidXmlBlob, gaiaIsSvgXmlBlob, 
  gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, 
- gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob
+ gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob,
+ gaiaIsSldStyleXmlBlob 
  */
     GAIAGEO_DECLARE int gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob,
 						      int size);
@@ -371,7 +402,7 @@ extern "C"
  \note the returned SchemaURI corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE char *gaiaXmlGetInternalSchemaURI (void *p_cache,
+    GAIAGEO_DECLARE char *gaiaXmlGetInternalSchemaURI (const void *p_cache,
 						       const unsigned char *xml,
 						       int xml_len);
 
@@ -426,9 +457,9 @@ extern "C"
  \note the output XmlBLOB corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (void *p_cache, const unsigned char
-					      *blob, int size,
-					      const char *identifier,
+    GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (const void *p_cache,
+					      const unsigned char *blob,
+					      int size, const char *identifier,
 					      unsigned char **new_blob,
 					      int *new_size);
 
@@ -449,7 +480,7 @@ extern "C"
  \note the returned XmlBLOB corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (void *p_cache,
+    GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (const void *p_cache,
 						const unsigned char *blob,
 						int size,
 						const char *identifier,
@@ -477,9 +508,9 @@ extern "C"
  \note the output XmlBLOB corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (void *p_cache, const unsigned char
-					      *blob, int size,
-					      const char *identifier,
+    GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (const void *p_cache,
+					      const unsigned char *blob,
+					      int size, const char *identifier,
 					      const char *ns_id,
 					      const char *uri_id,
 					      const char *ns_charstr,
@@ -508,7 +539,7 @@ extern "C"
  \note the returned XmlBLOB corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (void *p_cache,
+    GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (const void *p_cache,
 						const unsigned char *blob,
 						int size,
 						const char *identifier,
@@ -520,6 +551,24 @@ extern "C"
 						int *new_size);
 
 /**
+ Return the Name from a valid XmlBLOB buffer
+
+ \param blob pointer to the XmlBLOB buffer.
+ \param size XmlBLOB's size (in bytes).
+
+ \return the Name for any valid XmlBLOB containing a Name; 
+  NULL in any other case.
+
+ \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, 
+ gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob
+
+ \note the returned Name corresponds to dynamically allocated memory:
+ so you are responsible to free() it before or after.
+ */
+    GAIAGEO_DECLARE char *gaiaXmlBlobGetName (const unsigned char
+					      *blob, int size);
+
+/**
  Return the Title from a valid XmlBLOB buffer
 
  \param blob pointer to the XmlBLOB buffer.
@@ -529,7 +578,7 @@ extern "C"
   NULL in any other case.
 
  \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, 
- gaiaIsSldSeRasterStyleXmlBlob
+ gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob
 
  \note the returned Title corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
@@ -547,7 +596,7 @@ extern "C"
   NULL in any other case.
 
  \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, 
- gaiaIsSldSeRasterStyleXmlBlob
+ gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob
 
  \note the returned Abstract corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
@@ -605,7 +654,7 @@ extern "C"
  \note the returned error/warning message corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE char *gaiaXmlBlobGetLastParseError (void *p_cache);
+    GAIAGEO_DECLARE char *gaiaXmlBlobGetLastParseError (const void *p_cache);
 
 /**
  Return the most recent XML Validate error/warning (if any)
@@ -621,7 +670,7 @@ extern "C"
  \note the returned error/warning message corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE char *gaiaXmlBlobGetLastValidateError (void *p_cache);
+    GAIAGEO_DECLARE char *gaiaXmlBlobGetLastValidateError (const void *p_cache);
 
 /**
  Checks if a Text string could be a valid XPathExpression
@@ -634,7 +683,7 @@ extern "C"
 
  \sa gaiaXmlBlobGetLastXPathError
  */
-    GAIAGEO_DECLARE int gaiaIsValidXPathExpression (void *p_cache,
+    GAIAGEO_DECLARE int gaiaIsValidXPathExpression (const void *p_cache,
 						    const char *xpath_expr);
 
 /**
@@ -651,7 +700,7 @@ extern "C"
  \note the returned error/warning message corresponds to dynamically allocated memory:
  so you are responsible to free() it before or after.
  */
-    GAIAGEO_DECLARE char *gaiaXmlBlobGetLastXPathError (void *p_cache);
+    GAIAGEO_DECLARE char *gaiaXmlBlobGetLastXPathError (const void *p_cache);
 
 /**
  Load an external XML Document
@@ -669,7 +718,8 @@ extern "C"
  so you are responsible to free() it [unless SQLite will take care
  of memory cleanup via buffer binding].
  */
-    GAIAGEO_DECLARE int gaiaXmlLoad (void *p_cache, const char *path_or_url,
+    GAIAGEO_DECLARE int gaiaXmlLoad (const void *p_cache,
+				     const char *path_or_url,
 				     unsigned char **result, int *size,
 				     char **parsing_errors);
 
diff --git a/src/headers/spatialite/spatialite.h b/src/headers/spatialite/spatialite.h
index 07b7a8c..7706253 100644
--- a/src/headers/spatialite/spatialite.h
+++ b/src/headers/spatialite/spatialite.h
@@ -42,12 +42,18 @@ the terms of any one of the MPL, the GPL or the LGPL.
  
 */
 
-int virtualshape_extension_init (sqlite3 * db);
-int virtualdbf_extension_init (sqlite3 * db);
-int virtualtext_extension_init (sqlite3 * db);
-int virtualXL_extension_init (sqlite3 * db);
-int virtualnetwork_extension_init (sqlite3 * db);
-int virtualfdo_extension_init (sqlite3 * db);
-int mbrcache_extension_init (sqlite3 * db);
-int virtual_spatialindex_extension_init (sqlite3 * db);
-int virtual_xpath_extension_init (sqlite3 * db, void *p_cache);
+#include <spatialite_private.h>
+
+SPATIALITE_PRIVATE int virtualshape_extension_init (void *db);
+SPATIALITE_PRIVATE int virtualdbf_extension_init (void *db);
+SPATIALITE_PRIVATE int virtualtext_extension_init (void *db);
+SPATIALITE_PRIVATE int virtualXL_extension_init (void *db);
+SPATIALITE_PRIVATE int virtualnetwork_extension_init (void *db);
+SPATIALITE_PRIVATE int virtualfdo_extension_init (void *db);
+SPATIALITE_PRIVATE int virtualbbox_extension_init (void *db,
+						   const void *p_cache);
+SPATIALITE_PRIVATE int mbrcache_extension_init (void *db);
+SPATIALITE_PRIVATE int virtual_spatialindex_extension_init (void *db);
+SPATIALITE_PRIVATE int virtual_xpath_extension_init (void *db,
+						     const void *p_cache);
+SPATIALITE_PRIVATE int virtualgpkg_extension_init (void *db);
diff --git a/src/headers/spatialite_private.h b/src/headers/spatialite_private.h
index 8c1a84c..7fa7d0e 100644
--- a/src/headers/spatialite_private.h
+++ b/src/headers/spatialite_private.h
@@ -43,6 +43,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 */
 
 #include <time.h>
+#include <stdarg.h>
 
 #include <zlib.h>
 
@@ -88,6 +89,9 @@ extern "C"
 #define SPATIALITE_STATISTICS_VIRTS	3
 #define SPATIALITE_STATISTICS_LEGACY	4
 
+#define SPATIALITE_CACHE_MAGIC1	0xf8
+#define SPATIALITE_CACHE_MAGIC2 0x8f
+
     struct vxpath_ns
     {
 /* a Namespace definition */
@@ -125,12 +129,19 @@ extern "C"
 
     struct splite_internal_cache
     {
+	unsigned char magic1;
+	void *GEOS_handle;
+	void *PROJ_handle;
 	void *xmlParsingErrors;
 	void *xmlSchemaValidationErrors;
 	void *xmlXPathErrors;
 	struct splite_geos_cache_item cacheItem1;
 	struct splite_geos_cache_item cacheItem2;
 	struct splite_xmlSchema_cache_item xmlSchemaCache[MAX_XMLSCHEMA_CACHE];
+	int pool_index;
+	void (*geos_warning) (const char *fmt, ...);
+	void (*geos_error) (const char *fmt, ...);
+	unsigned char magic2;
     };
 
     struct epsg_defs
@@ -144,6 +155,9 @@ extern "C"
 	struct epsg_defs *next;
     };
 
+    SPATIALITE_PRIVATE void
+	free_internal_cache (struct splite_internal_cache *cache);
+
     SPATIALITE_PRIVATE struct epsg_defs *add_epsg_def (int filter_srid,
 						       struct epsg_defs **first,
 						       struct epsg_defs **last,
@@ -163,6 +177,8 @@ extern "C"
 	initialize_epsg (int filter, struct epsg_defs **first,
 			 struct epsg_defs **last);
 
+    SPATIALITE_PRIVATE void free_epsg (struct epsg_defs *first);
+
     SPATIALITE_PRIVATE int checkSpatialMetaData (const void *sqlite);
 
     SPATIALITE_PRIVATE int delaunay_triangle_check (void *pg);
@@ -170,9 +186,17 @@ extern "C"
     SPATIALITE_PRIVATE void *voronoj_build (int pgs, void *first,
 					    double extra_frame_size);
 
+    SPATIALITE_PRIVATE void *voronoj_build_r (const void *p_cache, int pgs,
+					      void *first,
+					      double extra_frame_size);
+
     SPATIALITE_PRIVATE void *voronoj_export (void *voronoj, void *result,
 					     int only_edges);
 
+    SPATIALITE_PRIVATE void *voronoj_export_r (const void *p_cache,
+					       void *voronoj, void *result,
+					       int only_edges);
+
     SPATIALITE_PRIVATE void voronoj_free (void *voronoj);
 
     SPATIALITE_PRIVATE void *concave_hull_build (void *first,
@@ -180,6 +204,12 @@ extern "C"
 						 double factor,
 						 int allow_holes);
 
+    SPATIALITE_PRIVATE void *concave_hull_build_r (const void *p_cache,
+						   void *first,
+						   int dimension_model,
+						   double factor,
+						   int allow_holes);
+
     SPATIALITE_PRIVATE int createAdvancedMetaData (void *sqlite);
 
     SPATIALITE_PRIVATE void updateSpatiaLiteHistory (void *sqlite,
@@ -203,9 +233,13 @@ extern "C"
 	getRealSQLnames (void *p_sqlite, const char *table, const char *column,
 			 char **real_table, char **real_column);
 
-    SPATIALITE_PRIVATE void
-	buildSpatialIndex (void *p_sqlite, const unsigned char *table,
-			   const char *column);
+    SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column);	/* DEPRECATED - always use buildSpatialIndexEx */
+
+    SPATIALITE_PRIVATE int
+	buildSpatialIndexEx (void *p_sqlite, const unsigned char *table,
+			     const char *column);
+
+    SPATIALITE_PRIVATE int validateRowid (void *p_sqlite, const char *table);
 
     SPATIALITE_PRIVATE int
 	doComputeFieldInfos (void *p_sqlite, const char *table,
@@ -268,6 +302,7 @@ extern "C"
 							 int style_id,
 							 const unsigned char
 							 *p_blob, int n_bytes);
+
     SPATIALITE_PRIVATE int register_raster_styled_layer (void *p_sqlite,
 							 const char
 							 *coverage_name,
@@ -280,7 +315,6 @@ extern "C"
 						  const char *f_table_name,
 						  const char *f_geometry_column,
 						  const char *coverage_name,
-						  int style_id,
 						  int paint_order);
 
     SPATIALITE_PRIVATE int styled_group_set_infos (void *p_sqlite,
@@ -288,6 +322,12 @@ extern "C"
 						   const char *title,
 						   const char *abstract);
 
+    SPATIALITE_PRIVATE int register_group_style (void *p_sqlite,
+						 const char *group_name,
+						 int style_id,
+						 const unsigned char
+						 *p_blob, int n_bytes);
+
     SPATIALITE_PRIVATE int createIsoMetadataTables (void *p_sqlite,
 						    int relaxed);
 
@@ -314,6 +354,11 @@ extern "C"
 							 splite_geos_cache_item
 							 *p);
 
+    SPATIALITE_PRIVATE void splite_free_geos_cache_item_r (const void *p_cache,
+							   struct
+							   splite_geos_cache_item
+							   *p);
+
     SPATIALITE_PRIVATE void splite_free_xml_schema_cache_item (struct
 							       splite_xmlSchema_cache_item
 							       *p);
@@ -324,16 +369,17 @@ extern "C"
     SPATIALITE_PRIVATE struct vxpath_namespaces *vxpath_get_namespaces (void
 									*p_xml_doc);
 
-    SPATIALITE_PRIVATE int vxpath_eval_expr (void *p_cache, void *xml_doc,
+    SPATIALITE_PRIVATE int vxpath_eval_expr (const void *p_cache, void *xml_doc,
 					     const char *xpath_expr,
 					     void *p_xpathCtx,
 					     void *p_xpathObj);
 
     SPATIALITE_PRIVATE void *register_spatialite_sql_functions (void *db,
-								void *cache);
+								const void
+								*cache);
 
     SPATIALITE_PRIVATE void init_spatialite_virtualtables (void *p_db,
-							   void *p_cache);
+							   const void *p_cache);
 
     SPATIALITE_PRIVATE void spatialite_splash_screen (int verbose);
 
@@ -341,6 +387,14 @@ extern "C"
 
     SPATIALITE_PRIVATE void geos_warning (const char *fmt, ...);
 
+    SPATIALITE_PRIVATE void splite_cache_semaphore_lock (void);
+
+    SPATIALITE_PRIVATE void splite_cache_semaphore_unlock (void);
+
+    SPATIALITE_PRIVATE void splite_lwgeom_semaphore_lock (void);
+
+    SPATIALITE_PRIVATE void splite_lwgeom_semaphore_unlock (void);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/md5/Makefile.am b/src/md5/Makefile.am
index 4b93079..98e9e0f 100644
--- a/src/md5/Makefile.am
+++ b/src/md5/Makefile.am
@@ -1,10 +1,18 @@
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers -I.
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
 
 noinst_HEADERS = md5.h
-noinst_LTLIBRARIES = libmd5.la
+noinst_LTLIBRARIES = libmd5.la md5.la
 
 libmd5_la_SOURCES = md5.c gaia_md5.c
 
+md5_la_SOURCES = md5.c gaia_md5.c
+
+md5_la_CPPFLAGS = @CFLAGS@
+md5_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+md5_la_CPPFLAGS += -DLOADABLE_EXTENSION
+md5_la_LDFLAGS = -module
+md5_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/md5/Makefile.in b/src/md5/Makefile.in
index 6201767..5155c36 100644
--- a/src/md5/Makefile.in
+++ b/src/md5/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,8 +80,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/md5
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -69,32 +97,81 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmd5_la_LIBADD =
 am_libmd5_la_OBJECTS = md5.lo gaia_md5.lo
 libmd5_la_OBJECTS = $(am_libmd5_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+md5_la_LIBADD =
+am_md5_la_OBJECTS = md5_la-md5.lo md5_la-gaia_md5.lo
+md5_la_OBJECTS = $(am_md5_la_OBJECTS)
+md5_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(md5_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libmd5_la_SOURCES)
-DIST_SOURCES = $(libmd5_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libmd5_la_SOURCES) $(md5_la_SOURCES)
+DIST_SOURCES = $(libmd5_la_SOURCES) $(md5_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -221,10 +298,15 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers -I.
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I.
 noinst_HEADERS = md5.h
-noinst_LTLIBRARIES = libmd5.la
+noinst_LTLIBRARIES = libmd5.la md5.la
 libmd5_la_SOURCES = md5.c gaia_md5.c
+md5_la_SOURCES = md5.c gaia_md5.c
+md5_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+md5_la_LDFLAGS = -module
+md5_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -271,8 +353,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libmd5.la: $(libmd5_la_OBJECTS) $(libmd5_la_DEPENDENCIES) $(EXTRA_libmd5_la_DEPENDENCIES) 
-	$(LINK)  $(libmd5_la_OBJECTS) $(libmd5_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libmd5_la_OBJECTS) $(libmd5_la_LIBADD) $(LIBS)
+
+md5.la: $(md5_la_OBJECTS) $(md5_la_DEPENDENCIES) $(EXTRA_md5_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(md5_la_LINK)  $(md5_la_OBJECTS) $(md5_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -282,27 +368,43 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gaia_md5.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/md5.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/md5_la-gaia_md5.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/md5_la-md5.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+md5_la-md5.lo: md5.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5_la-md5.lo -MD -MP -MF $(DEPDIR)/md5_la-md5.Tpo -c -o md5_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/md5_la-md5.Tpo $(DEPDIR)/md5_la-md5.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='md5.c' object='md5_la-md5.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+
+md5_la-gaia_md5.lo: gaia_md5.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5_la-gaia_md5.lo -MD -MP -MF $(DEPDIR)/md5_la-gaia_md5.Tpo -c -o md5_la-gaia_md5.lo `test -f 'gaia_md5.c' || echo '$(srcdir)/'`gaia_md5.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/md5_la-gaia_md5.Tpo $(DEPDIR)/md5_la-gaia_md5.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gaia_md5.c' object='md5_la-gaia_md5.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5_la-gaia_md5.lo `test -f 'gaia_md5.c' || echo '$(srcdir)/'`gaia_md5.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -310,26 +412,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -341,15 +432,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -358,9 +445,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -514,9 +602,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -526,7 +614,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/md5/gaia_md5.c b/src/md5/gaia_md5.c
index c71878c..835e4e4 100644
--- a/src/md5/gaia_md5.c
+++ b/src/md5/gaia_md5.c
@@ -65,7 +65,7 @@ gaiaCreateMD5Checksum (void)
 {
 /* Creates and initializes an MD5 checksum object */
     MD5_CTX *md5 = malloc (sizeof (MD5_CTX));
-    MD5_Init (md5);
+    splite_MD5_Init (md5);
     return md5;
 }
 
@@ -77,7 +77,7 @@ gaiaFreeMD5Checksum (void *p_md5)
     MD5_CTX *md5 = (MD5_CTX *) p_md5;
     if (md5 == NULL)
 	return;
-    MD5_Final (result, md5);
+    splite_MD5_Final (result, md5);
     free (md5);
 }
 
@@ -88,7 +88,7 @@ gaiaUpdateMD5Checksum (void *p_md5, const unsigned char *blob, int blob_len)
     MD5_CTX *md5 = (MD5_CTX *) p_md5;
     if (md5 == NULL || blob == NULL)
 	return;
-    MD5_Update (md5, (void *)blob, blob_len);
+    splite_MD5_Update (md5, (void *)blob, blob_len);
 }
 
 GAIAAUX_DECLARE char *
@@ -102,8 +102,8 @@ gaiaFinalizeMD5Checksum (void *p_md5)
     MD5_CTX *md5 = (MD5_CTX *) p_md5;
     if (md5 == NULL)
 	return NULL;
-    MD5_Final (result, md5);
-    MD5_Init (md5);
+    splite_MD5_Final (result, md5);
+    splite_MD5_Init (md5);
 /* formatting the MD5 checksum as hex-text */
     hex = malloc (33);
     *hex = '\0';
diff --git a/src/md5/md5.c b/src/md5/md5.c
index cb817da..656c145 100644
--- a/src/md5/md5.c
+++ b/src/md5/md5.c
@@ -203,7 +203,7 @@ static void *body(MD5_CTX *ctx, void *data, unsigned long size)
   (not externally visible outside libspatialite itself)
 */
 
-MD5_PRIVATE void MD5_Init(MD5_CTX *ctx)
+MD5_PRIVATE void splite_MD5_Init(MD5_CTX *ctx)
 {
 	ctx->a = 0x67452301;
 	ctx->b = 0xefcdab89;
@@ -214,7 +214,7 @@ MD5_PRIVATE void MD5_Init(MD5_CTX *ctx)
 	ctx->hi = 0;
 }
 
-MD5_PRIVATE void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size)
+MD5_PRIVATE void splite_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size)
 {
 	MD5_u32plus saved_lo;
 	unsigned long used, free;
@@ -248,7 +248,7 @@ MD5_PRIVATE void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size)
 	memcpy(ctx->buffer, data, size);
 }
 
-MD5_PRIVATE void MD5_Final(unsigned char *result, MD5_CTX *ctx)
+MD5_PRIVATE void splite_MD5_Final(unsigned char *result, MD5_CTX *ctx)
 {
 	unsigned long used, free;
 
diff --git a/src/md5/md5.h b/src/md5/md5.h
index 8aafeb0..de322a9 100644
--- a/src/md5/md5.h
+++ b/src/md5/md5.h
@@ -57,8 +57,8 @@ typedef struct {
 	MD5_u32plus block[16];
 } MD5_CTX;
 
-MD5_PRIVATE void MD5_Init(MD5_CTX *ctx);
-MD5_PRIVATE void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
-MD5_PRIVATE void MD5_Final(unsigned char *result, MD5_CTX *ctx);
+MD5_PRIVATE void splite_MD5_Init(MD5_CTX *ctx);
+MD5_PRIVATE void splite_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
+MD5_PRIVATE void splite_MD5_Final(unsigned char *result, MD5_CTX *ctx);
 
 #endif
diff --git a/src/shapefiles/Makefile.am b/src/shapefiles/Makefile.am
index 93709df..3c2f96a 100644
--- a/src/shapefiles/Makefile.am
+++ b/src/shapefiles/Makefile.am
@@ -1,9 +1,17 @@
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libshapefiles.la
+noinst_LTLIBRARIES = libshapefiles.la shapefiles.la
 
 libshapefiles_la_SOURCES = shapefiles.c validator.c
 
+shapefiles_la_SOURCES = shapefiles.c validator.c
+
+shapefiles_la_CPPFLAGS = @CFLAGS@
+shapefiles_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+shapefiles_la_CPPFLAGS += -DLOADABLE_EXTENSION
+shapefiles_la_LDFLAGS = -module
+shapefiles_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/shapefiles/Makefile.in b/src/shapefiles/Makefile.in
index aad0a3b..7e29bb1 100644
--- a/src/shapefiles/Makefile.in
+++ b/src/shapefiles/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/shapefiles
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -68,31 +96,82 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
 libshapefiles_la_LIBADD =
 am_libshapefiles_la_OBJECTS = shapefiles.lo validator.lo
 libshapefiles_la_OBJECTS = $(am_libshapefiles_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+shapefiles_la_LIBADD =
+am_shapefiles_la_OBJECTS = shapefiles_la-shapefiles.lo \
+	shapefiles_la-validator.lo
+shapefiles_la_OBJECTS = $(am_shapefiles_la_OBJECTS)
+shapefiles_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(shapefiles_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libshapefiles_la_SOURCES)
-DIST_SOURCES = $(libshapefiles_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libshapefiles_la_SOURCES) $(shapefiles_la_SOURCES)
+DIST_SOURCES = $(libshapefiles_la_SOURCES) $(shapefiles_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -219,9 +298,14 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libshapefiles.la
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libshapefiles.la shapefiles.la
 libshapefiles_la_SOURCES = shapefiles.c validator.c
+shapefiles_la_SOURCES = shapefiles.c validator.c
+shapefiles_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+shapefiles_la_LDFLAGS = -module
+shapefiles_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -268,8 +352,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libshapefiles.la: $(libshapefiles_la_OBJECTS) $(libshapefiles_la_DEPENDENCIES) $(EXTRA_libshapefiles_la_DEPENDENCIES) 
-	$(LINK)  $(libshapefiles_la_OBJECTS) $(libshapefiles_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libshapefiles_la_OBJECTS) $(libshapefiles_la_LIBADD) $(LIBS)
+
+shapefiles.la: $(shapefiles_la_OBJECTS) $(shapefiles_la_DEPENDENCIES) $(EXTRA_shapefiles_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(shapefiles_la_LINK)  $(shapefiles_la_OBJECTS) $(shapefiles_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -278,28 +366,44 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/shapefiles.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/shapefiles_la-shapefiles.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/shapefiles_la-validator.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/validator.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+shapefiles_la-shapefiles.lo: shapefiles.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapefiles_la-shapefiles.lo -MD -MP -MF $(DEPDIR)/shapefiles_la-shapefiles.Tpo -c -o shapefiles_la-shapefiles.lo `test -f 'shapefiles.c' || echo '$(srcdir)/'`shapefiles.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/shapefiles_la-shapefiles.Tpo $(DEPDIR)/shapefiles_la-shapefiles.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='shapefiles.c' object='shapefiles_la-shapefiles.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapefiles_la-shapefiles.lo `test -f 'shapefiles.c' || echo '$(srcdir)/'`shapefiles.c
+
+shapefiles_la-validator.lo: validator.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapefiles_la-validator.lo -MD -MP -MF $(DEPDIR)/shapefiles_la-validator.Tpo -c -o shapefiles_la-validator.lo `test -f 'validator.c' || echo '$(srcdir)/'`validator.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/shapefiles_la-validator.Tpo $(DEPDIR)/shapefiles_la-validator.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='validator.c' object='shapefiles_la-validator.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapefiles_la-validator.lo `test -f 'validator.c' || echo '$(srcdir)/'`validator.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -307,26 +411,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -338,15 +431,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -355,9 +444,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -511,9 +601,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -523,7 +613,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/shapefiles/shapefiles.c b/src/shapefiles/shapefiles.c
index 2c41b29..075a011 100644
--- a/src/shapefiles/shapefiles.c
+++ b/src/shapefiles/shapefiles.c
@@ -98,190 +98,204 @@ struct auxdbf_list
     struct auxdbf_fld *last;
 };
 
-struct dupl_column
+struct resultset_values
 {
-/* a column value in a duplicated row */
-    int pos;
-    char *name;
+/* a struct wrapping values from a resultset */
     int type;
     sqlite3_int64 int_value;
     double dbl_value;
-    const char *txt_value;
-    const void *blob;
-    int size;
-    int query_pos;
-    struct dupl_column *next;
+    unsigned char *txt_blob_value;
+    int txt_blob_size;
 };
 
-struct dupl_row
+struct resultset_comparator
 {
-/* a duplicated row with column values */
-    int count;
-    struct dupl_column *first;
-    struct dupl_column *last;
-    const char *table;
+/* object for comparing two rows of the same resultset */
+    struct resultset_values *previous;
+    struct resultset_values *current;
+    int num_columns;
+    sqlite3_int64 previous_rowid;
+    sqlite3_int64 current_rowid;
 };
 
-static void
-clean_dupl_row (struct dupl_row *str)
-{
-/* destroying a duplicated row struct */
-    struct dupl_column *p;
-    struct dupl_column *pn;
-    p = str->first;
-    while (p)
-      {
-	  pn = p->next;
-	  free (p->name);
-	  free (p);
-	  p = pn;
-      }
-}
-
-static void
-add_to_dupl_row (struct dupl_row *str, const char *name)
+static struct resultset_comparator *
+create_resultset_comparator (int columns)
 {
-/* adding a column to the duplicated row struct */
-    int len;
-    struct dupl_column *p = malloc (sizeof (struct dupl_column));
-    p->pos = str->count;
-    len = strlen (name);
-    p->name = malloc (len + 1);
-    strcpy (p->name, name);
-    str->count++;
-    p->type = SQLITE_NULL;
-    p->next = NULL;
-    if (str->first == NULL)
-	str->first = p;
-    if (str->last)
-	str->last->next = p;
-    str->last = p;
+/* creating an empty resultset comparator object */
+    int i;
+    struct resultset_comparator *p =
+	malloc (sizeof (struct resultset_comparator));
+    p->num_columns = columns;
+    p->previous_rowid = -1;
+    p->current_rowid = -1;
+    p->previous = malloc (sizeof (struct resultset_values) * columns);
+    p->current = malloc (sizeof (struct resultset_values) * columns);
+    for (i = 0; i < columns; i++)
+      {
+	  struct resultset_values *value = p->previous + i;
+	  value->type = SQLITE_NULL;
+	  value->txt_blob_value = NULL;
+	  value = p->current + i;
+	  value->type = SQLITE_NULL;
+	  value->txt_blob_value = NULL;
+      }
+    return p;
 }
 
 static void
-set_int_value (struct dupl_row *str, int pos, sqlite3_int64 value)
+destroy_resultset_comparator (struct resultset_comparator *ptr)
 {
-/* setting up an integer value */
-    struct dupl_column *p = str->first;
-    while (p)
-      {
-	  if (p->pos == pos)
-	    {
-		p->type = SQLITE_INTEGER;
-		p->int_value = value;
-		return;
-	    }
-	  p = p->next;
-      }
+/* memory cleanup - destroying a resultset comparator object */
+    int i;
+    if (ptr == NULL)
+	return;
+    for (i = 0; i < ptr->num_columns; i++)
+      {
+	  struct resultset_values *value = ptr->previous + i;
+	  if (value->txt_blob_value != NULL)
+	      free (value->txt_blob_value);
+	  value = ptr->current + i;
+	  if (value->txt_blob_value != NULL)
+	      free (value->txt_blob_value);
+      }
+    if (ptr->previous != NULL)
+	free (ptr->previous);
+    if (ptr->current != NULL)
+	free (ptr->current);
+    free (ptr);
 }
 
 static void
-set_double_value (struct dupl_row *str, int pos, double value)
+save_row_from_resultset (struct resultset_comparator *ptr, sqlite3_stmt * stmt)
 {
-/* setting up a double value */
-    struct dupl_column *p = str->first;
-    while (p)
+/* saving the current row values */
+    int i;
+    int size;
+    const unsigned char *p;
+    if (ptr == NULL)
+	return;
+    ptr->current_rowid = sqlite3_column_int64 (stmt, 0);
+    for (i = 0; i < ptr->num_columns; i++)
       {
-	  if (p->pos == pos)
+	  struct resultset_values *value = ptr->current + i;
+	  value->type = sqlite3_column_type (stmt, i + 1);
+	  switch (value->type)
 	    {
-		p->type = SQLITE_FLOAT;
-		p->dbl_value = value;
-		return;
-	    }
-	  p = p->next;
+	    case SQLITE_INTEGER:
+		value->int_value = sqlite3_column_int64 (stmt, i + 1);
+		break;
+	    case SQLITE_FLOAT:
+		value->dbl_value = sqlite3_column_double (stmt, i + 1);
+		break;
+	    case SQLITE_TEXT:
+		p = sqlite3_column_text (stmt, i + 1);
+		size = strlen ((const char *) p);
+		value->txt_blob_value = malloc (size + 1);
+		strcpy ((char *) (value->txt_blob_value), (const char *) p);
+		break;
+	    case SQLITE_BLOB:
+		p = sqlite3_column_blob (stmt, i + 1);
+		size = sqlite3_column_bytes (stmt, i + 1);
+		value->txt_blob_value = malloc (size);
+		memcpy (value->txt_blob_value, p, size);
+		value->txt_blob_size = size;
+		break;
+	    };
       }
 }
 
-static void
-set_text_value (struct dupl_row *str, int pos, const char *value)
+static int
+resultset_rows_equals (struct resultset_comparator *ptr)
 {
-/* setting up a text value */
-    struct dupl_column *p = str->first;
-    while (p)
+/* comparing the current and previous row from the resultset */
+    int i;
+    if (ptr == NULL)
+	return 0;
+    for (i = 0; i < ptr->num_columns; i++)
       {
-	  if (p->pos == pos)
+	  struct resultset_values *val_prev = ptr->previous + i;
+	  struct resultset_values *val_curr = ptr->current + i;
+	  if (val_prev->type != val_curr->type)
+	      return 0;
+	  switch (val_prev->type)
 	    {
-		p->type = SQLITE_TEXT;
-		p->txt_value = value;
-		return;
-	    }
-	  p = p->next;
+	    case SQLITE_INTEGER:
+		if (val_prev->int_value != val_curr->int_value)
+		    return 0;
+		break;
+	    case SQLITE_FLOAT:
+		if (val_prev->dbl_value != val_curr->dbl_value)
+		    return 0;
+		break;
+	    case SQLITE_TEXT:
+		if (strcmp
+		    ((const char *) (val_prev->txt_blob_value),
+		     (const char *) (val_curr->txt_blob_value)) != 0)
+		    return 0;
+		break;
+	    case SQLITE_BLOB:
+		if (val_prev->txt_blob_size != val_curr->txt_blob_size)
+		    return 0;
+		if (memcmp
+		    (val_prev->txt_blob_value, val_curr->txt_blob_value,
+		     val_curr->txt_blob_size) != 0)
+		    return 0;
+		break;
+	    };
       }
+    return 1;
 }
 
-static void
-set_blob_value (struct dupl_row *str, int pos, const void *blob, int size)
+static sqlite3_int64
+get_current_resultset_rowid (struct resultset_comparator *ptr)
 {
-/* setting up a blob value */
-    struct dupl_column *p = str->first;
-    while (p)
-      {
-	  if (p->pos == pos)
-	    {
-		p->type = SQLITE_BLOB;
-		p->blob = blob;
-		p->size = size;
-		return;
-	    }
-	  p = p->next;
-      }
+/* returns the current ROWID */
+    if (ptr == NULL)
+	return -1;
+    return ptr->current_rowid;
 }
 
 static void
-set_null_value (struct dupl_row *str, int pos)
+reset_resultset_current_row (struct resultset_comparator *ptr)
 {
-/* setting up a NULL value */
-    struct dupl_column *p = str->first;
-    while (p)
+/* resetting the resultset current row values */
+    int i;
+    if (ptr == NULL)
+	return;
+    ptr->current_rowid = -1;
+    for (i = 0; i < ptr->num_columns; i++)
       {
-	  if (p->pos == pos)
-	    {
-		p->type = SQLITE_NULL;
-		return;
-	    }
-	  p = p->next;
+	  struct resultset_values *value = ptr->current + i;
+	  value->type = SQLITE_NULL;
+	  if (value->txt_blob_value != NULL)
+	      free (value->txt_blob_value);
+	  value->txt_blob_value = NULL;
       }
 }
 
 static void
-reset_query_pos (struct dupl_row *str)
-{
-/* resetting QueryPos for BLOBs */
-    struct dupl_column *p = str->first;
-    while (p)
-      {
-	  p->query_pos = -1;
-	  p = p->next;
-      }
-}
-
-static int
-check_dupl_blob2 (struct dupl_column *ptr, const void *blob, int size)
+swap_resultset_rows (struct resultset_comparator *ptr)
 {
-/* checking a BLOB value */
-    if (ptr->type != SQLITE_BLOB)
-	return 0;
-    if (ptr->size != size)
-	return 0;
-    if (memcmp (ptr->blob, blob, size) != 0)
-	return 0;
-    return 1;
-}
-
-static int
-check_dupl_blob (struct dupl_row *str, int pos, const void *blob, int size)
-{
-/* checking a BLOB value */
-    struct dupl_column *p = str->first;
-    while (p)
-      {
-	  if (p->query_pos == pos)
-	    {
-		return check_dupl_blob2 (p, blob, size);
-	    }
-	  p = p->next;
+/* resetting the resultset comparator */
+    int i;
+    if (ptr == NULL)
+	return;
+    ptr->previous_rowid = ptr->current_rowid;
+    ptr->current_rowid = -1;
+    for (i = 0; i < ptr->num_columns; i++)
+      {
+	  struct resultset_values *val_prev = ptr->previous + i;
+	  struct resultset_values *val_curr = ptr->current + i;
+	  if (val_prev->txt_blob_value != NULL)
+	      free (val_prev->txt_blob_value);
+	  val_prev->type = val_curr->type;
+	  val_prev->int_value = val_curr->int_value;
+	  val_prev->dbl_value = val_curr->dbl_value;
+	  val_prev->txt_blob_value = val_curr->txt_blob_value;
+	  val_prev->txt_blob_size = val_curr->txt_blob_size;
+	  val_curr->type = SQLITE_NULL;
+	  val_curr->txt_blob_value = NULL;
       }
-    return 0;
 }
 
 static struct auxdbf_list *
@@ -1092,9 +1106,8 @@ load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset,
 		      if (pk_type == SQLITE_TEXT)
 			  sqlite3_bind_text (stmt, 1,
 					     dbf_field->Value->TxtValue,
-					     strlen (dbf_field->
-						     Value->TxtValue),
-					     SQLITE_STATIC);
+					     strlen (dbf_field->Value->
+						     TxtValue), SQLITE_STATIC);
 		      else if (pk_type == SQLITE_FLOAT)
 			  sqlite3_bind_double (stmt, 1,
 					       dbf_field->Value->DblValue);
@@ -1135,8 +1148,8 @@ load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset,
 			case GAIA_TEXT_VALUE:
 			    sqlite3_bind_text (stmt, cnt + 2,
 					       dbf_field->Value->TxtValue,
-					       strlen (dbf_field->Value->
-						       TxtValue),
+					       strlen (dbf_field->
+						       Value->TxtValue),
 					       SQLITE_STATIC);
 			    break;
 			default:
@@ -1259,7 +1272,8 @@ output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column)
 
 /* step I: retrieving the SRID */
     sql = sqlite3_mprintf ("SELECT srid FROM geometry_columns WHERE "
-			   "f_table_name = %Q AND f_geometry_column = %Q",
+			   "Lower(f_table_name) = Lower(%Q) AND "
+			   "Lower(f_geometry_column) = Lower(%Q)",
 			   table, column);
     ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg);
     sqlite3_free (sql);
@@ -1279,7 +1293,8 @@ output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column)
 	  /* srid still undefined, so we'll read VIEWS_GEOMETRY_COLUMNS */
 	  sql = sqlite3_mprintf ("SELECT srid FROM views_geometry_columns "
 				 "JOIN geometry_columns USING (f_table_name, f_geometry_column) "
-				 "WHERE view_name = %Q AND view_geometry = %Q",
+				 "WHERE Lower(view_name) = Lower(%Q) AND "
+				 "Lower(view_geometry) = Lower(%Q)",
 				 table, column);
 	  ret =
 	      sqlite3_get_table (sqlite, sql, &results, &rows, &columns,
@@ -1542,10 +1557,15 @@ compute_max_int_length (sqlite3_int64 min, sqlite3_int64 max)
     int pos_len = 0;
     int neg_len = 1;
     sqlite3_int64 value = max;
-    while (value != 0)
+    if (value == 0)
+	pos_len = 1;
+    else
       {
-	  pos_len++;
-	  value /= 10;
+	  while (value != 0)
+	    {
+		pos_len++;
+		value /= 10;
+	    }
       }
     if (min >= 0)
 	return pos_len;
@@ -3539,9 +3559,8 @@ load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column,
 		      if (pk_type == SQLITE_TEXT)
 			  sqlite3_bind_text (stmt, 1,
 					     dbf_field->Value->TxtValue,
-					     strlen (dbf_field->
-						     Value->TxtValue),
-					     SQLITE_STATIC);
+					     strlen (dbf_field->Value->
+						     TxtValue), SQLITE_STATIC);
 		      else if (pk_type == SQLITE_FLOAT)
 			  sqlite3_bind_double (stmt, 1,
 					       dbf_field->Value->DblValue);
@@ -3583,8 +3602,8 @@ load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column,
 			case GAIA_TEXT_VALUE:
 			    sqlite3_bind_text (stmt, cnt + 2,
 					       dbf_field->Value->TxtValue,
-					       strlen (dbf_field->Value->
-						       TxtValue),
+					       strlen (dbf_field->
+						       Value->TxtValue),
 					       SQLITE_STATIC);
 			    break;
 			default:
@@ -4272,7 +4291,6 @@ check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count)
 	gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer);
     gaiaOutBufferReset (&col_list);
     gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1");
-    gaiaAppendToOutBuffer (&sql_statement, "\nORDER BY \"[dupl-count]\" DESC");
     if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
       {
 	  ret =
@@ -4311,205 +4329,36 @@ check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count)
 }
 
 static int
-do_delete_duplicates2 (sqlite3 * sqlite, sqlite3_stmt * stmt1,
-		       struct dupl_row *value_list, int *count)
+do_delete_duplicates2 (sqlite3 * sqlite, sqlite3_int64 rowid,
+		       sqlite3_stmt * stmt1)
 {
 /* deleting duplicate rows [actual delete] */
-    int cnt = 0;
-    int row_no = 0;
-    char *sql;
-    char *xname;
     int ret;
-    sqlite3_stmt *stmt2 = NULL;
-    struct dupl_column *col;
-    int first = 1;
-    int qcnt = 0;
-    int param = 1;
-    int match;
-    int n_cols;
-    int col_no;
-    gaiaOutBuffer sql_statement;
-    gaiaOutBuffer where;
-    gaiaOutBuffer condition;
-
-    *count = 0;
-    reset_query_pos (value_list);
-    gaiaOutBufferInitialize (&sql_statement);
-    gaiaOutBufferInitialize (&where);
-    gaiaOutBufferInitialize (&condition);
 
-/* preparing the query statement */
-    gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID");
-    gaiaAppendToOutBuffer (&where, "\nWHERE ");
-    col = value_list->first;
-    while (col)
-      {
-	  if (col->type == SQLITE_BLOB)
-	    {
-		sql = sqlite3_mprintf (", %s", col->name);
-		gaiaAppendToOutBuffer (&sql_statement, sql);
-		sqlite3_free (sql);
-		col->query_pos = qcnt++;
-	    }
-	  else if (col->type == SQLITE_NULL)
-	    {
-		if (first)
-		  {
-		      first = 0;
-		      sql = sqlite3_mprintf ("%s", col->name);
-		      gaiaAppendToOutBuffer (&condition, sql);
-		      sqlite3_free (sql);
-		  }
-		else
-		  {
-		      sql = sqlite3_mprintf (" AND %s", col->name);
-		      gaiaAppendToOutBuffer (&condition, sql);
-		      sqlite3_free (sql);
-		  }
-		gaiaAppendToOutBuffer (&condition, " IS NULL");
-		gaiaAppendToOutBuffer (&where, condition.Buffer);
-		gaiaOutBufferReset (&condition);
-	    }
-	  else
-	    {
-		if (first)
-		  {
-		      first = 0;
-		      sql = sqlite3_mprintf ("%s", col->name);
-		      gaiaAppendToOutBuffer (&condition, sql);
-		      sqlite3_free (sql);
-		  }
-		else
-		  {
-		      sql = sqlite3_mprintf (" AND %s", col->name);
-		      gaiaAppendToOutBuffer (&condition, sql);
-		      sqlite3_free (sql);
-		  }
-		gaiaAppendToOutBuffer (&condition, " = ?");
-		gaiaAppendToOutBuffer (&where, condition.Buffer);
-		gaiaOutBufferReset (&condition);
-		col->query_pos = param++;
-	    }
-	  col = col->next;
-      }
-    xname = gaiaDoubleQuotedSql (value_list->table);
-    sql = sqlite3_mprintf ("\nFROM \"%s\"", xname);
-    free (xname);
-    gaiaAppendToOutBuffer (&sql_statement, sql);
-    sqlite3_free (sql);
-    gaiaAppendToOutBuffer (&sql_statement, where.Buffer);
-    gaiaOutBufferReset (&where);
-
-    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
-	ret =
-	    sqlite3_prepare_v2 (sqlite, sql_statement.Buffer,
-				strlen (sql_statement.Buffer), &stmt2, NULL);
+    sqlite3_reset (stmt1);
+    sqlite3_clear_bindings (stmt1);
+    sqlite3_bind_int64 (stmt1, 1, rowid);
+    ret = sqlite3_step (stmt1);
+    if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+	;
     else
-	ret = SQLITE_ERROR;
-    gaiaOutBufferReset (&sql_statement);
-    if (ret != SQLITE_OK)
       {
 	  spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite));
-	  goto error;
-      }
-
-    sqlite3_reset (stmt2);
-    sqlite3_clear_bindings (stmt2);
-    col = value_list->first;
-    while (col)
-      {
-	  /* binding query params */
-	  if (col->type == SQLITE_INTEGER)
-	      sqlite3_bind_int64 (stmt2, col->query_pos, col->int_value);
-	  if (col->type == SQLITE_FLOAT)
-	      sqlite3_bind_double (stmt2, col->query_pos, col->dbl_value);
-	  if (col->type == SQLITE_TEXT)
-	      sqlite3_bind_text (stmt2, col->query_pos, col->txt_value,
-				 strlen (col->txt_value), SQLITE_STATIC);
-	  col = col->next;
-      }
-
-    while (1)
-      {
-	  /* fetching the result set rows */
-	  ret = sqlite3_step (stmt2);
-	  if (ret == SQLITE_DONE)
-	      break;		/* end of result set */
-	  if (ret == SQLITE_ROW)
-	    {
-		/* fetching a row */
-		match = 1;
-		n_cols = sqlite3_column_count (stmt2);
-		for (col_no = 1; col_no < n_cols; col_no++)
-		  {
-		      /* checking blob columns */
-		      if (sqlite3_column_type (stmt2, col_no) == SQLITE_BLOB)
-			{
-			    const void *blob =
-				sqlite3_column_blob (stmt2, col_no);
-			    int blob_size =
-				sqlite3_column_bytes (stmt2, col_no);
-			    if (check_dupl_blob
-				(value_list, col_no - 1, blob, blob_size) == 0)
-				match = 0;
-			}
-		      else
-			  match = 0;
-		      if (match == 0)
-			  break;
-		  }
-		if (match == 0)
-		    continue;
-		row_no++;
-		if (row_no > 1)
-		  {
-		      /* deleting any duplicated row except the first one */
-		      sqlite3_reset (stmt1);
-		      sqlite3_clear_bindings (stmt1);
-		      sqlite3_bind_int64 (stmt1, 1,
-					  sqlite3_column_int64 (stmt2, 0));
-		      ret = sqlite3_step (stmt1);
-		      if (ret == SQLITE_DONE || ret == SQLITE_ROW)
-			  cnt++;
-		      else
-			{
-			    spatialite_e ("SQL error: %s\n",
-					  sqlite3_errmsg (sqlite));
-			    goto error;
-			}
-		  }
-	    }
-	  else
-	    {
-		spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite));
-		goto error;
-	    }
+	  return 0;
       }
-    if (stmt2)
-	sqlite3_finalize (stmt2);
-    *count = cnt;
     return 1;
-
-  error:
-    if (stmt2)
-	sqlite3_finalize (stmt2);
-    *count = 0;
-
-    return 0;
 }
 
 static int
 do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2,
-		      struct dupl_row *value_list, int *count)
+		      int *count)
 {
 /* deleting duplicate rows */
+    struct resultset_comparator *rs_obj = NULL;
     sqlite3_stmt *stmt1 = NULL;
     sqlite3_stmt *stmt2 = NULL;
     int ret;
-    int xcnt;
     int cnt = 0;
-    int n_cols;
-    int col_no;
     char *sql_err = NULL;
 
     *count = 0;
@@ -4537,6 +4386,7 @@ do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2,
 	  goto error;
       }
 
+    rs_obj = create_resultset_comparator (sqlite3_column_count (stmt1) - 1);
     while (1)
       {
 	  /* fetching the result set rows */
@@ -4546,52 +4396,31 @@ do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2,
 	  if (ret == SQLITE_ROW)
 	    {
 		/* fetching a row */
-		sqlite3_reset (stmt2);
-		sqlite3_clear_bindings (stmt2);
-		n_cols = sqlite3_column_count (stmt1);
-		for (col_no = 1; col_no < n_cols; col_no++)
+		save_row_from_resultset (rs_obj, stmt1);
+		if (resultset_rows_equals (rs_obj))
 		  {
-		      /* saving column values */
-		      if (sqlite3_column_type (stmt1, col_no) == SQLITE_INTEGER)
-			  set_int_value (value_list, col_no - 1,
-					 sqlite3_column_int64 (stmt1, col_no));
-		      if (sqlite3_column_type (stmt1, col_no) == SQLITE_FLOAT)
-			  set_double_value (value_list, col_no - 1,
-					    sqlite3_column_double (stmt1,
-								   col_no));
-		      if (sqlite3_column_type (stmt1, col_no) == SQLITE_TEXT)
-			{
-			    const char *xtext =
-				(const char *) sqlite3_column_text (stmt1,
-								    col_no);
-			    set_text_value (value_list, col_no - 1, xtext);
-			}
-		      if (sqlite3_column_type (stmt1, col_no) == SQLITE_BLOB)
+		      if (do_delete_duplicates2
+			  (sqlite, get_current_resultset_rowid (rs_obj), stmt2))
 			{
-			    const void *blob =
-				sqlite3_column_blob (stmt1, col_no);
-			    int blob_size =
-				sqlite3_column_bytes (stmt1, col_no);
-			    set_blob_value (value_list, col_no - 1, blob,
-					    blob_size);
+			    cnt += 1;
+			    reset_resultset_current_row (rs_obj);
+			    continue;
 			}
-		      if (sqlite3_column_type (stmt1, col_no) == SQLITE_NULL)
-			  set_null_value (value_list, col_no - 1);
+		      else
+			  goto error;
 		  }
-		if (do_delete_duplicates2 (sqlite, stmt2, value_list, &xcnt))
-		    cnt += xcnt;
-		else
-		    goto error;
 	    }
 	  else
 	    {
 		spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite));
 		goto error;
 	    }
+	  swap_resultset_rows (rs_obj);
       }
 
     sqlite3_finalize (stmt1);
     sqlite3_finalize (stmt2);
+    destroy_resultset_comparator (rs_obj);
 
 /* confirm the still pending Transaction */
     ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &sql_err);
@@ -4625,10 +4454,9 @@ do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2,
 }
 
 SPATIALITE_DECLARE void
-remove_duplicated_rows (sqlite3 * sqlite, char *table)
+remove_duplicated_rows_ex (sqlite3 * sqlite, char *table, int *removed)
 {
 /* attempting to delete Duplicate rows from a table */
-    struct dupl_row value_list;
     char *sql;
     char *sql2;
     int first = 1;
@@ -4644,10 +4472,8 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table)
     gaiaOutBuffer sql_statement;
     gaiaOutBuffer col_list;
 
-    value_list.count = 0;
-    value_list.first = NULL;
-    value_list.last = NULL;
-    value_list.table = table;
+    if (removed != NULL)
+	*removed = 0;
 
     if (is_table (sqlite, table) == 0)
       {
@@ -4685,7 +4511,6 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table)
 		      sql = sqlite3_mprintf ("\"%s\"", xname);
 		      free (xname);
 		      gaiaAppendToOutBuffer (&col_list, sql);
-		      add_to_dupl_row (&value_list, sql);
 		      sqlite3_free (sql);
 		  }
 	    }
@@ -4693,19 +4518,18 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table)
     sqlite3_free_table (results);
 /* preparing the SQL statement (identifying duplicated rows) */
     gaiaOutBufferInitialize (&sql_statement);
-    gaiaAppendToOutBuffer (&sql_statement,
-			   "SELECT Count(*) AS \"[dupl-count]\", ");
+    gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID, ");
     if (col_list.Error == 0 && col_list.Buffer != NULL)
 	gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer);
     xname = gaiaDoubleQuotedSql (table);
-    sql = sqlite3_mprintf ("\nFROM \"%s\"\nGROUP BY ", xname);
+    sql = sqlite3_mprintf ("\nFROM \"%s\"\nORDER BY ", xname);
     free (xname);
     gaiaAppendToOutBuffer (&sql_statement, sql);
     sqlite3_free (sql);
     if (col_list.Error == 0 && col_list.Buffer != NULL)
 	gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer);
     gaiaOutBufferReset (&col_list);
-    gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1");
+    gaiaAppendToOutBuffer (&sql_statement, ", ROWID");
 /* preparing the SQL statement [delete] */
     xname = gaiaDoubleQuotedSql (table);
     sql2 = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = ?", xname);
@@ -4715,17 +4539,28 @@ remove_duplicated_rows (sqlite3 * sqlite, char *table)
 	sql = sql_statement.Buffer;
     else
 	sql = "NULL-SELECT";
-    if (do_delete_duplicates (sqlite, sql, sql2, &value_list, &count))
+    if (do_delete_duplicates (sqlite, sql, sql2, &count))
       {
-	  if (!count)
-	      spatialite_e ("No duplicated rows have been identified\n");
+	  if (removed == NULL)
+	    {
+		if (!count)
+		    spatialite_e ("No duplicated rows have been identified\n");
+		else
+		    spatialite_e ("%d duplicated rows deleted from: %s\n",
+				  count, table);
+	    }
 	  else
-	      spatialite_e ("%d duplicated rows deleted from: %s\n", count,
-			    table);
+	      *removed = count;
       }
     gaiaOutBufferReset (&sql_statement);
     sqlite3_free (sql2);
-    clean_dupl_row (&value_list);
+}
+
+SPATIALITE_DECLARE void
+remove_duplicated_rows (sqlite3 * sqlite, char *table)
+{
+/* attempting to delete Duplicate rows from a table */
+    remove_duplicated_rows_ex (sqlite, table, NULL);
 }
 
 static int
@@ -5881,8 +5716,8 @@ load_XL (sqlite3 * sqlite, const char *path, const char *table,
 						     cell.value.int_value);
 			    else if (cell.type == FREEXL_CELL_DOUBLE)
 				dummy = sqlite3_mprintf ("%1.2f ",
-							 cell.
-							 value.double_value);
+							 cell.value.
+							 double_value);
 			    else if (cell.type == FREEXL_CELL_TEXT
 				     || cell.type == FREEXL_CELL_SST_TEXT
 				     || cell.type == FREEXL_CELL_DATE
@@ -5893,8 +5728,8 @@ load_XL (sqlite3 * sqlite, const char *path, const char *table,
 				  if (len < 256)
 				      dummy =
 					  sqlite3_mprintf ("%s",
-							   cell.
-							   value.text_value);
+							   cell.value.
+							   text_value);
 				  else
 				      dummy = sqlite3_mprintf ("col_%d", col);
 			      }
diff --git a/src/shapefiles/validator.c b/src/shapefiles/validator.c
index d15cf46..d7a9b08 100644
--- a/src/shapefiles/validator.c
+++ b/src/shapefiles/validator.c
@@ -1667,11 +1667,13 @@ update_repaired (sqlite3 * sqlite, const char *table, const char *geometry,
     return;
 }
 
-SPATIALITE_DECLARE int
-sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
-			  const char *tmp_table, const char *report_path,
-			  int *n_invalids, int *n_repaired, int *n_discarded,
-			  int *n_failures, char **err_msg)
+static int
+sanitize_geometry_column_common (const void *p_cache, sqlite3 * sqlite,
+				 const char *table, const char *geom,
+				 const char *tmp_table, const char *report_path,
+				 int *n_invalids, int *n_repaired,
+				 int *n_discarded, int *n_failures,
+				 char **err_msg)
 {
 /* attempts to repair invalid Geometries from a Geometry Column */
     char *sql;
@@ -1704,7 +1706,7 @@ sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
 
     if (!check_table_column (sqlite, table, geom, &gtype, &srid))
       {
-	  spatialite_e ("sanitize_geometry_column error: <%s>\n"
+	  spatialite_e ("sanitize_geometry_column error: <%s><%s>\n"
 			"Not defined in \"geometry_columns\"", table, geom);
 	  if (err_msg != NULL)
 	    {
@@ -1977,8 +1979,18 @@ sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
 		if (geom)
 		  {
 		      /* checking a geometry for validity */
-		      gaiaResetGeosMsg ();
-		      if (!gaiaIsValid (geom))
+		      int valret;
+		      if (p_cache != NULL)
+			{
+			    gaiaResetGeosMsg_r (p_cache);
+			    valret = gaiaIsValid_r (p_cache, geom);
+			}
+		      else
+			{
+			    gaiaResetGeosMsg ();
+			    valret = gaiaIsValid (geom);
+			}
+		      if (!valret)
 			{
 			    unsigned char *blob_geom;
 			    int blob_sz_geom;
@@ -2399,10 +2411,35 @@ sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
 }
 
 SPATIALITE_DECLARE int
-sanitize_all_geometry_columns (sqlite3 * sqlite,
-			       const char *tmp_prefix,
-			       const char *output_dir, int *x_not_repaired,
-			       char **err_msg)
+sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
+			  const char *tmp_table, const char *report_path,
+			  int *n_invalids, int *n_repaired, int *n_discarded,
+			  int *n_failures, char **err_msg)
+{
+    return sanitize_geometry_column_common (NULL, sqlite, table, geom,
+					    tmp_table, report_path, n_invalids,
+					    n_repaired, n_discarded, n_failures,
+					    err_msg);
+}
+
+SPATIALITE_DECLARE int
+sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite,
+			    const char *table, const char *geom,
+			    const char *tmp_table, const char *report_path,
+			    int *n_invalids, int *n_repaired, int *n_discarded,
+			    int *n_failures, char **err_msg)
+{
+    return sanitize_geometry_column_common (p_cache, sqlite, table, geom,
+					    tmp_table, report_path, n_invalids,
+					    n_repaired, n_discarded, n_failures,
+					    err_msg);
+}
+
+static int
+sanitize_all_geometry_columns_common (const void *p_cache, sqlite3 * sqlite,
+				      const char *tmp_prefix,
+				      const char *output_dir,
+				      int *x_not_repaired, char **err_msg)
 {
 /* attempts to repair invalid Geometries from all Geometry Columns */
     const char *sql;
@@ -2566,11 +2603,20 @@ sanitize_all_geometry_columns (sqlite3 * sqlite,
 		report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i);
 		tmp_table =
 		    sqlite3_mprintf ("%s%s_%s", tmp_prefix, table, geom);
-		ret =
-		    sanitize_geometry_column (sqlite, table, geom, tmp_table,
-					      report, &n_invalids, &n_repaired,
-					      &n_discarded, &n_failures,
-					      err_msg);
+		if (p_cache != NULL)
+		    ret =
+			sanitize_geometry_column_r (p_cache, sqlite, table,
+						    geom, tmp_table, report,
+						    &n_invalids, &n_repaired,
+						    &n_discarded, &n_failures,
+						    err_msg);
+		else
+		    ret =
+			sanitize_geometry_column (sqlite, table, geom,
+						  tmp_table, report,
+						  &n_invalids, &n_repaired,
+						  &n_discarded, &n_failures,
+						  err_msg);
 		sqlite3_free (report);
 		sqlite3_free (tmp_table);
 		fprintf (out,
@@ -2635,6 +2681,28 @@ sanitize_all_geometry_columns (sqlite3 * sqlite,
     return 0;
 }
 
+SPATIALITE_DECLARE int
+sanitize_all_geometry_columns (sqlite3 * sqlite,
+			       const char *tmp_prefix,
+			       const char *output_dir, int *x_not_repaired,
+			       char **err_msg)
+{
+    return sanitize_all_geometry_columns_common (NULL, sqlite, tmp_prefix,
+						 output_dir, x_not_repaired,
+						 err_msg);
+}
+
+SPATIALITE_DECLARE int
+sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite,
+				 const char *tmp_prefix,
+				 const char *output_dir, int *x_not_repaired,
+				 char **err_msg)
+{
+    return sanitize_all_geometry_columns_common (p_cache, sqlite, tmp_prefix,
+						 output_dir, x_not_repaired,
+						 err_msg);
+}
+
 #else /* LIBXML2 isn't enabled */
 
 SPATIALITE_DECLARE int
@@ -2662,6 +2730,30 @@ sanitize_all_geometry_columns (sqlite3 * sqlite,
 }
 
 SPATIALITE_DECLARE int
+sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite,
+				 const char *tmp_prefix,
+				 const char *output_dir, int *x_not_repaired,
+				 char **err_msg)
+{
+/* LWGEOM isn't enabled: always returning an error */
+    int len;
+    const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n"
+	"and is thus unable to support MakeValid";
+
+/* silencing stupid compiler warnings */
+    if (p_cache == NULL || sqlite == NULL || tmp_prefix == NULL
+	|| output_dir == NULL || x_not_repaired == NULL)
+	tmp_prefix = NULL;
+
+    if (err_msg == NULL)
+	return 0;
+    len = strlen (msg);
+    *err_msg = malloc (len + 1);
+    strcpy (*err_msg, msg);
+    return 0;
+}
+
+SPATIALITE_DECLARE int
 sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
 			  const char *tmp_table, const char *report_path,
 			  int *n_invalids, int *n_repaired, int *n_discarded,
@@ -2687,6 +2779,33 @@ sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
     return 0;
 }
 
+SPATIALITE_DECLARE int
+sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite,
+			    const char *table, const char *geom,
+			    const char *tmp_table, const char *report_path,
+			    int *n_invalids, int *n_repaired, int *n_discarded,
+			    int *n_failures, char **err_msg)
+{
+/* LWGEOM isn't enabled: always returning an error */
+    int len;
+    const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n"
+	"and is thus unable to support MakeValid";
+
+/* silencing stupid compiler warnings */
+    if (p_cache == NULL || sqlite == NULL || table == NULL || geom == NULL
+	|| tmp_table == NULL || report_path == NULL || n_invalids == NULL
+	|| n_repaired == NULL || n_discarded == NULL || n_failures == NULL)
+	table = NULL;
+
+
+    if (err_msg == NULL)
+	return 0;
+    len = strlen (msg);
+    *err_msg = malloc (len + 1);
+    strcpy (*err_msg, msg);
+    return 0;
+}
+
 #endif /* end LWGEOM conditionals */
 
 
@@ -2773,10 +2892,11 @@ addMessageToValidityReport (struct validity_report *report, sqlite3_int64 rowid,
     report->last = r;
 }
 
-SPATIALITE_DECLARE int
-check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
-		       const char *report_path, int *n_rows, int *n_invalids,
-		       char **err_msg)
+static int
+check_geometry_column_common (const void *p_cache, sqlite3 * sqlite,
+			      const char *table, const char *geom,
+			      const char *report_path, int *n_rows,
+			      int *n_invalids, char **err_msg)
 {
 /* checks a Geometry Column for validity */
     char *sql;
@@ -3011,11 +3131,22 @@ check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
 		      const char *error;
 		      const char *warning;
 		      const char *extra;
-		      gaiaResetGeosMsg ();
-		      valid = gaiaIsValid (geom);
-		      error = gaiaGetGeosErrorMsg ();
-		      warning = gaiaGetGeosWarningMsg ();
-		      extra = gaiaGetGeosAuxErrorMsg ();
+		      if (p_cache != NULL)
+			{
+			    gaiaResetGeosMsg_r (p_cache);
+			    valid = gaiaIsValid_r (p_cache, geom);
+			    error = gaiaGetGeosErrorMsg_r (p_cache);
+			    warning = gaiaGetGeosWarningMsg_r (p_cache);
+			    extra = gaiaGetGeosAuxErrorMsg_r (p_cache);
+			}
+		      else
+			{
+			    gaiaResetGeosMsg ();
+			    valid = gaiaIsValid (geom);
+			    error = gaiaGetGeosErrorMsg ();
+			    warning = gaiaGetGeosWarningMsg ();
+			    extra = gaiaGetGeosAuxErrorMsg ();
+			}
 		      if (!valid || error || warning)
 			  addMessageToValidityReport (report, rowid, valid,
 						      error, warning, extra);
@@ -3282,9 +3413,29 @@ check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
 }
 
 SPATIALITE_DECLARE int
-check_all_geometry_columns (sqlite3 * sqlite,
-			    const char *output_dir, int *x_invalids,
-			    char **err_msg)
+check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom,
+		       const char *report_path, int *n_rows, int *n_invalids,
+		       char **err_msg)
+{
+    return check_geometry_column_common (NULL, sqlite, table, geom, report_path,
+					 n_rows, n_invalids, err_msg);
+}
+
+SPATIALITE_DECLARE int
+check_geometry_column_r (const void *p_cache, sqlite3 * sqlite,
+			 const char *table, const char *geom,
+			 const char *report_path, int *n_rows, int *n_invalids,
+			 char **err_msg)
+{
+    return check_geometry_column_common (p_cache, sqlite, table, geom,
+					 report_path, n_rows, n_invalids,
+					 err_msg);
+}
+
+static int
+check_all_geometry_columns_common (const void *p_cache, sqlite3 * sqlite,
+				   const char *output_dir, int *x_invalids,
+				   char **err_msg)
 {
 /* checks all Geometry Columns for validity */
     const char *sql;
@@ -3432,9 +3583,15 @@ check_all_geometry_columns (sqlite3 * sqlite,
 		const char *table = results[(i * columns) + 0];
 		const char *geom = results[(i * columns) + 1];
 		report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i);
-		ret =
-		    check_geometry_column (sqlite, table, geom, report, &n_rows,
-					   &n_invalids, err_msg);
+		if (p_cache != NULL)
+		    ret =
+			check_geometry_column_r (p_cache, sqlite, table, geom,
+						 report, &n_rows, &n_invalids,
+						 err_msg);
+		else
+		    ret =
+			check_geometry_column (sqlite, table, geom, report,
+					       &n_rows, &n_invalids, err_msg);
 		sqlite3_free (report);
 		fprintf (out,
 			 "\t\t\t<tr><td align=\"center\"><a href=\"./lyr_%04d.html\">show</a></td>",
@@ -3472,6 +3629,23 @@ check_all_geometry_columns (sqlite3 * sqlite,
     return 0;
 }
 
+SPATIALITE_DECLARE int
+check_all_geometry_columns (sqlite3 * sqlite,
+			    const char *output_dir, int *x_invalids,
+			    char **err_msg)
+{
+    return check_all_geometry_columns_common (NULL, sqlite, output_dir,
+					      x_invalids, err_msg);
+}
+
+SPATIALITE_DECLARE int
+check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite,
+			      const char *output_dir, int *x_invalids,
+			      char **err_msg)
+{
+    return check_all_geometry_columns_common (p_cache, sqlite, output_dir,
+					      x_invalids, err_msg);
+}
 
 #else
 
@@ -3497,6 +3671,28 @@ check_all_geometry_columns (sqlite3 * sqlite,
 }
 
 SPATIALITE_DECLARE int
+check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite,
+			      const char *output_dir, int *x_invalids,
+			      char **err_msg)
+{
+/* GEOS isn't enabled: always returning an error */
+    int len;
+    const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n"
+	"and is thus unable to support IsValid";
+/* silencing stupid compiler warnings */
+    if (p_cache == NULL || sqlite == NULL || output_dir == NULL
+	|| x_invalids == NULL)
+	output_dir = NULL;
+
+    if (err_msg == NULL)
+	return 0;
+    len = strlen (msg);
+    *err_msg = malloc (len + 1);
+    strcpy (*err_msg, msg);
+    return 0;
+}
+
+SPATIALITE_DECLARE int
 check_geometry_column (sqlite3 * sqlite,
 		       const char *table,
 		       const char *geom,
@@ -3510,7 +3706,32 @@ check_geometry_column (sqlite3 * sqlite,
 
 /* silencing stupid compiler warnings */
     if (sqlite == NULL || table == NULL || geom == NULL ||
-	||report_path == NULL || n_rows == NULL || n_invalids == NULL)
+	report_path == NULL || n_rows == NULL || n_invalids == NULL)
+	table = NULL;
+
+    if (err_msg == NULL)
+	return 0;
+    len = strlen (msg);
+    *err_msg = malloc (len + 1);
+    strcpy (*err_msg, msg);
+    return 0;
+}
+
+SPATIALITE_DECLARE int
+check_geometry_column_r (const void *p_cache, sqlite3 * sqlite,
+			 const char *table,
+			 const char *geom,
+			 const char *report_path,
+			 int *n_rows, int *n_invalids, char **err_msg)
+{
+/* GEOS isn't enabled: always returning an error */
+    int len;
+    const char *msg = "Sorry ... libspatialite was built disabling GEOS\n"
+	"and is thus unable to support IsValid";
+
+/* silencing stupid compiler warnings */
+    if (p_cache == NULL || sqlite == NULL || table == NULL || geom == NULL ||
+	report_path == NULL || n_rows == NULL || n_invalids == NULL)
 	table = NULL;
 
     if (err_msg == NULL)
diff --git a/src/spatialite/Makefile.am b/src/spatialite/Makefile.am
index 4733a92..a87ad04 100644
--- a/src/spatialite/Makefile.am
+++ b/src/spatialite/Makefile.am
@@ -1,10 +1,10 @@
 
-INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libsplite.la
+noinst_LTLIBRARIES = libsplite.la splite.la
 
-libsplite_la_SOURCES = mbrcache.c \
+SPATIALITE_COMMON_SOURCES = mbrcache.c \
 	spatialite.c \
 	spatialite_init.c \
 	metatables.c \
@@ -13,11 +13,24 @@ libsplite_la_SOURCES = mbrcache.c \
 	virtualdbf.c \
 	virtualXL.c \
 	virtualfdo.c \
+	virtualgpkg.c \
+	virtualbbox.c \
 	virtualspatialindex.c \
 	virtualnetwork.c \
 	virtualshape.c \
 	virtualxpath.c
 
+libsplite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES)
+
 libsplite_la_CFLAGS = -fvisibility=hidden
 
+splite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES)
+
+splite_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
+splite_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+splite_la_CPPFLAGS += -DLOADABLE_EXTENSION
+splite_la_CPPFLAGS += -fvisibility=hidden
+splite_la_LDFLAGS = -module
+splite_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/spatialite/Makefile.in b/src/spatialite/Makefile.in
index 5a10017..7db32bd 100644
--- a/src/spatialite/Makefile.in
+++ b/src/spatialite/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/spatialite
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -66,43 +94,102 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libsplite_la_LIBADD =
-am_libsplite_la_OBJECTS = libsplite_la-mbrcache.lo \
-	libsplite_la-spatialite.lo libsplite_la-spatialite_init.lo \
-	libsplite_la-metatables.lo libsplite_la-statistics.lo \
-	libsplite_la-extra_tables.lo libsplite_la-virtualdbf.lo \
-	libsplite_la-virtualXL.lo libsplite_la-virtualfdo.lo \
+am__objects_1 = libsplite_la-mbrcache.lo libsplite_la-spatialite.lo \
+	libsplite_la-spatialite_init.lo libsplite_la-metatables.lo \
+	libsplite_la-statistics.lo libsplite_la-extra_tables.lo \
+	libsplite_la-virtualdbf.lo libsplite_la-virtualXL.lo \
+	libsplite_la-virtualfdo.lo libsplite_la-virtualgpkg.lo \
+	libsplite_la-virtualbbox.lo \
 	libsplite_la-virtualspatialindex.lo \
 	libsplite_la-virtualnetwork.lo libsplite_la-virtualshape.lo \
 	libsplite_la-virtualxpath.lo
+am_libsplite_la_OBJECTS = $(am__objects_1)
 libsplite_la_OBJECTS = $(am_libsplite_la_OBJECTS)
-libsplite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libsplite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsplite_la_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+splite_la_LIBADD =
+am__objects_2 = splite_la-mbrcache.lo splite_la-spatialite.lo \
+	splite_la-spatialite_init.lo splite_la-metatables.lo \
+	splite_la-statistics.lo splite_la-extra_tables.lo \
+	splite_la-virtualdbf.lo splite_la-virtualXL.lo \
+	splite_la-virtualfdo.lo splite_la-virtualgpkg.lo \
+	splite_la-virtualbbox.lo splite_la-virtualspatialindex.lo \
+	splite_la-virtualnetwork.lo splite_la-virtualshape.lo \
+	splite_la-virtualxpath.lo
+am_splite_la_OBJECTS = $(am__objects_2)
+splite_la_OBJECTS = $(am_splite_la_OBJECTS)
+splite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(splite_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libsplite_la_SOURCES)
-DIST_SOURCES = $(libsplite_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libsplite_la_SOURCES) $(splite_la_SOURCES)
+DIST_SOURCES = $(libsplite_la_SOURCES) $(splite_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -229,10 +316,10 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \
+AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \
 	-I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libsplite.la
-libsplite_la_SOURCES = mbrcache.c \
+noinst_LTLIBRARIES = libsplite.la splite.la
+SPATIALITE_COMMON_SOURCES = mbrcache.c \
 	spatialite.c \
 	spatialite_init.c \
 	metatables.c \
@@ -241,12 +328,21 @@ libsplite_la_SOURCES = mbrcache.c \
 	virtualdbf.c \
 	virtualXL.c \
 	virtualfdo.c \
+	virtualgpkg.c \
+	virtualbbox.c \
 	virtualspatialindex.c \
 	virtualnetwork.c \
 	virtualshape.c \
 	virtualxpath.c
 
+libsplite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES)
 libsplite_la_CFLAGS = -fvisibility=hidden
+splite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES)
+splite_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \
+	-I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION \
+	-fvisibility=hidden
+splite_la_LDFLAGS = -module
+splite_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -293,8 +389,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libsplite.la: $(libsplite_la_OBJECTS) $(libsplite_la_DEPENDENCIES) $(EXTRA_libsplite_la_DEPENDENCIES) 
-	$(libsplite_la_LINK)  $(libsplite_la_OBJECTS) $(libsplite_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(libsplite_la_LINK)  $(libsplite_la_OBJECTS) $(libsplite_la_LIBADD) $(LIBS)
+
+splite.la: $(splite_la_OBJECTS) $(splite_la_DEPENDENCIES) $(EXTRA_splite_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(splite_la_LINK)  $(splite_la_OBJECTS) $(splite_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -309,124 +409,260 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-spatialite_init.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-statistics.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualXL.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualbbox.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualdbf.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualfdo.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualgpkg.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualnetwork.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualshape.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualspatialindex.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsplite_la-virtualxpath.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-extra_tables.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-mbrcache.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-metatables.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-spatialite.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-spatialite_init.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-statistics.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualXL.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualbbox.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualdbf.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualfdo.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualgpkg.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualnetwork.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualshape.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualspatialindex.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splite_la-virtualxpath.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libsplite_la-mbrcache.lo: mbrcache.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/libsplite_la-mbrcache.Tpo -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-mbrcache.Tpo $(DEPDIR)/libsplite_la-mbrcache.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mbrcache.c' object='libsplite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/libsplite_la-mbrcache.Tpo -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-mbrcache.Tpo $(DEPDIR)/libsplite_la-mbrcache.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mbrcache.c' object='libsplite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c
 
 libsplite_la-spatialite.lo: spatialite.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite.Tpo -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-spatialite.Tpo $(DEPDIR)/libsplite_la-spatialite.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='spatialite.c' object='libsplite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite.Tpo -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-spatialite.Tpo $(DEPDIR)/libsplite_la-spatialite.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='spatialite.c' object='libsplite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c
 
 libsplite_la-spatialite_init.lo: spatialite_init.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite_init.Tpo -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-spatialite_init.Tpo $(DEPDIR)/libsplite_la-spatialite_init.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='spatialite_init.c' object='libsplite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite_init.Tpo -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-spatialite_init.Tpo $(DEPDIR)/libsplite_la-spatialite_init.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='spatialite_init.c' object='libsplite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c
 
 libsplite_la-metatables.lo: metatables.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-metatables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-metatables.Tpo -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-metatables.Tpo $(DEPDIR)/libsplite_la-metatables.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='metatables.c' object='libsplite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-metatables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-metatables.Tpo -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-metatables.Tpo $(DEPDIR)/libsplite_la-metatables.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='metatables.c' object='libsplite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c
 
 libsplite_la-statistics.lo: statistics.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-statistics.lo -MD -MP -MF $(DEPDIR)/libsplite_la-statistics.Tpo -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-statistics.Tpo $(DEPDIR)/libsplite_la-statistics.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='statistics.c' object='libsplite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-statistics.lo -MD -MP -MF $(DEPDIR)/libsplite_la-statistics.Tpo -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-statistics.Tpo $(DEPDIR)/libsplite_la-statistics.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='statistics.c' object='libsplite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c
 
 libsplite_la-extra_tables.lo: extra_tables.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-extra_tables.Tpo -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-extra_tables.Tpo $(DEPDIR)/libsplite_la-extra_tables.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='extra_tables.c' object='libsplite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-extra_tables.Tpo -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-extra_tables.Tpo $(DEPDIR)/libsplite_la-extra_tables.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='extra_tables.c' object='libsplite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c
 
 libsplite_la-virtualdbf.lo: virtualdbf.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualdbf.Tpo -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualdbf.Tpo $(DEPDIR)/libsplite_la-virtualdbf.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualdbf.c' object='libsplite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualdbf.Tpo -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualdbf.Tpo $(DEPDIR)/libsplite_la-virtualdbf.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualdbf.c' object='libsplite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c
 
 libsplite_la-virtualXL.lo: virtualXL.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualXL.Tpo -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualXL.Tpo $(DEPDIR)/libsplite_la-virtualXL.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualXL.c' object='libsplite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualXL.Tpo -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualXL.Tpo $(DEPDIR)/libsplite_la-virtualXL.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualXL.c' object='libsplite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c
 
 libsplite_la-virtualfdo.lo: virtualfdo.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualfdo.Tpo -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualfdo.Tpo $(DEPDIR)/libsplite_la-virtualfdo.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualfdo.c' object='libsplite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualfdo.Tpo -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualfdo.Tpo $(DEPDIR)/libsplite_la-virtualfdo.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualfdo.c' object='libsplite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c
+
+libsplite_la-virtualgpkg.lo: virtualgpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualgpkg.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualgpkg.Tpo -c -o libsplite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualgpkg.Tpo $(DEPDIR)/libsplite_la-virtualgpkg.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualgpkg.c' object='libsplite_la-virtualgpkg.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c
+
+libsplite_la-virtualbbox.lo: virtualbbox.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualbbox.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualbbox.Tpo -c -o libsplite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualbbox.Tpo $(DEPDIR)/libsplite_la-virtualbbox.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualbbox.c' object='libsplite_la-virtualbbox.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c
 
 libsplite_la-virtualspatialindex.lo: virtualspatialindex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo $(DEPDIR)/libsplite_la-virtualspatialindex.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualspatialindex.c' object='libsplite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo $(DEPDIR)/libsplite_la-virtualspatialindex.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualspatialindex.c' object='libsplite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c
 
 libsplite_la-virtualnetwork.lo: virtualnetwork.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualnetwork.Tpo -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualnetwork.Tpo $(DEPDIR)/libsplite_la-virtualnetwork.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualnetwork.c' object='libsplite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualnetwork.Tpo -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualnetwork.Tpo $(DEPDIR)/libsplite_la-virtualnetwork.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualnetwork.c' object='libsplite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c
 
 libsplite_la-virtualshape.lo: virtualshape.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualshape.Tpo -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualshape.Tpo $(DEPDIR)/libsplite_la-virtualshape.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualshape.c' object='libsplite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualshape.Tpo -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualshape.Tpo $(DEPDIR)/libsplite_la-virtualshape.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualshape.c' object='libsplite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c
 
 libsplite_la-virtualxpath.lo: virtualxpath.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualxpath.Tpo -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsplite_la-virtualxpath.Tpo $(DEPDIR)/libsplite_la-virtualxpath.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='virtualxpath.c' object='libsplite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualxpath.Tpo -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualxpath.Tpo $(DEPDIR)/libsplite_la-virtualxpath.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualxpath.c' object='libsplite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c
+
+splite_la-mbrcache.lo: mbrcache.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/splite_la-mbrcache.Tpo -c -o splite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-mbrcache.Tpo $(DEPDIR)/splite_la-mbrcache.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mbrcache.c' object='splite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c
+
+splite_la-spatialite.lo: spatialite.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/splite_la-spatialite.Tpo -c -o splite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-spatialite.Tpo $(DEPDIR)/splite_la-spatialite.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='spatialite.c' object='splite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c
+
+splite_la-spatialite_init.lo: spatialite_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/splite_la-spatialite_init.Tpo -c -o splite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-spatialite_init.Tpo $(DEPDIR)/splite_la-spatialite_init.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='spatialite_init.c' object='splite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c
+
+splite_la-metatables.lo: metatables.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-metatables.lo -MD -MP -MF $(DEPDIR)/splite_la-metatables.Tpo -c -o splite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-metatables.Tpo $(DEPDIR)/splite_la-metatables.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='metatables.c' object='splite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c
+
+splite_la-statistics.lo: statistics.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-statistics.lo -MD -MP -MF $(DEPDIR)/splite_la-statistics.Tpo -c -o splite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-statistics.Tpo $(DEPDIR)/splite_la-statistics.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='statistics.c' object='splite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c
+
+splite_la-extra_tables.lo: extra_tables.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/splite_la-extra_tables.Tpo -c -o splite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-extra_tables.Tpo $(DEPDIR)/splite_la-extra_tables.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='extra_tables.c' object='splite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c
+
+splite_la-virtualdbf.lo: virtualdbf.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualdbf.Tpo -c -o splite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualdbf.Tpo $(DEPDIR)/splite_la-virtualdbf.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualdbf.c' object='splite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c
+
+splite_la-virtualXL.lo: virtualXL.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualXL.Tpo -c -o splite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualXL.Tpo $(DEPDIR)/splite_la-virtualXL.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualXL.c' object='splite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c
+
+splite_la-virtualfdo.lo: virtualfdo.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualfdo.Tpo -c -o splite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualfdo.Tpo $(DEPDIR)/splite_la-virtualfdo.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualfdo.c' object='splite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c
+
+splite_la-virtualgpkg.lo: virtualgpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualgpkg.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualgpkg.Tpo -c -o splite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualgpkg.Tpo $(DEPDIR)/splite_la-virtualgpkg.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualgpkg.c' object='splite_la-virtualgpkg.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c
+
+splite_la-virtualbbox.lo: virtualbbox.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualbbox.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualbbox.Tpo -c -o splite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualbbox.Tpo $(DEPDIR)/splite_la-virtualbbox.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualbbox.c' object='splite_la-virtualbbox.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c
+
+splite_la-virtualspatialindex.lo: virtualspatialindex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualspatialindex.Tpo -c -o splite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualspatialindex.Tpo $(DEPDIR)/splite_la-virtualspatialindex.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualspatialindex.c' object='splite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c
+
+splite_la-virtualnetwork.lo: virtualnetwork.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualnetwork.Tpo -c -o splite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualnetwork.Tpo $(DEPDIR)/splite_la-virtualnetwork.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualnetwork.c' object='splite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c
+
+splite_la-virtualshape.lo: virtualshape.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualshape.Tpo -c -o splite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualshape.Tpo $(DEPDIR)/splite_la-virtualshape.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualshape.c' object='splite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c
+
+splite_la-virtualxpath.lo: virtualxpath.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualxpath.Tpo -c -o splite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualxpath.Tpo $(DEPDIR)/splite_la-virtualxpath.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualxpath.c' object='splite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -434,26 +670,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -465,15 +690,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -482,9 +703,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -638,9 +860,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -650,7 +872,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/spatialite/extra_tables.c b/src/spatialite/extra_tables.c
index c0cafa6..a49a0e9 100644
--- a/src/spatialite/extra_tables.c
+++ b/src/spatialite/extra_tables.c
@@ -71,6 +71,678 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
 #include <spatialite/gaiaaux.h>
 
 static int
+check_splite_metacatalog (sqlite3 * sqlite)
+{
+/* checks if "splite_metacatalog" really exists */
+    int table_name = 0;
+    int column_name = 0;
+    int table_name2 = 0;
+    int column_name2 = 0;
+    int value = 0;
+    int count = 0;
+    char sql[1024];
+    int ret;
+    const char *name;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+/* checking the "splite_metacatalog" table */
+    strcpy (sql, "PRAGMA table_info(splite_metacatalog)");
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, "table_name") == 0)
+		    table_name = 1;
+		if (strcasecmp (name, "column_name") == 0)
+		    column_name = 1;
+	    }
+      }
+    sqlite3_free_table (results);
+/* checking the "splite_metacatalog_statistics" table */
+    strcpy (sql, "PRAGMA table_info(splite_metacatalog_statistics)");
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, "table_name") == 0)
+		    table_name2 = 1;
+		if (strcasecmp (name, "column_name") == 0)
+		    column_name2 = 1;
+		if (strcasecmp (name, "value") == 0)
+		    value = 1;
+		if (strcasecmp (name, "count") == 0)
+		    count = 1;
+	    }
+      }
+    sqlite3_free_table (results);
+    if (table_name && column_name && table_name2 && column_name2 && value
+	&& count)
+	return 1;
+    return 0;
+}
+
+static int
+metacatalog_statistics (sqlite3 * sqlite, sqlite3_stmt * stmt_out,
+			sqlite3_stmt * stmt_del, const char *table,
+			const char *column)
+{
+/* auxiliary - updating "splite_metacatalog_statistics" */
+    char *xtable;
+    char *xcolumn;
+    char *sql_statement;
+    int ret;
+    sqlite3_stmt *stmt_in;
+
+    xtable = gaiaDoubleQuotedSql (table);
+    xcolumn = gaiaDoubleQuotedSql (column);
+    sql_statement = sqlite3_mprintf ("SELECT \"%s\", Count(*) FROM \"%s\" "
+				     "GROUP BY \"%s\"", xcolumn, xtable,
+				     xcolumn);
+    free (xcolumn);
+    free (xtable);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("Update MetaCatalog Statistics(4) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+/* deleting all existing rows */
+    sqlite3_reset (stmt_del);
+    sqlite3_clear_bindings (stmt_del);
+    sqlite3_bind_text (stmt_del, 1, table, strlen (table), SQLITE_STATIC);
+    sqlite3_bind_text (stmt_del, 2, column, strlen (column), SQLITE_STATIC);
+    ret = sqlite3_step (stmt_del);
+    if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+	;
+    else
+      {
+	  spatialite_e ("populate MetaCatalog Statistics(5) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  sqlite3_finalize (stmt_in);
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		sqlite3_reset (stmt_out);
+		sqlite3_clear_bindings (stmt_out);
+		sqlite3_bind_text (stmt_out, 1, table, strlen (table),
+				   SQLITE_STATIC);
+		sqlite3_bind_text (stmt_out, 2, column, strlen (column),
+				   SQLITE_STATIC);
+		switch (sqlite3_column_type (stmt_in, 0))
+		  {
+		  case SQLITE_INTEGER:
+		      sqlite3_bind_int64 (stmt_out, 3,
+					  sqlite3_column_int (stmt_in, 0));
+		      break;
+		  case SQLITE_FLOAT:
+		      sqlite3_bind_double (stmt_out, 3,
+					   sqlite3_column_double (stmt_in, 0));
+		      break;
+		  case SQLITE_TEXT:
+		      sqlite3_bind_text (stmt_out, 3,
+					 (const char *)
+					 sqlite3_column_text (stmt_in, 0),
+					 sqlite3_column_bytes (stmt_in, 0),
+					 SQLITE_STATIC);
+		      break;
+		  case SQLITE_BLOB:
+		      sqlite3_bind_blob (stmt_out, 3,
+					 sqlite3_column_blob (stmt_in, 0),
+					 sqlite3_column_bytes (stmt_in, 0),
+					 SQLITE_STATIC);
+		      break;
+		  default:
+		      sqlite3_bind_null (stmt_out, 3);
+		      break;
+		  };
+		sqlite3_bind_int (stmt_out, 4, sqlite3_column_int (stmt_in, 1));
+		ret = sqlite3_step (stmt_out);
+		if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+		    ;
+		else
+		  {
+		      spatialite_e
+			  ("populate MetaCatalog Statistics(6) error: \"%s\"\n",
+			   sqlite3_errmsg (sqlite));
+		      sqlite3_finalize (stmt_in);
+		      return 0;
+		  }
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+
+    return 1;
+}
+
+SPATIALITE_DECLARE int
+gaiaUpdateMetaCatalogStatistics (sqlite3 * sqlite, const char *table,
+				 const char *column)
+{
+/* Updates the "splite_metacalog_statistics" table */
+    char *sql_statement;
+    int ret;
+    sqlite3_stmt *stmt_in;
+    sqlite3_stmt *stmt_out;
+    sqlite3_stmt *stmt_del;
+
+    if (!check_splite_metacatalog (sqlite))
+      {
+	  spatialite_e
+	      ("invalid or not existing \"splite_metacatalog_statistics\" table\n");
+	  return 0;
+      }
+
+/* updating the MetaCatalog statistics */
+    sql_statement = sqlite3_mprintf ("SELECT table_name, column_name "
+				     "FROM splite_metacatalog WHERE "
+				     "Lower(table_name) = Lower(%Q) "
+				     "AND Lower(column_name) = Lower(%Q)",
+				     table, column);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("Update MetaCatalog Statistics(1) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    sql_statement = "INSERT INTO splite_metacatalog_statistics "
+	"(table_name, column_name, value, count) " "VALUES (?, ?, ?, ?)";
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_out, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_finalize (stmt_in);
+	  spatialite_e ("Update MetaCatalog Statistics(2) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    sql_statement = "DELETE FROM splite_metacatalog_statistics "
+	"WHERE Lower(table_name) = Lower(?) AND Lower(column_name) = Lower(?)";
+    ret =
+	sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			    &stmt_del, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_finalize (stmt_in);
+	  sqlite3_finalize (stmt_out);
+	  spatialite_e ("Update MetaCatalog Statistics(3) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		const char *table =
+		    (const char *) sqlite3_column_text (stmt_in, 0);
+		const char *column =
+		    (const char *) sqlite3_column_text (stmt_in, 1);
+		if (!metacatalog_statistics
+		    (sqlite, stmt_out, stmt_del, table, column))
+		  {
+		      sqlite3_finalize (stmt_in);
+		      sqlite3_finalize (stmt_out);
+		      sqlite3_finalize (stmt_del);
+		      return 0;
+		  }
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+    sqlite3_finalize (stmt_out);
+    sqlite3_finalize (stmt_del);
+    return 1;
+}
+
+static int
+check_master_table (sqlite3 * sqlite, const char *master_table,
+		    const char *table, const char *column)
+{
+/* checks if the Master Table could be accessed */
+    int table_name = 0;
+    int column_name = 0;
+    char *sql;
+    int ret;
+    char *xmaster;
+    const char *name;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+/* checking the Master table */
+    xmaster = gaiaDoubleQuotedSql (master_table);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xmaster);
+    free (xmaster);
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, table) == 0)
+		    table_name = 1;
+		if (strcasecmp (name, column) == 0)
+		    column_name = 1;
+	    }
+      }
+    sqlite3_free_table (results);
+    if (table_name && column_name)
+	return 1;
+    return 0;
+}
+
+SPATIALITE_DECLARE int
+gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 * sqlite,
+					   const char *master_table,
+					   const char *table_name,
+					   const char *column_name)
+{
+/* Updates the "splite_metacalog_statistics" table (using a Master Table) */
+    int ret;
+    char *sql_statement;
+    sqlite3_stmt *stmt;
+    char *xmaster;
+    char *xtable;
+    char *xcolumn;
+    if (!check_master_table (sqlite, master_table, table_name, column_name))
+      {
+	  spatialite_e
+	      ("UpdateMetaCatalogStatisticsFromMaster: mismatching or not existing Master Table\n");
+	  return 0;
+      }
+
+/* scanning the Master Table */
+    xmaster = gaiaDoubleQuotedSql (master_table);
+    xtable = gaiaDoubleQuotedSql (table_name);
+    xcolumn = gaiaDoubleQuotedSql (column_name);
+    sql_statement =
+	sqlite3_mprintf ("SELECT \"%s\", \"%s\" FROM \"%s\"", xtable, xcolumn,
+			 xmaster);
+    free (xmaster);
+    free (xtable);
+    free (xcolumn);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e
+	      ("UpdateMetaCatalogStatisticsFromMaster(1) error: \"%s\"\n",
+	       sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		const char *table =
+		    (const char *) sqlite3_column_text (stmt, 0);
+		const char *column =
+		    (const char *) sqlite3_column_text (stmt, 1);
+		if (!gaiaUpdateMetaCatalogStatistics (sqlite, table, column))
+		  {
+		      sqlite3_finalize (stmt);
+		      return 0;
+		  }
+	    }
+      }
+    sqlite3_finalize (stmt);
+    return 1;
+}
+
+static int
+check_unique_index (sqlite3 * sqlite, const char *index, const char *column)
+{
+/* checks if a column has any Unique constraint - pass two */
+    char *xindex;
+    char *sql_statement;
+    int ret;
+    sqlite3_stmt *stmt_in;
+    int is_unique = 0;
+    int index_parts = 0;
+
+    xindex = gaiaDoubleQuotedSql (index);
+    sql_statement = sqlite3_mprintf ("PRAGMA index_info(\"%s\")", xindex);
+    free (xindex);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("populate MetaCatalog(8) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		const char *colname =
+		    (const char *) sqlite3_column_text (stmt_in, 2);
+		if (strcasecmp (colname, column) == 0)
+		    is_unique = 1;
+		index_parts++;
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+
+    if (index_parts > 1)
+      {
+	  /* ignoring any multi-column index */
+	  is_unique = 0;
+      }
+    return is_unique;
+}
+
+static int
+check_unique (sqlite3 * sqlite, const char *table, const char *column)
+{
+/* checks if a column has any Unique constraint */
+    char *xtable;
+    char *sql_statement;
+    int ret;
+    sqlite3_stmt *stmt_in;
+    int is_unique = 0;
+
+    xtable = gaiaDoubleQuotedSql (table);
+    sql_statement = sqlite3_mprintf ("PRAGMA index_list(\"%s\")", xtable);
+    free (xtable);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("populate MetaCatalog(7) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		const char *idxname =
+		    (const char *) sqlite3_column_text (stmt_in, 1);
+		if (sqlite3_column_int (stmt_in, 2) == 1)
+		  {
+		      /* Unique Index */
+		      if (check_unique_index (sqlite, idxname, column))
+			  is_unique = 1;
+		  }
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+
+    return is_unique;
+}
+
+static int
+check_foreign_key (sqlite3 * sqlite, const char *table, const char *column)
+{
+/* checks if a column is part of any Foreign Key */
+    char *xtable;
+    char *sql_statement;
+    int ret;
+    sqlite3_stmt *stmt_in;
+    int is_foreign_key = 0;
+
+    xtable = gaiaDoubleQuotedSql (table);
+    sql_statement = sqlite3_mprintf ("PRAGMA foreign_key_list(\"%s\")", xtable);
+    free (xtable);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("populate MetaCatalog(6) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		const char *colname =
+		    (const char *) sqlite3_column_text (stmt_in, 3);
+		if (strcasecmp (colname, column) == 0)
+		    is_foreign_key = 1;
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+
+    return is_foreign_key;
+}
+
+static int
+table_info (sqlite3 * sqlite, sqlite3_stmt * stmt_out, const char *table)
+{
+/* auxiliary - populating "splite_metacatalog" */
+    char *xtable;
+    char *sql_statement;
+    int ret;
+    sqlite3_stmt *stmt_in;
+
+    xtable = gaiaDoubleQuotedSql (table);
+    sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable);
+    free (xtable);
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("populate MetaCatalog(3) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		int is_foreign_key;
+		int is_unique;
+		sqlite3_reset (stmt_out);
+		sqlite3_clear_bindings (stmt_out);
+		sqlite3_bind_text (stmt_out, 1, table, strlen (table),
+				   SQLITE_STATIC);
+		sqlite3_bind_text (stmt_out, 2,
+				   (const char *) sqlite3_column_text (stmt_in,
+								       1),
+				   sqlite3_column_bytes (stmt_in, 1),
+				   SQLITE_STATIC);
+		sqlite3_bind_text (stmt_out, 3,
+				   (const char *) sqlite3_column_text (stmt_in,
+								       2),
+				   sqlite3_column_bytes (stmt_in, 2),
+				   SQLITE_STATIC);
+		sqlite3_bind_int (stmt_out, 4, sqlite3_column_int (stmt_in, 3));
+		sqlite3_bind_int (stmt_out, 5, sqlite3_column_int (stmt_in, 5));
+		is_foreign_key =
+		    check_foreign_key (sqlite, table,
+				       (const char *)
+				       sqlite3_column_text (stmt_in, 1));
+		sqlite3_bind_int (stmt_out, 6, is_foreign_key);
+		is_unique =
+		    check_unique (sqlite, table,
+				  (const char *) sqlite3_column_text (stmt_in,
+								      1));
+		sqlite3_bind_int (stmt_out, 7, is_unique);
+		ret = sqlite3_step (stmt_out);
+		if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+		    ;
+		else
+		  {
+		      spatialite_e ("populate MetaCatalog(4) error: \"%s\"\n",
+				    sqlite3_errmsg (sqlite));
+		      sqlite3_finalize (stmt_in);
+		      return 0;
+		  }
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+
+    return 1;
+}
+
+SPATIALITE_DECLARE int
+gaiaCreateMetaCatalogTables (sqlite3 * sqlite)
+{
+/* Creates both "splite_metacatalog" and "splite_metacalog_statistics" tables */
+    char *sql_statement;
+    char *err_msg = NULL;
+    int ret;
+    sqlite3_stmt *stmt_in;
+    sqlite3_stmt *stmt_out;
+
+/* creating "splite_metacatalog" */
+    sql_statement = "CREATE TABLE splite_metacatalog (\n"
+	"table_name TEXT NOT NULL,\n"
+	"column_name TEXT NOT NULL,\n"
+	"type TEXT NOT NULL,\n"
+	"not_null INTEGER NOT NULL,\n"
+	"primary_key INTEGER NOT NULL,\n"
+	"foreign_key INTEGER NOT NULL,\n"
+	"unique_value INTEGER NOT NULL,\n"
+	"CONSTRAINT pk_splite_metacatalog PRIMARY KEY (table_name, column_name))";
+    ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e
+	      ("CREATE TABLE splite_metacatalog - error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+
+/* creating "splite_metacatalog_statistics" */
+    sql_statement = "CREATE TABLE splite_metacatalog_statistics (\n"
+	"table_name TEXT NOT NULL,\n"
+	"column_name TEXT NOT NULL,\n"
+	"value TEXT,\n"
+	"count INTEGER NOT NULL,\n"
+	"CONSTRAINT pk_splite_metacatalog_statistics PRIMARY KEY (table_name, column_name, value),\n"
+	"CONSTRAINT fk_splite_metacatalog_statistics FOREIGN KEY (table_name, column_name) "
+	"REFERENCES splite_metacatalog (table_name, column_name))";
+    ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e
+	      ("CREATE TABLE splite_metacatalog_statistics - error: %s\n",
+	       err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+
+/* populating the MetaCatalog table */
+    sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' "
+	"AND sql NOT LIKE 'CREATE VIRTUAL TABLE%'";
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_in, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("populate MetaCatalog(1) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    sql_statement = "INSERT INTO splite_metacatalog "
+	"(table_name, column_name, type, not_null, primary_key, foreign_key, unique_value) "
+	"VALUES (?, ?, ?, ?, ?, ?, ?)";
+    ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
+			      &stmt_out, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_finalize (stmt_in);
+	  spatialite_e ("populate MetaCatalog(2) error: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  return 0;
+      }
+
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt_in);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		const char *table =
+		    (const char *) sqlite3_column_text (stmt_in, 0);
+		if (!table_info (sqlite, stmt_out, table))
+		  {
+		      sqlite3_finalize (stmt_in);
+		      sqlite3_finalize (stmt_out);
+		      return 0;
+		  }
+	    }
+      }
+    sqlite3_finalize (stmt_in);
+    sqlite3_finalize (stmt_out);
+    return 1;
+}
+
+static int
 check_raster_coverages (sqlite3 * sqlite)
 {
 /* checking if the "raster_coverages" table already exists */
@@ -135,6 +807,8 @@ create_raster_coverages (sqlite3 * sqlite)
     char *err_msg = NULL;
     sql = "CREATE TABLE raster_coverages (\n"
 	"coverage_name TEXT NOT NULL PRIMARY KEY,\n"
+	"title TEXT NOT NULL DEFAULT '*** missing Title ***',\n"
+	"abstract TEXT NOT NULL DEFAULT '*** missing Abstract ***',\n"
 	"sample_type TEXT NOT NULL DEFAULT '*** undefined ***',\n"
 	"pixel_type TEXT NOT NULL DEFAULT '*** undefined ***',\n"
 	"num_bands INTEGER NOT NULL DEFAULT 1,\n"
@@ -142,10 +816,16 @@ create_raster_coverages (sqlite3 * sqlite)
 	"quality INTEGER NOT NULL DEFAULT 100,\n"
 	"tile_width INTEGER NOT NULL DEFAULT 512,\n"
 	"tile_height INTEGER NOT NULL DEFAULT 512,\n"
-	"horz_resolution DOUBLE,\n"
-	"vert_resolution DOUBLE,\n"
-	"srid INTEGER,\n"
-	"nodata_pixel BLOB,\n"
+	"horz_resolution DOUBLE NOT NULL,\n"
+	"vert_resolution DOUBLE NOT NULL,\n"
+	"srid INTEGER NOT NULL,\n"
+	"nodata_pixel BLOB NOT NULL,\n"
+	"palette BLOB,\n"
+	"statistics BLOB,\n"
+	"extent_minx DOUBLE,\n"
+	"extent_miny DOUBLE,\n"
+	"extent_maxx DOUBLE,\n"
+	"extent_maxy DOUBLE,\n"
 	"CONSTRAINT fk_rc_srs FOREIGN KEY (srid) "
 	"REFERENCES spatial_ref_sys (srid))";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
@@ -281,9 +961,10 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
 	"compression must be one of ''NONE'' | ''DEFLATE'' | ''LZMA'' | "
-	"''GIF'' | ''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP''')\n"
+	"''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | "
+	"''CCITTFAX4''')\n"
 	"WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', "
-	"'GIF', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND";
+	"'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'CCITTFAX4');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -296,9 +977,10 @@ create_raster_coverages (sqlite3 * sqlite)
 	"\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"compression must be one of ''NONE'' | ''DEFLATE'' | ''LZMA'' | "
-	"''GIF'' | ''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP''')\n"
+	"''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | "
+	"''CCITTFAX4''')\n"
 	"WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', "
-	"'GIF', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND";
+	"'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'CCITTFAX4');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -443,7 +1125,7 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
 	"invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND "
-	"IsValidNoDataPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND";
+	"IsValidPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -452,11 +1134,63 @@ create_raster_coverages (sqlite3 * sqlite)
 	  return 0;
       }
     sql = "CREATE TRIGGER raster_coverages_nodata_update\n"
-	"BEFORE UPDATE OF 'vert_resolution' ON 'raster_coverages'"
+	"BEFORE UPDATE OF 'nodata_pixel' ON 'raster_coverages'"
 	"\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND "
-	"IsValidNoDataPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND";
+	"IsValidPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER raster_coverages_palette_insert\n"
+	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
+	"invalid palette')\nWHERE NEW.palette IS NOT NULL AND "
+	"(NEW.pixel_type <> 'PALETTE' OR NEW.num_bands <> 1 OR "
+	"IsValidRasterPalette(NEW.palette, NEW.sample_type) <> 1);\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER raster_coverages_palette_update\n"
+	"BEFORE UPDATE OF 'palette' ON 'raster_coverages'"
+	"\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
+	"invalid palette')\nWHERE NEW.palette IS NOT NULL AND "
+	"(NEW.pixel_type <> 'PALETTE' OR NEW.num_bands <> 1 OR "
+	"IsValidRasterPalette(NEW.palette, NEW.sample_type) <> 1);\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER raster_coverages_statistics_insert\n"
+	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
+	"invalid statistics')\nWHERE NEW.statistics IS NOT NULL AND "
+	"IsValidRasterStatistics(NEW.statistics, NEW.sample_type, NEW.num_bands) <> 1;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER raster_coverages_statistics_update\n"
+	"BEFORE UPDATE OF 'statistics' ON 'raster_coverages'"
+	"\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
+	"invalid statistics')\nWHERE NEW.statistics IS NOT NULL AND "
+	"IsValidRasterStatistics(NEW.statistics, NEW.sample_type, NEW.num_bands) <> 1;\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -492,7 +1226,7 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
 	"inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' "
-	"AND NEW.compression NOT IN ('NONE', 'PNG');\nEND";
+	"AND NEW.compression NOT IN ('NONE', 'PNG', 'CCITTFAX4');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -504,7 +1238,7 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' "
-	"AND NEW.compression NOT IN ('NONE', 'PNG');\nEND";
+	"AND NEW.compression NOT IN ('NONE', 'PNG', 'CCITTFAX4');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -564,7 +1298,7 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
 	"inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' "
-	"AND NEW.compression NOT IN ('NONE', 'GIF', 'PNG');\nEND";
+	"AND NEW.compression NOT IN ('NONE', 'PNG');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -576,7 +1310,7 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' "
-	"AND NEW.compression NOT IN ('NONE', 'GIF', 'PNG');\nEND";
+	"AND NEW.compression NOT IN ('NONE', 'PNG');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -656,11 +1390,37 @@ create_raster_coverages (sqlite3 * sqlite)
 	  sqlite3_free (err_msg);
 	  return 0;
       }
+    sql = "CREATE TRIGGER raster_coverages_graycompr_insert\n"
+	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
+	"inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = 'GRAYSCALE' "
+	"AND NEW.compression NOT IN ('NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', "
+	"'LOSSLESS_WEBP');\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER raster_coverages_graycompr_update\n"
+	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
+	"inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = 'GRAYSCALE' "
+	"AND NEW.compression NOT IN ('NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', "
+	"'LOSSLESS_WEBP');\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
     sql = "CREATE TRIGGER raster_coverages_rgbsample_insert\n"
 	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
 	"inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' "
-	"AND NEW.sample_type <> 'UINT8';\nEND";
+	"AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -672,7 +1432,7 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' "
-	"AND NEW.sample_type <> 'UINT8';\nEND";
+	"AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -684,8 +1444,10 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
 	"inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' "
-	"AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', 'PNG', "
-	"'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND";
+	"AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN ("
+	"'NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP') OR "
+	"(NEW.sample_type = 'UINT16' AND NEW.compression NOT IN ("
+	"'NONE', 'DEFLATE', 'LZMA'))));\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -697,8 +1459,10 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' "
-	"AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'LZMA', 'PNG', "
-	"'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP');\nEND";
+	"AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN ("
+	"'NONE', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP') OR "
+	"(NEW.sample_type = 'UINT16' AND NEW.compression NOT IN ("
+	"'NONE', 'DEFLATE', 'LZMA'))));\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -766,6 +1530,30 @@ create_raster_coverages (sqlite3 * sqlite)
 	  sqlite3_free (err_msg);
 	  return 0;
       }
+    sql = "CREATE TRIGGER raster_coverages_multibands_insert\n"
+	"BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
+	"inconsistent MULTIBAND num_bands')\nWHERE NEW.pixel_type = 'MULTIBAND' "
+	"AND NEW.num_bands < 2;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER raster_coverages_multibands_update\n"
+	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
+	"inconsistent MULTIBAND num_bands')\nWHERE NEW.pixel_type = 'MULTIBAND' "
+	"AND NEW.num_bands < 2;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
     sql = "CREATE TRIGGER raster_coverages_multicompr_update\n"
 	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
@@ -884,7 +1672,13 @@ create_raster_coverages (sqlite3 * sqlite)
 	"BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
 	"attempting to change the definition of an already populated Coverage')\n"
-	"WHERE IsPopulatedCoverage(OLD.coverage_name) = 1;\nEND";
+	"WHERE IsPopulatedCoverage(OLD.coverage_name) = 1 AND "
+	"((OLD.sample_type <> NEW.sample_type) AND (OLD.pixel_type <> NEW.sample_type) "
+	"OR (OLD.num_bands <> NEW.num_bands) OR (OLD.compression <> NEW.compression) "
+	"OR (OLD.quality <> NEW.quality) OR (OLD.tile_width <> NEW.tile_width) "
+	"OR (OLD.tile_height <> NEW.tile_height) OR (OLD.horz_resolution <> NEW.horz_resolution) "
+	"OR (OLD.vert_resolution <> NEW.vert_resolution) OR "
+	"(OLD.srid <> NEW.srid) OR (OLD.nodata_pixel <> NEW.nodata_pixel));\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -906,14 +1700,18 @@ create_raster_coverages (sqlite3 * sqlite)
       }
 /* creating the raster_coverages_ref_sys view */
     sql = "CREATE VIEW raster_coverages_ref_sys AS\n"
-	"SELECT c.coverage_name AS coverage_name, c.sample_type AS sample_type, "
+	"SELECT c.coverage_name AS coverage_name, c.title AS title, "
+	"c.abstract AS abstract, c.sample_type AS sample_type, "
 	"c.pixel_type AS pixel_type, c.num_bands AS num_bands, "
 	"c.compression AS compression, c.quality AS quality, "
 	"c.tile_width AS tile_width, c.tile_height AS tile_height, "
 	"c.horz_resolution AS horz_resolution, c.vert_resolution AS vert_resolution, "
-	"c.nodata_pixel AS nodata_pixel, c.srid AS srid, "
+	"c.nodata_pixel AS nodata_pixel, c.palette AS palette, "
+	"c.statistics AS statistics, c.extent_minx AS extent_minx, "
+	"c.extent_miny AS extent_miny, c.extent_maxx AS extent_maxx, "
+	"c.extent_maxy AS extent_maxy, c.srid AS srid, "
 	"s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
-	"s.ref_sys_name AS ref_sys_name, s.proj4text AS ref_sys_name\n"
+	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
 	"FROM raster_coverages AS c\n"
 	"LEFT JOIN spatial_ref_sys AS s ON (c.srid = s.srid)";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
@@ -995,6 +1793,7 @@ checkPopulatedCoverage (void *p_sqlite, const char *coverage_name)
 /* checking if a Coverage table is already populated */
     int is_populated = 0;
     char *xname;
+    char *xxname;
     char *sql_statement;
     char *errMsg = NULL;
     int ret;
@@ -1003,12 +1802,17 @@ checkPopulatedCoverage (void *p_sqlite, const char *coverage_name)
     int columns;
     int i;
     sqlite3 *sqlite = p_sqlite;
-    if (!check_if_coverage_exists (sqlite, coverage_name))
-	return 0;
-    xname = gaiaDoubleQuotedSql (coverage_name);
+    xname = sqlite3_mprintf ("%s_tile_data", coverage_name);
+    if (!check_if_coverage_exists (sqlite, xname))
+      {
+	  sqlite3_free (xname);
+	  return 0;
+      }
+    xxname = gaiaDoubleQuotedSql (xname);
+    sqlite3_free (xname);
     sql_statement =
-	sqlite3_mprintf ("SELECT ROWID FROM \"%s\" LIMIT 10", xname);
-    free (xname);
+	sqlite3_mprintf ("SELECT ROWID FROM \"%s\" LIMIT 10", xxname);
+    free (xxname);
     ret =
 	sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns,
 			   &errMsg);
@@ -1122,6 +1926,7 @@ create_vector_styled_layers (sqlite3 * sqlite, int relaxed)
 	"f_table_name TEXT NOT NULL,\n"
 	"f_geometry_column TEXT NOT NULL,\n"
 	"style_id INTEGER NOT NULL,\n"
+	"style_name TEXT NOT NULL DEFAULT 'missing_name',\n"
 	"style BLOB NOT NULL,\n"
 	"CONSTRAINT pk_sevstl PRIMARY KEY "
 	"(f_table_name, f_geometry_column, style_id),\n"
@@ -1136,6 +1941,16 @@ create_vector_styled_layers (sqlite3 * sqlite, int relaxed)
 	  sqlite3_free (err_msg);
 	  return 0;
       }
+/* creating the layer-style UNIQUE index */
+    sql = "CREATE UNIQUE INDEX idx_vector_style ON SE_vector_styled_layers "
+	"(f_table_name, f_geometry_column, style_name)";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CREATE INDEX 'idx_vector_style' error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
 /* creating the SE_vector_styled_layers triggers */
     sql = "CREATE TRIGGER sevstl_f_table_name_insert\n"
 	"BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n"
@@ -1265,6 +2080,37 @@ create_vector_styled_layers (sqlite3 * sqlite, int relaxed)
 	  sqlite3_free (err_msg);
 	  return 0;
       }
+/* automatically setting the style_name after inserting */
+    sql = "CREATE TRIGGER sevstl_style_name_ins\n"
+	"AFTER INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n"
+	"UPDATE SE_vector_styled_layers "
+	"SET style_name = XB_GetName(NEW.style) "
+	"WHERE f_table_name = NEW.f_table_name "
+	"AND f_geometry_column = NEW.f_geometry_column "
+	"AND style_id = NEW.style_id;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* automatically setting the style_name after updating */
+    sql = "CREATE TRIGGER sevstl_style_name_upd\n"
+	"AFTER UPDATE OF style ON "
+	"'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n"
+	"UPDATE SE_vector_styled_layers "
+	"SET style_name = XB_GetName(NEW.style) "
+	"WHERE f_table_name = NEW.f_table_name "
+	"AND f_geometry_column = NEW.f_geometry_column "
+	"AND style_id = NEW.style_id;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
     return 1;
 }
 
@@ -1278,6 +2124,7 @@ create_raster_styled_layers (sqlite3 * sqlite, int relaxed)
     sql = "CREATE TABLE SE_raster_styled_layers (\n"
 	"coverage_name TEXT NOT NULL,\n"
 	"style_id INTEGER NOT NULL,\n"
+	"style_name TEXT NOT NULL DEFAULT 'missing_name',\n"
 	"style BLOB NOT NULL,\n"
 	"CONSTRAINT pk_serstl PRIMARY KEY " "(coverage_name, style_id),\n"
 	"CONSTRAINT fk_serstl FOREIGN KEY (coverage_name) "
@@ -1290,7 +2137,17 @@ create_raster_styled_layers (sqlite3 * sqlite, int relaxed)
 	  sqlite3_free (err_msg);
 	  return 0;
       }
-/* creating the SE_vector_styled_layers triggers */
+/* creating the layer-style UNIQUE index */
+    sql = "CREATE UNIQUE INDEX idx_raster_style ON SE_raster_styled_layers "
+	"(coverage_name, style_name)";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CREATE INDEX 'idx_raster_style' error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* creating the SE_raster_styled_layers triggers */
     sql = "CREATE TRIGGER serstl_coverage_name_insert\n"
 	"BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: "
@@ -1383,6 +2240,35 @@ create_raster_styled_layers (sqlite3 * sqlite, int relaxed)
 	  sqlite3_free (err_msg);
 	  return 0;
       }
+/* automatically setting the style_name after inserting */
+    sql = "CREATE TRIGGER serstl_style_name_ins\n"
+	"AFTER INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n"
+	"UPDATE SE_raster_styled_layers "
+	"SET style_name = XB_GetName(NEW.style) "
+	"WHERE coverage_name = NEW.coverage_name "
+	"AND style_id = NEW.style_id;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* automatically setting the style_name after updating */
+    sql = "CREATE TRIGGER serstl_style_name_upd\n"
+	"AFTER UPDATE OF style ON "
+	"'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n"
+	"UPDATE SE_raster_styled_layers "
+	"SET style_name = XB_GetName(NEW.style) "
+	"WHERE coverage_name = NEW.coverage_name "
+	"AND style_id = NEW.style_id;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
     return 1;
 }
 
@@ -1425,7 +2311,7 @@ create_styled_groups (sqlite3 * sqlite)
       }
     sql = "CREATE TRIGGER segrp_group_name_update\n"
 	"BEFORE UPDATE OF 'group_name' ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: "
+	"SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: "
 	"group_name value must not contain a single quote')\n"
 	"WHERE NEW.group_name LIKE ('%''%');\n"
 	"SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: "
@@ -1457,21 +2343,18 @@ create_styled_group_refs (sqlite3 * sqlite)
 	"paint_order INTEGER NOT NULL,\n"
 	"f_table_name TEXT,\n"
 	"f_geometry_column TEXT,\n"
-	"vector_style_id INTEGER,\n"
 	"coverage_name TEXT,\n"
-	"raster_style_id INTEGER,\n"
 	"CONSTRAINT fk_se_refs FOREIGN KEY (group_name) "
 	"REFERENCES SE_styled_groups (group_name) "
 	"ON DELETE CASCADE,\n"
-	"CONSTRAINT fk_se_styled_vector FOREIGN KEY "
-	"(f_table_name, f_geometry_column, vector_style_id) "
-	"REFERENCES SE_vector_styled_layers "
-	"(f_table_name, f_geometry_column, style_id) "
+	"CONSTRAINT fk_se_group_vector FOREIGN KEY "
+	"(f_table_name, f_geometry_column) "
+	"REFERENCES geometry_columns "
+	"(f_table_name, f_geometry_column) "
 	"ON DELETE CASCADE,\n"
-	"CONSTRAINT fk_se_styled_raster FOREIGN KEY "
-	"(coverage_name, raster_style_id) "
-	"REFERENCES SE_raster_styled_layers (coverage_name, style_id) "
-	"ON DELETE CASCADE)";
+	"CONSTRAINT fk_se_group_raster "
+	"FOREIGN KEY (coverage_name) "
+	"REFERENCES raster_coverages (coverage_name) " "ON DELETE CASCADE)";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -1629,9 +2512,8 @@ create_styled_group_refs (sqlite3 * sqlite)
 	"BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: "
 	"cannot reference both Vector and Raster at the same time')\n"
-	"WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL "
-	"OR NEW.vector_style_id IS NOT NULL) AND (NEW.coverage_name IS NOT NULL "
-	"OR NEW.raster_style_id IS NOT NULL);\nEND";
+	"WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL) "
+	"AND NEW.coverage_name IS NOT NULL;\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -1643,9 +2525,8 @@ create_styled_group_refs (sqlite3 * sqlite)
 	"BEFORE UPDATE ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n"
 	"SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: "
 	"cannot reference both Vector and Raster at the same time')\n"
-	"WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL "
-	"OR NEW.vector_style_id IS NOT NULL) AND (NEW.coverage_name IS NOT NULL "
-	"OR NEW.raster_style_id IS NOT NULL);\nEND";
+	"WHERE (NEW.f_table_name IS NOT NULL OR NEW.f_geometry_column IS NOT NULL) "
+	"AND NEW.coverage_name IS NOT NULL;\nEND";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -1655,8 +2536,7 @@ create_styled_group_refs (sqlite3 * sqlite)
       }
 /* creating any Index on SE_styled_group_refs */
     sql = "CREATE INDEX idx_SE_styled_vgroups ON "
-	"SE_styled_group_refs "
-	"(f_table_name, f_geometry_column, vector_style_id)";
+	"SE_styled_group_refs " "(f_table_name, f_geometry_column)";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -1666,7 +2546,7 @@ create_styled_group_refs (sqlite3 * sqlite)
 	  return 0;
       }
     sql = "CREATE INDEX idx_SE_styled_rgroups ON "
-	"SE_styled_group_refs " "(coverage_name, raster_style_id)";
+	"SE_styled_group_refs " "(coverage_name)";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -1689,6 +2569,162 @@ create_styled_group_refs (sqlite3 * sqlite)
     return 1;
 }
 
+static int
+create_group_styles (sqlite3 * sqlite, int relaxed)
+{
+/* creating the SE_group_styles table */
+    char *sql;
+    int ret;
+    char *err_msg = NULL;
+    sql = "CREATE TABLE SE_group_styles (\n"
+	"group_name TEXT NOT NULL,\n"
+	"style_id INTEGER NOT NULL,\n"
+	"style_name TEXT NOT NULL DEFAULT 'missing_name',\n"
+	"style BLOB NOT NULL,\n"
+	"CONSTRAINT pk_segrpstl PRIMARY KEY " "(group_name, style_id),\n"
+	"CONSTRAINT fk_segrpstl FOREIGN KEY (group_name) "
+	"REFERENCES SE_styled_groups (group_name) " "ON DELETE CASCADE)";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CREATE TABLE 'SE_group_styles' error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* creating the layer-style UNIQUE index */
+    sql = "CREATE UNIQUE INDEX idx_group_style ON SE_group_styles "
+	"(group_name, style_name)";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CREATE INDEX 'idx_group_style' error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* creating the SE_group_styles triggers */
+    sql = "CREATE TRIGGER segrpstl_group_name_insert\n"
+	"BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: "
+	"group_name value must not contain a single quote')\n"
+	"WHERE NEW.group_name LIKE ('%''%');\n"
+	"SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: "
+	"group_name value must not contain a double quote')\n"
+	"WHERE NEW.group_name LIKE ('%\"%');\n"
+	"SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: "
+	"group_name value must be lower case')\n"
+	"WHERE NEW.group_name <> lower(NEW.group_name);\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    sql = "CREATE TRIGGER segrpstl_group_name_update\n"
+	"BEFORE UPDATE OF 'group_name' ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	"SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: "
+	"group_name value must not contain a single quote')\n"
+	"WHERE NEW.group_name LIKE ('%''%');\n"
+	"SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: "
+	"group_name value must not contain a double quote')\n"
+	"WHERE NEW.group_name LIKE ('%\"%');\n"
+	"SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: "
+	"group_name value must be lower case')\n"
+	"WHERE NEW.group_name <> lower(NEW.group_name);\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    if (relaxed == 0)
+      {
+	  /* strong trigger - imposing XML schema validation */
+	  sql = "CREATE TRIGGER segrpstl_style_insert\n"
+	      "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	      "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: "
+	      "not a valid SLD Style')\n"
+	      "WHERE XB_IsSldStyle(NEW.style) <> 1;\n"
+	      "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: "
+	      "not an XML Schema Validated SLD Style')\n"
+	      "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND";
+      }
+    else
+      {
+	  /* relaxed trigger - not imposing XML schema validation */
+	  sql = "CREATE TRIGGER segrpstl_style_insert\n"
+	      "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	      "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: "
+	      "not a valid SLD Style')\n"
+	      "WHERE XB_IsSldStyle(NEW.style) <> 1;\nEND";
+      }
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    if (relaxed == 0)
+      {
+	  /* strong trigger - imposing XML schema validation */
+	  sql = "CREATE TRIGGER segrpstl_style_update\n"
+	      "BEFORE UPDATE ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	      "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: "
+	      "not a valid SLD Style')\n"
+	      "WHERE XB_IsSldStyle(NEW.style) <> 1;\n"
+	      "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: "
+	      "not an XML Schema Validated SLD Style')\n"
+	      "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND";
+      }
+    else
+      {
+	  /* relaxed trigger - not imposing XML schema validation */
+	  sql = "CREATE TRIGGER segrpstl_style_update\n"
+	      "BEFORE UPDATE ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	      "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: "
+	      "not a valid SLD Raster Style')\n"
+	      "WHERE XB_IsSldStyle(NEW.style) <> 1;\nEND";
+      }
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* automatically setting the style_name after inserting */
+    sql = "CREATE TRIGGER segrpstl_style_name_ins\n"
+	"AFTER INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	"UPDATE SE_group_styles "
+	"SET style_name = XB_GetName(NEW.style) "
+	"WHERE group_name = NEW.group_name "
+	"AND style_id = NEW.style_id;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+/* automatically setting the style_name after updating */
+    sql = "CREATE TRIGGER segrpstl_style_name_upd\n"
+	"AFTER UPDATE OF style ON "
+	"'SE_group_styles'\nFOR EACH ROW BEGIN\n"
+	"UPDATE SE_group_styles "
+	"SET style_name = XB_GetName(NEW.style) "
+	"WHERE group_name = NEW.group_name "
+	"AND style_id = NEW.style_id;\nEND";
+    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("SQL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    return 1;
+}
 
 static int
 create_external_graphics_view (sqlite3 * sqlite)
@@ -1726,7 +2762,7 @@ create_vector_styled_layers_view (sqlite3 * sqlite)
     sql_statement =
 	sqlite3_mprintf ("CREATE VIEW SE_vector_styled_layers_view AS \n"
 			 "SELECT f_table_name AS f_table_name, f_geometry_column AS f_geometry_column, "
-			 "style_id AS style_id, XB_GetTitle(style) AS title, "
+			 "style_id AS style_id, style_name AS name, XB_GetTitle(style) AS title, "
 			 "XB_GetAbstract(style) AS abstract, style AS style, "
 			 "XB_IsSchemaValidated(style) AS schema_validated, "
 			 "XB_GetSchemaURI(style) AS schema_uri\n"
@@ -1753,8 +2789,8 @@ create_raster_styled_layers_view (sqlite3 * sqlite)
     char *err_msg = NULL;
     sql_statement =
 	sqlite3_mprintf ("CREATE VIEW SE_raster_styled_layers_view AS \n"
-			 "SELECT coverage_name AS coverage_name, "
-			 "style_id AS style_id, XB_GetTitle(style) AS title, "
+			 "SELECT coverage_name AS coverage_name, style_id AS style_id, "
+			 "style_name AS name, XB_GetTitle(style) AS title, "
 			 "XB_GetAbstract(style) AS abstract, style AS style, "
 			 "XB_IsSchemaValidated(style) AS schema_validated, "
 			 "XB_GetSchemaURI(style) AS schema_uri\n"
@@ -1783,26 +2819,19 @@ create_styled_groups_view (sqlite3 * sqlite)
 	"SELECT g.group_name AS group_name, g.title AS group_title, "
 	"g.abstract AS group_abstract, gr.paint_order AS paint_order, "
 	"'vector' AS type, v.f_table_name AS layer_name, "
-	"v.f_geometry_column AS geometry_column, v.style_id AS style_id, "
-	"XB_GetTitle(v.style) AS style_title, XB_GetAbstract(v.style) AS style_abstract, "
-	"v.style AS style, gc.geometry_type AS geometry_type, "
-	"gc.coord_dimension AS coord_dimension, gc.srid AS srid "
-	"FROM SE_styled_groups AS g "
+	"v.f_geometry_column AS geometry_column, "
+	"v.geometry_type AS geometry_type, v.coord_dimension AS coord_dimension, "
+	"v.srid AS srid FROM SE_styled_groups AS g "
 	"JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) "
-	"JOIN SE_vector_styled_layers AS v ON (gr.f_table_name = v.f_table_name "
-	"AND gr.f_geometry_column = v.f_geometry_column AND gr.vector_style_id = v.style_id) "
-	"JOIN geometry_columns AS gc ON (v.f_table_name = gc.f_table_name "
-	"AND v.f_geometry_column = gc.f_geometry_column) UNION "
+	"JOIN geometry_columns AS v ON (gr.f_table_name = v.f_table_name "
+	"AND gr.f_geometry_column = v.f_geometry_column) UNION "
 	"SELECT g.group_name AS group_name, g.title AS group_title, "
 	"g.abstract AS group_abstract, gr.paint_order AS paint_order, "
 	"'raster' AS type, r.coverage_name AS layer_name, NULL AS geometry_column, "
-	"r.style_id AS style_id, XB_GetTitle(r.style) AS style_title, "
-	"XB_GetAbstract(r.style) AS style_abstract, r.style AS style, "
-	"NULL AS geometry_type, NULL AS coord_dimension, NULL AS srid "
+	"NULL AS geometry_type, NULL AS coord_dimension, r.srid AS srid "
 	"FROM SE_styled_groups AS g "
 	"JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) "
-	"JOIN SE_raster_styled_layers AS r ON (gr.coverage_name = r.coverage_name "
-	"AND gr.raster_style_id = r.style_id)";
+	"JOIN raster_coverages AS r ON (gr.coverage_name = r.coverage_name)";
     ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
     if (ret != SQLITE_OK)
       {
@@ -1814,12 +2843,39 @@ create_styled_groups_view (sqlite3 * sqlite)
     return 1;
 }
 
+static int
+create_group_styles_view (sqlite3 * sqlite)
+{
+/* creating the SE_group_styles_view view */
+    char *sql_statement;
+    int ret;
+    char *err_msg = NULL;
+    sql_statement =
+	sqlite3_mprintf ("CREATE VIEW SE_group_styles_view AS \n"
+			 "SELECT group_name AS group_name, style_id AS style_id, "
+			 "style_name AS name, XB_GetTitle(style) AS title, "
+			 "XB_GetAbstract(style) AS abstract, style AS style, "
+			 "XB_IsSchemaValidated(style) AS schema_validated, "
+			 "XB_GetSchemaURI(style) AS schema_uri\n"
+			 "FROM SE_group_styles");
+    ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg);
+    sqlite3_free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e
+	      ("CREATE VIEW 'SE_group_styles_view' error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    return 1;
+}
+
 SPATIALITE_PRIVATE int
 createStylingTables (void *p_sqlite, int relaxed)
 {
 /* Creating the SE Styling tables */
-    const char *tables[10];
-    int views[9];
+    const char *tables[12];
+    int views[11];
     const char **p_tbl;
     int *p_view;
     int ok_table;
@@ -1831,20 +2887,24 @@ createStylingTables (void *p_sqlite, int relaxed)
     tables[2] = "SE_raster_styled_layers";
     tables[3] = "SE_styled_groups";
     tables[4] = "SE_styled_group_refs";
-    tables[5] = "SE_external_graphics_view";
-    tables[6] = "SE_vector_styled_layers_view";
-    tables[7] = "SE_raster_styled_layers_view";
-    tables[8] = "SE_styled_groups_view";
-    tables[9] = NULL;
+    tables[5] = "SE_group_styles";
+    tables[6] = "SE_external_graphics_view";
+    tables[7] = "SE_vector_styled_layers_view";
+    tables[8] = "SE_raster_styled_layers_view";
+    tables[9] = "SE_styled_groups_view";
+    tables[10] = "SE_group_styles_view";
+    tables[11] = NULL;
     views[0] = 0;
     views[1] = 0;
     views[2] = 0;
     views[3] = 0;
     views[4] = 0;
-    views[5] = 1;
+    views[5] = 0;
     views[6] = 1;
     views[7] = 1;
     views[8] = 1;
+    views[9] = 1;
+    views[10] = 1;
     p_tbl = tables;
     p_view = views;
     while (*p_tbl != NULL)
@@ -1878,6 +2938,8 @@ createStylingTables (void *p_sqlite, int relaxed)
 	goto error;
     if (!create_styled_group_refs (sqlite))
 	goto error;
+    if (!create_group_styles (sqlite, relaxed))
+	goto error;
     if (!create_external_graphics_view (sqlite))
 	goto error;
     if (!create_vector_styled_layers_view (sqlite))
@@ -1886,6 +2948,8 @@ createStylingTables (void *p_sqlite, int relaxed)
 	goto error;
     if (!create_styled_groups_view (sqlite))
 	goto error;
+    if (!create_group_styles_view (sqlite))
+	goto error;
     return 1;
 
   error:
@@ -2773,7 +3837,7 @@ SPATIALITE_PRIVATE int
 register_styled_group (void *p_sqlite, const char *group_name,
 		       const char *f_table_name,
 		       const char *f_geometry_column,
-		       const char *coverage_name, int style_id, int paint_order)
+		       const char *coverage_name, int paint_order)
 {
 /* auxiliary function: inserts or updates a Styled Group Item */
     sqlite3 *sqlite = (sqlite3 *) p_sqlite;
@@ -2915,15 +3979,15 @@ register_styled_group (void *p_sqlite, const char *group_name,
 	    {
 		/* vector styled layer */
 		sql = "INSERT INTO SE_styled_group_refs "
-		    "(id, group_name, f_table_name, f_geometry_column, vector_style_id, paint_order) "
-		    "VALUES (NULL, ?, ?, ?, ?, ?)";
+		    "(id, group_name, f_table_name, f_geometry_column, paint_order) "
+		    "VALUES (NULL, ?, ?, ?, ?)";
 	    }
 	  else
 	    {
 		/* raster styled layer */
 		sql = "INSERT INTO SE_styled_group_refs "
-		    "(id, group_name, coverage_name, raster_style_id, paint_order) "
-		    "VALUES (NULL, ?, ?, ?, ?)";
+		    "(id, group_name, coverage_name, paint_order) "
+		    "VALUES (NULL, ?, ?, ?)";
 	    }
       }
     ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
@@ -2953,16 +4017,14 @@ register_styled_group (void *p_sqlite, const char *group_name,
 				   strlen (f_table_name), SQLITE_STATIC);
 		sqlite3_bind_text (stmt, 3, f_geometry_column,
 				   strlen (f_geometry_column), SQLITE_STATIC);
-		sqlite3_bind_int (stmt, 4, style_id);
-		sqlite3_bind_int (stmt, 5, paint_order);
+		sqlite3_bind_int (stmt, 4, paint_order);
 	    }
 	  else
 	    {
 		/* raster styled layer */
 		sqlite3_bind_text (stmt, 2, coverage_name,
 				   strlen (coverage_name), SQLITE_STATIC);
-		sqlite3_bind_int (stmt, 3, style_id);
-		sqlite3_bind_int (stmt, 4, paint_order);
+		sqlite3_bind_int (stmt, 3, paint_order);
 	    }
       }
     ret = sqlite3_step (stmt);
@@ -3073,6 +4135,127 @@ styled_group_set_infos (void *p_sqlite, const char *group_name,
 }
 
 SPATIALITE_PRIVATE int
+register_group_style (void *p_sqlite, const char *group_name, int style_id,
+		      const unsigned char *p_blob, int n_bytes)
+{
+/* auxiliary function: inserts or updates a Group Style */
+    sqlite3 *sqlite = (sqlite3 *) p_sqlite;
+    int ret;
+    const char *sql;
+    sqlite3_stmt *stmt;
+    int exists = 0;
+    int retval = 0;
+
+    if (style_id >= 0)
+      {
+	  /* checking if already exists */
+	  sql = "SELECT style_id FROM SE_group_styles "
+	      "WHERE group_name = Lower(?) AND style_id = ?";
+	  ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
+	  if (ret != SQLITE_OK)
+	    {
+		spatialite_e ("registerGroupStyle: \"%s\"\n",
+			      sqlite3_errmsg (sqlite));
+		goto stop;
+	    }
+	  sqlite3_reset (stmt);
+	  sqlite3_clear_bindings (stmt);
+	  sqlite3_bind_text (stmt, 1, group_name, strlen (group_name),
+			     SQLITE_STATIC);
+	  sqlite3_bind_int (stmt, 2, style_id);
+	  while (1)
+	    {
+		/* scrolling the result set rows */
+		ret = sqlite3_step (stmt);
+		if (ret == SQLITE_DONE)
+		    break;	/* end of result set */
+		if (ret == SQLITE_ROW)
+		    exists = 1;
+	    }
+	  sqlite3_finalize (stmt);
+      }
+    else
+      {
+	  /* assigning the next style_id value */
+	  style_id = 0;
+	  sql = "SELECT Max(style_id) FROM SE_group_styles "
+	      "WHERE group_name = Lower(?) ";
+	  ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
+	  if (ret != SQLITE_OK)
+	    {
+		spatialite_e ("registerGroupStyle: \"%s\"\n",
+			      sqlite3_errmsg (sqlite));
+		goto stop;
+	    }
+	  sqlite3_reset (stmt);
+	  sqlite3_clear_bindings (stmt);
+	  sqlite3_bind_text (stmt, 1, group_name, strlen (group_name),
+			     SQLITE_STATIC);
+	  while (1)
+	    {
+		/* scrolling the result set rows */
+		ret = sqlite3_step (stmt);
+		if (ret == SQLITE_DONE)
+		    break;	/* end of result set */
+		if (ret == SQLITE_ROW)
+		  {
+		      if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER)
+			  style_id = sqlite3_column_int (stmt, 0) + 1;
+		  }
+	    }
+	  sqlite3_finalize (stmt);
+      }
+
+    if (exists)
+      {
+	  /* update */
+	  sql = "UPDATE SE_group_styles SET style = ? "
+	      "WHERE group_name = Lower(?) AND style_id = ?";
+      }
+    else
+      {
+	  /* insert */
+	  sql = "INSERT INTO SE_group_styles "
+	      "(group_name, style_id, style) VALUES (?, ?, ?)";
+      }
+    ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("registerGroupStyle: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  goto stop;
+      }
+    sqlite3_reset (stmt);
+    sqlite3_clear_bindings (stmt);
+    if (exists)
+      {
+	  /* update */
+	  sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC);
+	  sqlite3_bind_text (stmt, 2, group_name, strlen (group_name),
+			     SQLITE_STATIC);
+	  sqlite3_bind_int (stmt, 3, style_id);
+      }
+    else
+      {
+	  /* insert */
+	  sqlite3_bind_text (stmt, 1, group_name, strlen (group_name),
+			     SQLITE_STATIC);
+	  sqlite3_bind_int (stmt, 2, style_id);
+	  sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC);
+      }
+    ret = sqlite3_step (stmt);
+    if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+	retval = 1;
+    else
+	spatialite_e ("registerGroupStyled() error: \"%s\"\n",
+		      sqlite3_errmsg (sqlite));
+    sqlite3_finalize (stmt);
+    return retval;
+  stop:
+    return 0;
+}
+
+SPATIALITE_PRIVATE int
 get_iso_metadata_id (void *p_sqlite, const char *fileIdentifier, void *p_id)
 {
 /* auxiliary function: return the ID of the row corresponding to "fileIdentifier" */
diff --git a/src/spatialite/mbrcache.c b/src/spatialite/mbrcache.c
index 6f90111..b9dda0e 100644
--- a/src/spatialite/mbrcache.c
+++ b/src/spatialite/mbrcache.c
@@ -1525,7 +1525,8 @@ sqlite3MbrCacheInit (sqlite3 * db)
 }
 
 int
-mbrcache_extension_init (sqlite3 * db)
+mbrcache_extension_init (void *xdb)
 {
+    sqlite3 *db = (sqlite3 *) xdb;
     return sqlite3MbrCacheInit (db);
 }
diff --git a/src/spatialite/metatables.c b/src/spatialite/metatables.c
index c3f9955..3d4a093 100644
--- a/src/spatialite/metatables.c
+++ b/src/spatialite/metatables.c
@@ -3704,6 +3704,7 @@ updateGeometryTriggers (void *p_sqlite, const char *table, const char *column)
 	  if (curr_idx->ValidRtree)
 	    {
 		/* building RTree SpatialIndex */
+		int status;
 		raw = sqlite3_mprintf ("idx_%s_%s", curr_idx->TableName,
 				       curr_idx->ColumnName);
 		quoted_rtree = gaiaDoubleQuotedSql (raw);
@@ -3716,9 +3717,24 @@ updateGeometryTriggers (void *p_sqlite, const char *table, const char *column)
 		sqlite3_free (sql_statement);
 		if (ret != SQLITE_OK)
 		    goto error;
-		buildSpatialIndex (sqlite,
-				   (unsigned char *) (curr_idx->TableName),
-				   curr_idx->ColumnName);
+		status = buildSpatialIndexEx (sqlite,
+					      (unsigned char
+					       *) (curr_idx->TableName),
+					      curr_idx->ColumnName);
+		if (status == 0)
+		    ;
+		else
+		  {
+		      if (status == -2)
+			  errMsg =
+			      sqlite3_mprintf
+			      ("SpatialIndex error: a physical column named ROWID shadows the real ROWID");
+		      else
+			  errMsg =
+			      sqlite3_mprintf
+			      ("SpatialIndex error: unable to rebuild the T*Tree");
+		      goto error;
+		  }
 	    }
 	  if (curr_idx->ValidCache)
 	    {
@@ -3769,6 +3785,51 @@ SPATIALITE_PRIVATE void
 buildSpatialIndex (void *p_sqlite, const unsigned char *table,
 		   const char *column)
 {
+/* DEPRECATED - always use buildSpatialIndexEx as a safer replacement */
+    buildSpatialIndexEx (p_sqlite, table, column);
+}
+
+SPATIALITE_PRIVATE int
+validateRowid (void *p_sqlite, const char *table)
+{
+/* check for tables containing a physical column named ROWID */
+    sqlite3 *sqlite = (sqlite3 *) p_sqlite;
+    int rowid = 0;
+    char *sql;
+    int ret;
+    const char *name;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *quoted_table = gaiaDoubleQuotedSql (table);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted_table);
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
+    free (quoted_table);
+    if (ret != SQLITE_OK)
+	return 0;
+    if (rows < 1)
+	;
+    else
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, "rowid") == 0)
+		    rowid = 1;
+	    }
+      }
+    sqlite3_free_table (results);
+    if (rowid == 0)
+	return 1;
+    return 0;
+}
+
+SPATIALITE_PRIVATE int
+buildSpatialIndexEx (void *p_sqlite, const unsigned char *table,
+		     const char *column)
+{
 /* loading a SpatialIndex [RTree] */
     sqlite3 *sqlite = (sqlite3 *) p_sqlite;
     char *raw;
@@ -3779,6 +3840,14 @@ buildSpatialIndex (void *p_sqlite, const unsigned char *table,
     char *errMsg = NULL;
     int ret;
 
+    if (!validateRowid (sqlite, (const char *) table))
+      {
+	  /* a physical column named "rowid" shadows the real ROWID */
+	  spatialite_e
+	      ("buildSpatialIndex error: a physical column named ROWID shadows the real ROWID\n");
+	  return -2;
+      }
+
     raw = sqlite3_mprintf ("idx_%s_%s", table, column);
     quoted_rtree = gaiaDoubleQuotedSql (raw);
     sqlite3_free (raw);
@@ -3800,7 +3869,9 @@ buildSpatialIndex (void *p_sqlite, const unsigned char *table,
       {
 	  spatialite_e ("buildSpatialIndex error: \"%s\"\n", errMsg);
 	  sqlite3_free (errMsg);
+	  return -1;
       }
+    return 0;
 }
 
 SPATIALITE_PRIVATE int
@@ -5982,3 +6053,53 @@ gaiaGetLayerExtent (sqlite3 * handle, const char *table,
     gaiaSetPoint (rect->Coords, 4, minx, miny);	/* vertex # 5 [same as vertex # 1 to close the polygon] */
     return bbox;
 }
+
+SPATIALITE_DECLARE int
+gaiaStatisticsInvalidate (sqlite3 * sqlite, const char *table,
+			  const char *geometry)
+{
+/* attempting to immediately and unconditionally invalidate Statistics */
+    int metadata_version = checkSpatialMetaData (sqlite);
+
+    if (metadata_version == 3)
+      {
+	  /* current metadata style >= v.4.0.0 */
+	  int ret;
+	  char *errMsg = NULL;
+	  char *sql_statement;
+	  if (table != NULL && geometry != NULL)
+	      sql_statement =
+		  sqlite3_mprintf ("UPDATE geometry_columns_time SET "
+				   "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), "
+				   "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), "
+				   "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now') "
+				   "WHERE Lower(f_table_name) = Lower(%Q) AND "
+				   "Lower(f_geometry_column) = Lower(%Q)",
+				   table, geometry);
+	  else if (table != NULL)
+	      sql_statement =
+		  sqlite3_mprintf ("UPDATE geometry_columns_time SET "
+				   "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), "
+				   "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), "
+				   "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now') "
+				   "WHERE Lower(f_table_name) = Lower(%Q)",
+				   table);
+	  else
+	      sql_statement =
+		  sqlite3_mprintf ("UPDATE geometry_columns_time SET "
+				   "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), "
+				   "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), "
+				   "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')");
+	  ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg);
+	  sqlite3_free (sql_statement);
+	  if (ret != SQLITE_OK)
+	    {
+		spatialite_e ("SQL error: %s: %s\n", sql_statement, errMsg);
+		sqlite3_free (errMsg);
+		return 0;
+	    }
+	  return 1;
+      }
+    else
+	return 0;
+}
diff --git a/src/spatialite/spatialite.c b/src/spatialite/spatialite.c
index 69d592c..7b4c754 100644
--- a/src/spatialite/spatialite.c
+++ b/src/spatialite/spatialite.c
@@ -85,6 +85,7 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
 #include <spatialite/gaiaexif.h>
 #include <spatialite/geopackage.h>
 #include <spatialite/spatialite.h>
+#include <spatialite/gg_advanced.h>
 #include <spatialite/gg_dxf.h>
 #include <spatialite.h>
 #include <spatialite_private.h>
@@ -154,6 +155,13 @@ struct fdo_table
     struct fdo_table *next;
 };
 
+struct gpkg_table
+{
+/* a struct to implement a linked-list for OGC GeoPackage table names */
+    char *table;
+    struct gpkg_table *next;
+};
+
 static void
 fnct_spatialite_version (sqlite3_context * context, int argc,
 			 sqlite3_value ** argv)
@@ -171,6 +179,22 @@ fnct_spatialite_version (sqlite3_context * context, int argc,
 }
 
 static void
+fnct_spatialite_target_cpu (sqlite3_context * context, int argc,
+			    sqlite3_value ** argv)
+{
+/* SQL function:
+/ spatialite_target_cpu()
+/
+/ return a text string representing the current SpatiaLite Target CPU
+*/
+    int len;
+    const char *p_result = spatialite_target_cpu ();
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    len = strlen (p_result);
+    sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT);
+}
+
+static void
 fnct_geos_version (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
 /* SQL function:
@@ -436,6 +460,22 @@ fnct_has_libxml2 (sqlite3_context * context, int argc, sqlite3_value ** argv)
 }
 
 static void
+fnct_has_geopackage (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ HasGeoPackage()
+/
+/ return 1 if built including GeoPackage support (GPKG); otherwise 0
+*/
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+#ifdef ENABLE_GEOPACKAGE		/* GEOPACKAGE is supported */
+    sqlite3_result_int (context, 1);
+#else
+    sqlite3_result_int (context, 0);
+#endif
+}
+
+static void
 fnct_GeometryConstraints (sqlite3_context * context, int argc,
 			  sqlite3_value ** argv)
 {
@@ -957,11 +997,133 @@ fnct_IsValidNoDataPixel (sqlite3_context * context, int argc,
 */
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
-	sqlite3_result_int (context, -1);
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
     if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
-	sqlite3_result_int (context, -1);
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
     if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER)
-	sqlite3_result_int (context, -1);
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    sqlite3_result_int (context, 0);
+}
+
+static void
+fnct_IsValidRasterPalette (sqlite3_context * context, int argc,
+			   sqlite3_value ** argv)
+{
+/* SQL function:
+/ IsValidRasterPalette(BLOBencoded palette, text sample_type)
+/
+/ basic version intended to be overloaded by RasterLite-2
+/ always return 0 (FALSE)
+/ or -1 (INVALID ARGS)
+/
+*/
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    sqlite3_result_int (context, 0);
+}
+
+static void
+fnct_IsValidRasterStatistics (sqlite3_context * context, int argc,
+			      sqlite3_value ** argv)
+{
+/* SQL function:
+/ IsValidRasterStatistics(text coverage, BLOBencoded statistics)
+/   or
+/ IsValidRasterStatistics(BLOBencoded statistics, text sample_type, int num_bands)
+/
+/ basic version intended to be overloaded by RasterLite-2
+/ always return 0 (FALSE)
+/ or -1 (INVALID ARGS)
+/
+*/
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (argc == 2)
+      {
+	  if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+      }
+    else
+      {
+	  if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+      }
+    sqlite3_result_int (context, 0);
+}
+
+static void
+fnct_IsValidRasterTile (sqlite3_context * context, int argc,
+			sqlite3_value ** argv)
+{
+/* SQL function:
+/ IsValidRasterTile(text coverage, integer level, BLOBencoded tile_odd,
+/   BLOBencoded tile_even)
+/
+/ basic version intended to be overloaded by RasterLite-2
+/ always return 0 (FALSE)
+/ or -1 (INVALID ARGS)
+/
+*/
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    if (sqlite3_value_type (argv[2]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    if (sqlite3_value_type (argv[3]) != SQLITE_BLOB
+	&& sqlite3_value_type (argv[3]) != SQLITE_NULL)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
     sqlite3_result_int (context, 0);
 }
 
@@ -970,7 +1132,7 @@ fnct_IsPopulatedCoverage (sqlite3_context * context, int argc,
 			  sqlite3_value ** argv)
 {
 /* SQL function:
-/ IsPopulatedCoverage()
+/ IsPopulatedCoverage(text coverage)
 /
 / check if a RasterCoverage is already populated 
 / returns 1 if TRUE, 0 if FALSE
@@ -991,6 +1153,60 @@ fnct_IsPopulatedCoverage (sqlite3_context * context, int argc,
     return;
 }
 
+static int
+is_without_rowid_table (sqlite3 * sqlite, const char *table)
+{
+/* internal utility functions; checks for WITHOUT ROWID tables */
+    char *sql;
+    char *xtable;
+    int ret;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    int j;
+    char **results2;
+    int rows2;
+    int columns2;
+    char *errMsg = NULL;
+    int without_rowid = 0;
+
+    xtable = gaiaDoubleQuotedSql (table);
+    sql = sqlite3_mprintf ("PRAGMA index_list(\"%s\")", xtable);
+    free (xtable);
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sqlite3_free (errMsg);
+	  return 1;
+      }
+    for (i = 1; i <= rows; i++)
+      {
+	  const char *index = results[(i * columns) + 1];
+	  sql = sqlite3_mprintf ("SELECT count(*) FROM sqlite_master WHERE "
+				 "type = 'index' AND tbl_name = %Q AND name = %Q",
+				 table, index);
+	  ret =
+	      sqlite3_get_table (sqlite, sql, &results2, &rows2, &columns2,
+				 &errMsg);
+	  sqlite3_free (sql);
+	  if (ret != SQLITE_OK)
+	    {
+		sqlite3_free (errMsg);
+		return 1;
+	    }
+	  for (j = 1; j <= rows2; j++)
+	    {
+		if (atoi (results2[(j * columns2) + 0]) == 0)
+		    without_rowid = 1;
+	    }
+	  sqlite3_free_table (results2);
+      }
+    sqlite3_free_table (results);
+    return without_rowid;
+}
+
 SPATIALITE_PRIVATE int
 checkSpatialMetaData (const void *handle)
 {
@@ -1275,7 +1491,7 @@ fnct_AutoFDOStop (sqlite3_context * context, int argc, sqlite3_value ** argv)
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (checkSpatialMetaData (sqlite) == 2)
       {
-	  /* ok, creating VirtualFDO tables */
+	  /* ok, removing VirtualFDO tables */
 	  sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns";
 	  ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows,
 				   &columns, NULL);
@@ -1513,53 +1729,361 @@ fnct_InitSpatialMetaData (sqlite3_context * context, int argc,
     return;
 }
 
-static void
-fnct_InsertEpsgSrid (sqlite3_context * context, int argc, sqlite3_value ** argv)
+static int
+checkGeoPackage (sqlite3 * handle)
 {
-/* SQL function:
-/ InsertEpsgSrid(int srid)
-/
-/ returns 1 on success: 0 on failure
-*/
-    int srid;
+/* testing for GeoPackage meta-tables */
+    sqlite3 *sqlite = (sqlite3 *) handle;
+    char sql[1024];
     int ret;
-    sqlite3 *sqlite = sqlite3_context_db_handle (context);
-    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
-    if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
-	srid = sqlite3_value_int (argv[0]);
+    const char *name;
+    int table_name = 0;
+    int column_name = 0;
+    int geometry_type_name = 0;
+    int srs_id_gc = 0;
+    int has_z = 0;
+    int has_m = 0;
+    int gpkg_gc = 0;
+    int srs_id_srs = 0;
+    int srs_name = 0;
+    int gpkg_srs = 0;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+/* checking the GPKG_GEOMETRY_COLUMNS table */
+    strcpy (sql, "PRAGMA table_info(gpkg_geometry_columns)");
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	goto unknown;
+    if (rows < 1)
+	;
     else
       {
-	  sqlite3_result_int (context, 0);
-	  return;
+	  for (i = 1; i <= rows; i++)
+	    {
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, "table_name") == 0)
+		    table_name = 1;
+		if (strcasecmp (name, "column_name") == 0)
+		    column_name = 1;
+		if (strcasecmp (name, "geometry_type_name") == 0)
+		    geometry_type_name = 1;
+		if (strcasecmp (name, "srs_id") == 0)
+		    srs_id_gc = 1;
+		if (strcasecmp (name, "z") == 0)
+		    has_z = 1;
+		if (strcasecmp (name, "m") == 0)
+		    has_m = 1;
+	    }
       }
-    ret = insert_epsg_srid (sqlite, srid);
-    if (!ret)
-	sqlite3_result_int (context, 0);
+    sqlite3_free_table (results);
+    if (table_name && column_name && geometry_type_name && srs_id_gc && has_z
+	&& has_m)
+	gpkg_gc = 1;
+/* checking the GPKG_SPATIAL_REF_SYS table */
+    strcpy (sql, "PRAGMA table_info(gpkg_spatial_ref_sys)");
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    if (ret != SQLITE_OK)
+	goto unknown;
+    if (rows < 1)
+	;
     else
-	sqlite3_result_int (context, 1);
+      {
+	  for (i = 1; i <= rows; i++)
+	    {
+		name = results[(i * columns) + 1];
+		if (strcasecmp (name, "srs_id") == 0)
+		    srs_id_srs = 1;
+		if (strcasecmp (name, "srs_name") == 0)
+		    srs_name = 1;
+	    }
+      }
+    sqlite3_free_table (results);
+    if (srs_id_srs && srs_name)
+	gpkg_srs = 1;
+    if (gpkg_gc && gpkg_srs)
+	return 1;
+  unknown:
+    return 0;
 }
 
-static int
-recoverGeomColumn (sqlite3 * sqlite, const char *table,
-		   const char *column, int xtype, int dims, int srid)
+static void
+fnct_CheckGeoPackageMetaData (sqlite3_context * context, int argc,
+			      sqlite3_value ** argv)
 {
-/* checks if TABLE.COLUMN exists and has the required features */
-    int ok = 1;
-    int type;
-    sqlite3_stmt *stmt;
-    gaiaGeomCollPtr geom;
-    const void *blob_value;
-    int len;
+/* SQL function:
+/ CheckGeoPackageMetaData(void)
+/
+/ for OGC GeoPackage interoperability:
+/ tests if GeoPackage metadata tables are found
+/
+*/
+    sqlite3 *sqlite;
     int ret;
-    int i_col;
-    int is_nullable = 1;
-    char *p_table;
-    char *p_column;
-    char *sql_statement;
-
-/* testing if NOT NULL */
-    p_table = gaiaDoubleQuotedSql (table);
-    sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", p_table);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    sqlite = sqlite3_context_db_handle (context);
+    ret = checkGeoPackage (sqlite);
+    sqlite3_result_int (context, ret);
+    return;
+}
+
+#ifdef ENABLE_GEOPACKAGE	/* enabling GeoPackage extensions */
+
+static void
+add_gpkg_table (struct gpkg_table **first, struct gpkg_table **last,
+		const char *table, int len)
+{
+/* adds a GPKG Geometry Table to corresponding linked list */
+    struct gpkg_table *p = malloc (sizeof (struct gpkg_table));
+    p->table = malloc (len + 1);
+    strcpy (p->table, table);
+    p->next = NULL;
+    if (!(*first))
+	(*first) = p;
+    if ((*last))
+	(*last)->next = p;
+    (*last) = p;
+}
+
+static void
+free_gpkg_tables (struct gpkg_table *first)
+{
+/* memory cleanup; destroying the GPKG tables linked list */
+    struct gpkg_table *p;
+    struct gpkg_table *pn;
+    p = first;
+    while (p)
+      {
+	  pn = p->next;
+	  if (p->table)
+	      free (p->table);
+	  free (p);
+	  p = pn;
+      }
+}
+
+static void
+fnct_AutoGPKGStart (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ AutoGPKGStart(void)
+/
+/ for OCG GeoPackage interoperability:
+/ tests the DB layout, then automatically
+/ creating a VirtualGPKS table for each GPKG main table 
+/ declared within gpkg_geometry_colums
+/
+*/
+    int ret;
+    const char *name;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *sql_statement;
+    int count = 0;
+    struct gpkg_table *first = NULL;
+    struct gpkg_table *last = NULL;
+    struct gpkg_table *p;
+    int len;
+    char *xname;
+    char *xxname;
+    char *xtable;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (checkGeoPackage (sqlite))
+      {
+	  /* ok, creating VirtualGPKG tables */
+	  sql_statement =
+	      "SELECT DISTINCT table_name FROM gpkg_geometry_columns";
+	  ret =
+	      sqlite3_get_table (sqlite, sql_statement, &results, &rows,
+				 &columns, NULL);
+	  if (ret != SQLITE_OK)
+	      goto error;
+	  if (rows < 1)
+	      ;
+	  else
+	    {
+		for (i = 1; i <= rows; i++)
+		  {
+		      name = results[(i * columns) + 0];
+		      if (name)
+			{
+			    len = strlen (name);
+			    add_gpkg_table (&first, &last, name, len);
+			}
+		  }
+	    }
+	  sqlite3_free_table (results);
+	  p = first;
+	  while (p)
+	    {
+		/* destroying the VirtualGPKG table [if existing] */
+		xxname = sqlite3_mprintf ("vgpkg_%s", p->table);
+		xname = gaiaDoubleQuotedSql (xxname);
+		sqlite3_free (xxname);
+		sql_statement =
+		    sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname);
+		free (xname);
+		ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL);
+		sqlite3_free (sql_statement);
+		if (ret != SQLITE_OK)
+		    goto error;
+		/* creating the VirtualGPKG table */
+		xxname = sqlite3_mprintf ("vgpkg_%s", p->table);
+		xname = gaiaDoubleQuotedSql (xxname);
+		sqlite3_free (xxname);
+		xtable = gaiaDoubleQuotedSql (p->table);
+		sql_statement =
+		    sqlite3_mprintf
+		    ("CREATE VIRTUAL TABLE \"%s\" USING VirtualGPKG(\"%s\")",
+		     xname, xtable);
+		free (xname);
+		free (xtable);
+		ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL);
+		sqlite3_free (sql_statement);
+		if (ret != SQLITE_OK)
+		    goto error;
+		count++;
+		p = p->next;
+	    }
+	error:
+	  free_gpkg_tables (first);
+	  sqlite3_result_int (context, count);
+	  return;
+      }
+    sqlite3_result_int (context, 0);
+    return;
+}
+
+static void
+fnct_AutoGPKGStop (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ AutoGPKGStop(void)
+/
+/ for OGC GeoPackage interoperability:
+/ tests the DB layout, then automatically removes any VirtualGPKG table 
+/
+*/
+    int ret;
+    const char *name;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+    char *sql_statement;
+    int count = 0;
+    struct gpkg_table *first = NULL;
+    struct gpkg_table *last = NULL;
+    struct gpkg_table *p;
+    int len;
+    char *xname;
+    char *xxname;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (checkGeoPackage (sqlite))
+      {
+	  /* ok, removing VirtualGPKG tables */
+	  sql_statement =
+	      "SELECT DISTINCT table_name FROM gpkg_geometry_columns";
+	  ret =
+	      sqlite3_get_table (sqlite, sql_statement, &results, &rows,
+				 &columns, NULL);
+	  if (ret != SQLITE_OK)
+	      goto error;
+	  if (rows < 1)
+	      ;
+	  else
+	    {
+		for (i = 1; i <= rows; i++)
+		  {
+		      name = results[(i * columns) + 0];
+		      if (name)
+			{
+			    len = strlen (name);
+			    add_gpkg_table (&first, &last, name, len);
+			}
+		  }
+	    }
+	  sqlite3_free_table (results);
+	  p = first;
+	  while (p)
+	    {
+		/* destroying the VirtualGPKG table [if existing] */
+		xxname = sqlite3_mprintf ("vgpkg_%s", p->table);
+		xname = gaiaDoubleQuotedSql (xxname);
+		sqlite3_free (xxname);
+		sql_statement =
+		    sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname);
+		free (xname);
+		ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL);
+		sqlite3_free (sql_statement);
+		if (ret != SQLITE_OK)
+		    goto error;
+		count++;
+		p = p->next;
+	    }
+	error:
+	  free_gpkg_tables (first);
+	  sqlite3_result_int (context, count);
+	  return;
+      }
+    sqlite3_result_int (context, 0);
+    return;
+}
+
+#endif /* end enabling GeoPackage extensions */
+
+static void
+fnct_InsertEpsgSrid (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ InsertEpsgSrid(int srid)
+/
+/ returns 1 on success: 0 on failure
+*/
+    int srid;
+    int ret;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+	srid = sqlite3_value_int (argv[0]);
+    else
+      {
+	  sqlite3_result_int (context, 0);
+	  return;
+      }
+    ret = insert_epsg_srid (sqlite, srid);
+    if (!ret)
+	sqlite3_result_int (context, 0);
+    else
+	sqlite3_result_int (context, 1);
+}
+
+static int
+recoverGeomColumn (sqlite3 * sqlite, const char *table,
+		   const char *column, int xtype, int dims, int srid)
+{
+/* checks if TABLE.COLUMN exists and has the required features */
+    int ok = 1;
+    int type;
+    sqlite3_stmt *stmt;
+    gaiaGeomCollPtr geom;
+    const void *blob_value;
+    int len;
+    int ret;
+    int i_col;
+    int is_nullable = 1;
+    char *p_table;
+    char *p_column;
+    char *sql_statement;
+
+/* testing if NOT NULL */
+    p_table = gaiaDoubleQuotedSql (table);
+    sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", p_table);
     free (p_table);
     ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement),
 			      &stmt, NULL);
@@ -1694,8 +2218,6 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
     int metadata_version;
     sqlite3_stmt *stmt;
     char *p_table = NULL;
-    const char *name;
-    int len;
     char *quoted_table;
     char *quoted_column;
     const char *p_type;
@@ -1988,12 +2510,12 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
 	      break;		/* end of result set */
 	  if (ret == SQLITE_ROW)
 	    {
-		name = (const char *) sqlite3_column_text (stmt, 0);
-		len = sqlite3_column_bytes (stmt, 0);
-		if (p_table)
-		    free (p_table);
-		p_table = malloc (len + 1);
-		strcpy (p_table, name);
+		if (p_table != NULL)
+		    sqlite3_free (p_table);
+		p_table =
+		    sqlite3_mprintf ("%s",
+				     (const char *) sqlite3_column_text (stmt,
+									 0));
 	    }
       }
     sqlite3_finalize (stmt);
@@ -2004,6 +2526,15 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
 	  sqlite3_result_int (context, 0);
 	  return;
       }
+/* checking for WITHOUT ROWID */
+    if (is_without_rowid_table (sqlite, table))
+      {
+	  spatialite_e
+	      ("AddGeometryColumn() error: table '%s' is WITHOUT ROWID\n",
+	       table);
+	  sqlite3_result_int (context, 0);
+	  return;
+      }
     metadata_version = checkSpatialMetaData (sqlite);
     if (metadata_version == 1 || metadata_version == 3)
 	;
@@ -2064,7 +2595,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
       {
 	  spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite));
 	  sqlite3_result_int (context, 0);
-	  free (p_table);
+	  sqlite3_free (p_table);
 	  return;
       }
 /*ok, inserting into geometry_columns [Spatial Metadata] */
@@ -2229,7 +2760,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
       {
 	  spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite));
 	  sqlite3_result_int (context, 0);
-	  free (p_table);
+	  sqlite3_free (p_table);
 	  return;
       }
     sqlite3_reset (stmt);
@@ -2265,7 +2796,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
 		spatialite_e ("AddGeometryColumn: \"%s\"\n",
 			      sqlite3_errmsg (sqlite));
 		sqlite3_result_int (context, 0);
-		free (p_table);
+		sqlite3_free (p_table);
 		return;
 	    }
 	  sqlite3_reset (stmt);
@@ -2293,7 +2824,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
 		spatialite_e ("AddGeometryColumn: \"%s\"\n",
 			      sqlite3_errmsg (sqlite));
 		sqlite3_result_int (context, 0);
-		free (p_table);
+		sqlite3_free (p_table);
 		return;
 	    }
 	  sqlite3_reset (stmt);
@@ -2321,7 +2852,7 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
 		spatialite_e ("AddGeometryColumn: \"%s\"\n",
 			      sqlite3_errmsg (sqlite));
 		sqlite3_result_int (context, 0);
-		free (p_table);
+		sqlite3_free (p_table);
 		return;
 	    }
 	  sqlite3_reset (stmt);
@@ -2389,11 +2920,11 @@ fnct_AddGeometryColumn (sqlite3_context * context, int argc,
 			 p_type, p_dims, (srid <= 0) ? -1 : srid);
     updateSpatiaLiteHistory (sqlite, table, column, sql_statement);
     sqlite3_free (sql_statement);
-    free (p_table);
+    sqlite3_free (p_table);
     return;
   error:
     sqlite3_result_int (context, 0);
-    free (p_table);
+    sqlite3_free (p_table);
     return;
 }
 
@@ -2727,6 +3258,14 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc,
 	  sqlite3_result_int (context, 0);
 	  return;
       }
+    if (is_without_rowid_table (sqlite, table))
+      {
+	  spatialite_e
+	      ("RecoverGeometryColumn() error: table '%s' is WITHOUT ROWID\n",
+	       table);
+	  sqlite3_result_int (context, 0);
+	  return;
+      }
 /* adjusting the actual GeometryType */
     xxtype = xtype;
     xtype = GAIA_UNKNOWN;
@@ -3012,7 +3551,7 @@ fnct_RecoverGeometryColumn (sqlite3_context * context, int argc,
 		break;
 	    case GAIA_POLYGON:
 		n_type = 3;
-		n_dims = 3;
+		n_dims = 2;
 		break;
 	    case GAIA_POLYGONZ:
 		n_type = 1003;
@@ -4529,6 +5068,16 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
     int ok_i_ymin;
     int ok_i_xmax;
     int ok_i_ymax;
+    int rowid_column = 0;
+    int without_rowid = 0;
+
+    if (is_without_rowid_table (sqlite, (char *) table))
+      {
+	  spatialite_e ("check_spatial_index: table \"%s\" is WITHOUT ROWID\n",
+			table);
+	  without_rowid = 1;
+	  goto err_label;
+      }
 
 /* checking if the R*Tree Spatial Index is defined */
     sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns "
@@ -4553,7 +5102,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	      is_defined = sqlite3_column_int (stmt, 0);
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		goto err_label;
 	    }
@@ -4568,6 +5118,13 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
     xidx_name = gaiaDoubleQuotedSql (idx_name);
     sqlite3_free (idx_name);
 
+    if (!validateRowid (sqlite, (const char *) table))
+      {
+	  /* a physical column named "rowid" shadows the real ROWID */
+	  rowid_column = 1;
+	  goto err_label;
+      }
+
 /* counting how many Geometries are set into the main-table */
     sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\" "
 				     "WHERE ST_GeometryType(\"%s\") IS NOT NULL",
@@ -4590,7 +5147,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	      count_geom = sqlite3_column_int (stmt, 0);
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		goto err_label;
 	    }
@@ -4617,7 +5175,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	      count_rtree = sqlite3_column_int (stmt, 0);
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		goto err_label;
 	    }
@@ -4707,7 +5266,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	    }
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		goto err_label;
 	    }
@@ -4794,7 +5354,8 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	    }
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		goto err_label;
 	    }
@@ -4827,6 +5388,10 @@ check_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	free (xtable);
     if (xidx_name)
 	free (xidx_name);
+    if (rowid_column)
+	return -2;
+    if (without_rowid)
+	return -3;
     return -1;
 }
 
@@ -4867,14 +5432,15 @@ check_any_spatial_index (sqlite3 * sqlite)
 		if (status < 0)
 		  {
 		      sqlite3_finalize (stmt);
-		      return -1;
+		      return status;
 		  }
 		if (status == 0)
 		    invalid_rtree = 1;
 	    }
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		return -1;
 	    }
@@ -4896,6 +5462,7 @@ fnct_CheckSpatialIndex (sqlite3_context * context, int argc,
 / checks a SpatialIndex for consistency, returning:
 / 1 - the R*Tree is fully consistent
 / 0 - the R*Tree is inconsistent
+/ -1 if any physical "ROWID" column exist shadowing the real ROWID
 / NULL on failure
 */
     const unsigned char *table;
@@ -4908,7 +5475,12 @@ fnct_CheckSpatialIndex (sqlite3_context * context, int argc,
 	  /* no arguments: we must check any defined R*Tree */
 	  status = check_any_spatial_index (sqlite);
 	  if (status < 0)
-	      sqlite3_result_null (context);
+	    {
+		if (status == -2)
+		    sqlite3_result_int (context, -1);
+		else
+		    sqlite3_result_null (context);
+	    }
 	  else if (status > 0)
 	      sqlite3_result_int (context, 1);
 	  else
@@ -4933,7 +5505,11 @@ fnct_CheckSpatialIndex (sqlite3_context * context, int argc,
       }
     column = sqlite3_value_text (argv[1]);
     status = check_spatial_index (sqlite, table, column);
-    if (status < 0)
+    if (status == -2)
+	sqlite3_result_int (context, -1);
+    else if (status == -3)
+	sqlite3_result_int (context, -1);
+    else if (status < 0)
 	sqlite3_result_null (context);
     else if (status > 0)
 	sqlite3_result_int (context, 1);
@@ -4954,6 +5530,7 @@ recover_spatial_index (sqlite3 * sqlite, const unsigned char *table,
     char sql[1024];
     int is_defined = 0;
     sqlite3_stmt *stmt;
+    int status;
 
 /* checking if the R*Tree Spatial Index is defined */
     sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns "
@@ -4978,7 +5555,8 @@ recover_spatial_index (sqlite3 * sqlite, const unsigned char *table,
 	      is_defined = sqlite3_column_int (stmt, 0);
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		return -1;
 	    }
@@ -4998,9 +5576,28 @@ recover_spatial_index (sqlite3 * sqlite, const unsigned char *table,
     if (ret != SQLITE_OK)
 	goto error;
 /* populating the R*Tree table from scratch */
-    buildSpatialIndex (sqlite, table, (const char *) geom);
-    strcpy (sql, "SpatialIndex: successfully recovered");
-    updateSpatiaLiteHistory (sqlite, (const char *) table,
+    status = buildSpatialIndexEx (sqlite, table, (const char *) geom);
+    if (status == 0)
+	;
+    else
+      {
+	  if (status == -2)
+	    {
+		strcpy (sql,
+			"SpatialIndex: a physical column named ROWID shadows the real ROWID");
+		updateSpatiaLiteHistory (sqlite, (const char *) table,
+					 (const char *) geom, sql);
+	    }
+	  else
+	    {
+		strcpy (sql, "SpatialIndex: unable to rebuild the R*Tree");
+		updateSpatiaLiteHistory (sqlite, (const char *) table,
+					 (const char *) geom, sql);
+	    }
+	  return status;
+      }
+    strcpy (sql, "SpatialIndex: successfully recovered");
+    updateSpatiaLiteHistory (sqlite, (const char *) table,
 			     (const char *) geom, sql);
     return 1;
   error:
@@ -5019,6 +5616,8 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check)
     char sql[1024];
     int ret;
     int to_be_fixed;
+    int rowid_column = 0;
+    int without_rowid = 0;
     sqlite3_stmt *stmt;
 
 /* retrieving any defined R*Tree */
@@ -5049,6 +5648,10 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check)
 		      if (status < 0)
 			{
 			    /* some unexpected error occurred */
+			    if (status == -2)
+				rowid_column = 1;
+			    if (status == -3)
+				without_rowid = 1;
 			    goto fatal_error;
 			}
 		      else if (status > 0)
@@ -5064,6 +5667,10 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check)
 		      if (status < 0)
 			{
 			    /* some unexpected error occurred */
+			    if (status == -2)
+				rowid_column = 1;
+			    if (status == -3)
+				without_rowid = 1;
 			    goto fatal_error;
 			}
 		      else if (status == 0)
@@ -5072,7 +5679,8 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check)
 	    }
 	  else
 	    {
-		printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite));
+		spatialite_e ("sqlite3_step() error: %s\n",
+			      sqlite3_errmsg (sqlite));
 		sqlite3_finalize (stmt);
 		return -1;
 	    }
@@ -5084,6 +5692,10 @@ recover_any_spatial_index (sqlite3 * sqlite, int no_check)
     return 0;
   fatal_error:
     sqlite3_finalize (stmt);
+    if (rowid_column)
+	return -2;
+    if (without_rowid)
+	return -3;
     return -1;
 }
 
@@ -5100,6 +5712,8 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc,
 / attempts to rebuild a SpatialIndex, returning:
 / 1 - on success
 / 0 - on failure
+/ -1 if any physical "ROWID" column exist shadowing the real ROWID
+/    or if the table was created WITHOUT ROWID
 / NULL if any syntax error is detected
 */
     const unsigned char *table;
@@ -5125,7 +5739,14 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc,
 	    }
 	  status = recover_any_spatial_index (sqlite, no_check);
 	  if (status < 0)
-	      sqlite3_result_null (context);
+	    {
+		if (status == -2)
+		    sqlite3_result_int (context, -1);
+		else if (status == -3)
+		    sqlite3_result_int (context, -1);
+		else
+		    sqlite3_result_null (context);
+	    }
 	  else if (status > 0)
 	      sqlite3_result_int (context, 1);
 	  else
@@ -5168,7 +5789,10 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc,
 	  if (status < 0)
 	    {
 		/* some unexpected error occurred */
-		sqlite3_result_null (context);
+		if (status == -2 || status == -3)
+		    sqlite3_result_int (context, -1);
+		else
+		    sqlite3_result_null (context);
 		return;
 	    }
 	  else if (status > 0)
@@ -5180,7 +5804,9 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc,
       }
 /* rebuilding the Spatial Index */
     status = recover_spatial_index (sqlite, table, column);
-    if (status < 0)
+    if (status == -2)
+	sqlite3_result_int (context, -1);
+    else if (status < 0)
 	sqlite3_result_null (context);
     else if (status > 0)
 	sqlite3_result_int (context, 1);
@@ -5189,6 +5815,71 @@ fnct_RecoverSpatialIndex (sqlite3_context * context, int argc,
 }
 
 static void
+fnct_CheckShadowedRowid (sqlite3_context * context, int argc,
+			 sqlite3_value ** argv)
+{
+/* SQL function:
+/ CheckShadowedRowid(table)
+/
+/ checks if some table has a "rowid" physical column shadowing the real ROWID
+/ 1 - yes, the ROWID is shadowed
+/ 0 - no, the ROWID isn't shadowed
+/ NULL on failure (e.g. not existing table)
+*/
+    const unsigned char *table;
+    int ret;
+    char sql[128];
+    sqlite3_stmt *stmt;
+    int exists = 0;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  spatialite_e
+	      ("CheckShadowedRowid() error: argument 1 [table_name] is not of the String type\n");
+	  sqlite3_result_null (context);
+	  return;
+      }
+    table = sqlite3_value_text (argv[0]);
+
+/* checking if the table exists */
+    strcpy (sql,
+	    "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)");
+    ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  spatialite_e ("CheckShadowedRowid: \"%s\"\n",
+			sqlite3_errmsg (sqlite));
+	  sqlite3_result_null (context);
+	  return;
+      }
+    sqlite3_reset (stmt);
+    sqlite3_clear_bindings (stmt);
+    sqlite3_bind_text (stmt, 1, (const char *) table,
+		       strlen ((const char *) table), SQLITE_STATIC);
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	      exists = 1;
+      }
+    sqlite3_finalize (stmt);
+    if (!exists)
+	sqlite3_result_null (context);
+    else
+      {
+	  if (!validateRowid (sqlite, (const char *) table))
+	      sqlite3_result_int (context, 1);
+	  else
+	      sqlite3_result_int (context, 0);
+      }
+}
+
+static void
 fnct_CreateSpatialIndex (sqlite3_context * context, int argc,
 			 sqlite3_value ** argv)
 {
@@ -5223,6 +5914,21 @@ fnct_CreateSpatialIndex (sqlite3_context * context, int argc,
 	  return;
       }
     column = (const char *) sqlite3_value_text (argv[1]);
+    if (is_without_rowid_table (sqlite, table))
+      {
+	  spatialite_e
+	      ("CreateSpatialIndex() error: table '%s' is WITHOUT ROWID\n",
+	       table);
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    if (!validateRowid (sqlite, table))
+      {
+	  spatialite_e
+	      ("CreateSpatialIndex() error: a physical column named ROWID shadows the real ROWID\n");
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
     sql_statement =
 	sqlite3_mprintf
 	("UPDATE geometry_columns SET spatial_index_enabled = 1 "
@@ -5548,7 +6254,7 @@ fnct_GetLayerExtent (sqlite3_context * context, int argc, sqlite3_value ** argv)
       }
     if (argc >= 3)
       {
-	  if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
+	  if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER)
 	    {
 		spatialite_e
 		    ("GetLayerExtent() error: argument 3 [OPTIMISTIC/PESSIMISTIC] is not of the Integer type\n");
@@ -5571,6 +6277,62 @@ fnct_GetLayerExtent (sqlite3_context * context, int argc, sqlite3_value ** argv)
 }
 
 static void
+fnct_InvalidateLayerStatistics (sqlite3_context * context, int argc,
+				sqlite3_value ** argv)
+{
+/* SQL function:
+/ InvalidateLayerStatistics(void)
+/ InvalidateLayerStatistics(table)
+/ InvalidateLayerStatistics(table, column )
+/
+/ Immediately and unconditionally invalidates Layer Statistics
+/ returns 1 on success
+/ 0 on failure
+*/
+    const char *sql;
+    const char *table = NULL;
+    const char *column = NULL;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (argc >= 1)
+      {
+	  if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+	    {
+		spatialite_e
+		    ("InvalidateLayerStatistics() error: argument 1 [table_name] is not of the String type\n");
+		sqlite3_result_int (context, 0);
+		return;
+	    }
+	  table = (const char *) sqlite3_value_text (argv[0]);
+      }
+    if (argc >= 2)
+      {
+	  if (sqlite3_value_type (argv[1]) != SQLITE_TEXT)
+	    {
+		spatialite_e
+		    ("InvalidateLayerStatistics() error: argument 2 [column_name] is not of the String type\n");
+		sqlite3_result_int (context, 0);
+		return;
+	    }
+	  column = (const char *) sqlite3_value_text (argv[1]);
+      }
+    if (!gaiaStatisticsInvalidate (sqlite, table, column))
+	goto error;
+    sqlite3_result_int (context, 1);
+    sql = "InvalidateLayerStatistics";
+    if (table == NULL)
+	table = "ALL-TABLES";
+    if (column == NULL)
+	column = "ALL-GEOMETRY-COLUMNS";
+    updateSpatiaLiteHistory (sqlite, (const char *) table,
+			     (const char *) column, sql);
+    return;
+  error:
+    sqlite3_result_int (context, 0);
+    return;
+}
+
+static void
 fnct_CreateRasterCoveragesTable (sqlite3_context * context, int argc,
 				 sqlite3_value ** argv)
 {
@@ -5586,7 +6348,7 @@ fnct_CreateRasterCoveragesTable (sqlite3_context * context, int argc,
 
     if (!createRasterCoveragesTable (sqlite))
 	goto error;
-    updateSpatiaLiteHistory (sqlite, "*** Raster Coveraverages ***", NULL,
+    updateSpatiaLiteHistory (sqlite, "*** Raster Coverages ***", NULL,
 			     "Main table successfully created");
     sqlite3_result_int (context, 1);
     return;
@@ -5596,105 +6358,288 @@ fnct_CreateRasterCoveragesTable (sqlite3_context * context, int argc,
     return;
 }
 
-static gaiaPointPtr
-simplePoint (gaiaGeomCollPtr geo)
+static void
+fnct_CreateMetaCatalogTables (sqlite3_context * context, int argc,
+			      sqlite3_value ** argv)
 {
-/* helper function
-/ if this GEOMETRY contains only one POINT, and no other elementary geometry
-/ the POINT address will be returned
-/ otherwise NULL will be returned
+/* SQL function:
+/ CreateMetaCatalogTables(transaction TRUE|FALSE)
+/
+/ creates (or re-creates) both "splite_metacatalog"
+/ and "splite_metacatalog_statistics" tables
+/ returns 1 on success
+/ 0 on failure
 */
-    int cnt = 0;
-    gaiaPointPtr point;
-    gaiaPointPtr this_point = NULL;
-    if (!geo)
-	return NULL;
-    if (geo->FirstLinestring || geo->FirstPolygon)
-	return NULL;
-    point = geo->FirstPoint;
-    while (point)
+    char *errMsg = NULL;
+    int ret;
+    int transaction = 0;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER)
       {
-	  /* counting how many POINTs are there */
-	  cnt++;
-	  this_point = point;
-	  point = point->Next;
+	  spatialite_e
+	      ("CreateMetaCatalogTables() error: argument 1 [TRANSACTION] is not of the Integer type\n");
+	  sqlite3_result_null (context);
+	  return;
       }
-    if (cnt == 1 && this_point)
-	return this_point;
-    return NULL;
-}
-
-static gaiaLinestringPtr
-simpleLinestring (gaiaGeomCollPtr geo)
-{
-/* helper function
-/ if this GEOMETRY contains only one LINESTRING, and no other elementary geometry
-/ the LINESTRING address will be returned
-/ otherwise NULL will be returned
-*/
-    int cnt = 0;
-    gaiaLinestringPtr line;
-    gaiaLinestringPtr this_line = NULL;
-    if (!geo)
-	return NULL;
-    if (geo->FirstPoint || geo->FirstPolygon)
-	return NULL;
-    line = geo->FirstLinestring;
-    while (line)
+    transaction = sqlite3_value_int (argv[0]);
+    if (transaction)
       {
-	  /* counting how many LINESTRINGs are there */
-	  cnt++;
-	  this_line = line;
-	  line = line->Next;
+	  /* starting a Transaction */
+	  ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg);
+	  if (ret != SQLITE_OK)
+	      goto error;
       }
-    if (cnt == 1 && this_line)
-	return this_line;
-    return NULL;
-}
+    if (!gaiaCreateMetaCatalogTables (sqlite))
+	goto error;
+    if (transaction)
+      {
+	  /* committing the still pending Transaction */
+	  ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg);
+	  if (ret != SQLITE_OK)
+	      goto error;
+      }
+    updateSpatiaLiteHistory (sqlite, "*** MetaCatalog ***", NULL,
+			     "Tables successfully created and initialized");
+    sqlite3_result_int (context, 1);
+    return;
 
-static gaiaPolygonPtr
-simplePolygon (gaiaGeomCollPtr geo)
-{
-/* helper function
-/ if this GEOMETRY contains only one POLYGON, and no other elementary geometry
-/ the POLYGON address will be returned
-/ otherwise NULL will be returned
-*/
-    int cnt = 0;
-    gaiaPolygonPtr polyg;
-    gaiaPolygonPtr this_polyg = NULL;
-    if (!geo)
-	return NULL;
-    if (geo->FirstPoint || geo->FirstLinestring)
-	return NULL;
-    polyg = geo->FirstPolygon;
-    while (polyg)
+  error:
+    if (transaction)
       {
-	  /* counting how many POLYGONs are there */
-	  cnt++;
-	  this_polyg = polyg;
-	  polyg = polyg->Next;
+	  /* performing a Rollback */
+	  ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg);
+	  if (ret != SQLITE_OK)
+	      sqlite3_free (errMsg);
       }
-    if (cnt == 1 && this_polyg)
-	return this_polyg;
-    return NULL;
+    sqlite3_result_int (context, 0);
+    return;
 }
 
 static void
-fnct_AsText (sqlite3_context * context, int argc, sqlite3_value ** argv)
+fnct_UpdateMetaCatalogStatistics (sqlite3_context * context, int argc,
+				  sqlite3_value ** argv)
 {
 /* SQL function:
-/ AsText(BLOB encoded geometry)
+/ UpdateMetaCatalogStatistics(transaction TRUE|FALSE, table, column)
+/ UpdateMetaCatalogStatistics(transaction TRUE|FALSE, master_table, table_name, column_name)
 /
-/ returns the corresponding WKT encoded value
-/ or NULL if any error is encountered
+/ updates the MetaCatalog statistics
+/ returns 1 on success
+/ 0 on failure
 */
-    unsigned char *p_blob;
-    int n_bytes;
-    int len;
-    gaiaOutBuffer out_buf;
-    gaiaGeomCollPtr geo = NULL;
-    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    char *errMsg = NULL;
+    int ret;
+    int transaction = 0;
+    const char *master_table = NULL;
+    const char *table = NULL;
+    const char *column = NULL;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+
+    if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER)
+      {
+	  spatialite_e
+	      ("UpdateMetaCatalogStatistics() error: argument 1 [TRANSACTION] is not of the Integer type\n");
+	  sqlite3_result_null (context);
+	  return;
+      }
+    transaction = sqlite3_value_int (argv[0]);
+    if (argc == 3)
+      {
+	  /* table & column mode */
+	  if (sqlite3_value_type (argv[1]) == SQLITE_TEXT)
+	      table = (const char *) sqlite3_value_text (argv[1]);
+	  else
+	    {
+		spatialite_e
+		    ("UpdateMetaCatalogStatistics() error: argument 2 [TABLE_NAME] is not of the Text type\n");
+		sqlite3_result_null (context);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[2]) == SQLITE_TEXT)
+	      column = (const char *) sqlite3_value_text (argv[2]);
+	  else
+	    {
+		spatialite_e
+		    ("UpdateMetaCatalogStatistics() error: argument 2 [COLUMN_NAME] is not of the Text type\n");
+		sqlite3_result_null (context);
+		return;
+	    }
+      }
+    else
+      {
+	  /* master-table & table_name & column_name mode */
+	  if (sqlite3_value_type (argv[1]) == SQLITE_TEXT)
+	      master_table = (const char *) sqlite3_value_text (argv[1]);
+	  else
+	    {
+		spatialite_e
+		    ("UpdateMetaCatalogStatistics() error: argument 2 [MASTER_TABLE] is not of the Text type\n");
+		sqlite3_result_null (context);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[2]) == SQLITE_TEXT)
+	      table = (const char *) sqlite3_value_text (argv[2]);
+	  else
+	    {
+		spatialite_e
+		    ("UpdateMetaCatalogStatistics() error: argument 3 [TABLE_NAME] is not of the Text type\n");
+		sqlite3_result_null (context);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[3]) == SQLITE_TEXT)
+	      column = (const char *) sqlite3_value_text (argv[3]);
+	  else
+	    {
+		spatialite_e
+		    ("UpdateMetaCatalogStatistics() error: argument 3 [COLUMN_NAME] is not of the Text type\n");
+		sqlite3_result_null (context);
+		return;
+	    }
+      }
+    if (transaction)
+      {
+	  /* starting a Transaction */
+	  ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg);
+	  if (ret != SQLITE_OK)
+	      goto error;
+      }
+    if (master_table != NULL)
+      {
+	  if (!gaiaUpdateMetaCatalogStatisticsFromMaster
+	      (sqlite, master_table, table, column))
+	      goto error;
+      }
+    else
+      {
+	  if (!gaiaUpdateMetaCatalogStatistics (sqlite, table, column))
+	      goto error;
+      }
+    if (transaction)
+      {
+	  /* committing the still pending Transaction */
+	  ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg);
+	  if (ret != SQLITE_OK)
+	      goto error;
+      }
+    updateSpatiaLiteHistory (sqlite, "*** MetaCatalog ***", NULL,
+			     "Statistics successfully updated");
+    sqlite3_result_int (context, 1);
+    return;
+
+  error:
+    if (transaction)
+      {
+	  /* performing a Rollback */
+	  ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg);
+	  if (ret != SQLITE_OK)
+	      sqlite3_free (errMsg);
+      }
+    sqlite3_result_int (context, 0);
+    return;
+}
+
+static gaiaPointPtr
+simplePoint (gaiaGeomCollPtr geo)
+{
+/* helper function
+/ if this GEOMETRY contains only one POINT, and no other elementary geometry
+/ the POINT address will be returned
+/ otherwise NULL will be returned
+*/
+    int cnt = 0;
+    gaiaPointPtr point;
+    gaiaPointPtr this_point = NULL;
+    if (!geo)
+	return NULL;
+    if (geo->FirstLinestring || geo->FirstPolygon)
+	return NULL;
+    point = geo->FirstPoint;
+    while (point)
+      {
+	  /* counting how many POINTs are there */
+	  cnt++;
+	  this_point = point;
+	  point = point->Next;
+      }
+    if (cnt == 1 && this_point)
+	return this_point;
+    return NULL;
+}
+
+static gaiaLinestringPtr
+simpleLinestring (gaiaGeomCollPtr geo)
+{
+/* helper function
+/ if this GEOMETRY contains only one LINESTRING, and no other elementary geometry
+/ the LINESTRING address will be returned
+/ otherwise NULL will be returned
+*/
+    int cnt = 0;
+    gaiaLinestringPtr line;
+    gaiaLinestringPtr this_line = NULL;
+    if (!geo)
+	return NULL;
+    if (geo->FirstPoint || geo->FirstPolygon)
+	return NULL;
+    line = geo->FirstLinestring;
+    while (line)
+      {
+	  /* counting how many LINESTRINGs are there */
+	  cnt++;
+	  this_line = line;
+	  line = line->Next;
+      }
+    if (cnt == 1 && this_line)
+	return this_line;
+    return NULL;
+}
+
+static gaiaPolygonPtr
+simplePolygon (gaiaGeomCollPtr geo)
+{
+/* helper function
+/ if this GEOMETRY contains only one POLYGON, and no other elementary geometry
+/ the POLYGON address will be returned
+/ otherwise NULL will be returned
+*/
+    int cnt = 0;
+    gaiaPolygonPtr polyg;
+    gaiaPolygonPtr this_polyg = NULL;
+    if (!geo)
+	return NULL;
+    if (geo->FirstPoint || geo->FirstLinestring)
+	return NULL;
+    polyg = geo->FirstPolygon;
+    while (polyg)
+      {
+	  /* counting how many POLYGONs are there */
+	  cnt++;
+	  this_polyg = polyg;
+	  polyg = polyg->Next;
+      }
+    if (cnt == 1 && this_polyg)
+	return this_polyg;
+    return NULL;
+}
+
+static void
+fnct_AsText (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ AsText(BLOB encoded geometry)
+/
+/ returns the corresponding WKT encoded value
+/ or NULL if any error is encountered
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    int len;
+    gaiaOutBuffer out_buf;
+    gaiaGeomCollPtr geo = NULL;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
       {
 	  sqlite3_result_null (context);
@@ -5933,6 +6878,7 @@ fnct_AsKml1 (sqlite3_context * context, int argc, sqlite3_value ** argv)
     char *proj_from;
     char *proj_to;
     int precision = 15;
+    void *data = sqlite3_user_data (context);
     sqlite3 *sqlite = sqlite3_context_db_handle (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
@@ -5980,7 +6926,10 @@ fnct_AsKml1 (sqlite3_context * context, int argc, sqlite3_value ** argv)
 		      sqlite3_result_null (context);
 		      goto stop;
 		  }
-		geo_wgs84 = gaiaTransform (geo, proj_from, proj_to);
+		if (data != NULL)
+		    geo_wgs84 = gaiaTransform_r (data, geo, proj_from, proj_to);
+		else
+		    geo_wgs84 = gaiaTransform (geo, proj_from, proj_to);
 		free (proj_from);
 		free (proj_to);
 		if (!geo_wgs84)
@@ -6034,6 +6983,7 @@ fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv)
     char *proj_from;
     char *proj_to;
     int precision = 15;
+    void *data = sqlite3_user_data (context);
     sqlite3 *sqlite = sqlite3_context_db_handle (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     switch (sqlite3_value_type (argv[0]))
@@ -6147,7 +7097,10 @@ fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv)
 		      sqlite3_result_null (context);
 		      goto stop;
 		  }
-		geo_wgs84 = gaiaTransform (geo, proj_from, proj_to);
+		if (data != NULL)
+		    geo_wgs84 = gaiaTransform_r (data, geo, proj_from, proj_to);
+		else
+		    geo_wgs84 = gaiaTransform (geo, proj_from, proj_to);
 		free (proj_from);
 		free (proj_to);
 		if (!geo_wgs84)
@@ -8455,7 +9408,11 @@ fnct_Collect_step (sqlite3_context * context, int argc, sqlite3_value ** argv)
     else
       {
 	  /* subsequent rows */
-	  result = gaiaMergeGeometries (*p, geom);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaMergeGeometries_r (data, *p, geom);
+	  else
+	      result = gaiaMergeGeometries (*p, geom);
 	  gaiaFreeGeomColl (*p);
 	  *p = result;
 	  gaiaFreeGeomColl (geom);
@@ -8532,7 +9489,11 @@ fnct_Collect (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaMergeGeometries (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaMergeGeometries_r (data, geo1, geo2);
+	  else
+	      result = gaiaMergeGeometries (geo1, geo2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else if (gaiaIsEmpty (result))
@@ -9266,6 +10227,59 @@ cast_count (gaiaGeomCollPtr geom, int *pts, int *lns, int *pgs)
 }
 
 static void
+fnct_CastAutomagic (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ CastAutomagic(BLOB encoded geometry)
+/
+/ accepts on input both a valid SpatiaLite BLOB geometry
+/ or a valid GPKG BLOB geometry, thus returning a SpatiaLite
+/ BLOB geometry 
+/ will return NULL in any other case
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    int len;
+    unsigned char *p_result = NULL;
+    gaiaGeomCollPtr geo = NULL;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (!geo)
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		geo = gaiaFromGeoPackageGeometryBlob (p_blob, n_bytes);
+		if (geo == NULL)
+		    sqlite3_result_null (context);
+		else
+		  {
+		      gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len);
+		      gaiaFreeGeomColl (geo);
+		      sqlite3_result_blob (context, p_result, len, free);
+		  }
+		return;
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
+    else
+      {
+	  gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len);
+	  gaiaFreeGeomColl (geo);
+	  sqlite3_result_blob (context, p_result, len, free);
+      }
+}
+
+static void
 fnct_CastToPoint (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
 /* SQL function:
@@ -10261,7 +11275,24 @@ fnct_GeometryType (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		char *gpb_type = gaiaGetGeometryTypeFromGPB (p_blob, n_bytes);
+		if (gpb_type == NULL)
+		    sqlite3_result_null (context);
+		else
+		  {
+		      len = strlen (gpb_type);
+		      sqlite3_result_text (context, gpb_type, len, free);
+		  }
+		return;
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
       {
 	  type = gaiaGeometryType (geo);
@@ -10531,7 +11562,19 @@ fnct_SRID (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		int srid = gaiaGetSridFromGPB (p_blob, n_bytes);
+		sqlite3_result_int (context, srid);
+	    }
+	  else
+	      sqlite3_result_null (context);
+	  return;
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	  sqlite3_result_null (context);
+      }
     else
 	sqlite3_result_int (context, geo->Srid);
     gaiaFreeGeomColl (geo);
@@ -10602,12 +11645,22 @@ fnct_IsEmpty (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_int (context, -1);
-    else
-	sqlite3_result_int (context, gaiaIsEmpty (geo));
-    gaiaFreeGeomColl (geo);
-}
-
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		int is_empty = gaiaIsEmptyGPB (p_blob, n_bytes);
+		sqlite3_result_int (context, is_empty);
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_int (context, -1);
+      }
+    else
+	sqlite3_result_int (context, gaiaIsEmpty (geo));
+    gaiaFreeGeomColl (geo);
+}
+
 static void
 fnct_Is3D (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
@@ -10632,7 +11685,31 @@ fnct_Is3D (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_int (context, -1);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      sqlite3_result_int (context, has_z);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_int (context, -1);
+      }
     else
       {
 	  if (geo->DimensionModel == GAIA_XY_Z
@@ -10668,7 +11745,31 @@ fnct_IsMeasured (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_int (context, -1);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      sqlite3_result_int (context, has_m);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_int (context, -1);
+      }
     else
       {
 	  if (geo->DimensionModel == GAIA_XY_M
@@ -10704,7 +11805,34 @@ fnct_MinZ (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      if (has_z)
+			  sqlite3_result_double (context, min_z);
+		      else
+			  sqlite3_result_null (context);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
       {
 	  if (geo->DimensionModel == GAIA_XY_Z
@@ -10743,7 +11871,34 @@ fnct_MaxZ (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      if (has_z)
+			  sqlite3_result_double (context, max_z);
+		      else
+			  sqlite3_result_null (context);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
       {
 	  if (geo->DimensionModel == GAIA_XY_Z
@@ -10782,7 +11937,34 @@ fnct_MinM (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      if (has_m)
+			  sqlite3_result_double (context, min_m);
+		      else
+			  sqlite3_result_null (context);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
       {
 	  if (geo->DimensionModel == GAIA_XY_M
@@ -10821,7 +12003,34 @@ fnct_MaxM (sqlite3_context * context, int argc, sqlite3_value ** argv)
     n_bytes = sqlite3_value_bytes (argv[0]);
     geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
     if (!geo)
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      if (has_m)
+			  sqlite3_result_double (context, max_m);
+		      else
+			  sqlite3_result_null (context);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
       {
 	  if (geo->DimensionModel == GAIA_XY_M
@@ -11476,7 +12685,31 @@ fnct_MbrMinX (sqlite3_context * context, int argc, sqlite3_value ** argv)
     p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
     n_bytes = sqlite3_value_bytes (argv[0]);
     if (!gaiaGetMbrMinX (p_blob, n_bytes, &coord))
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      sqlite3_result_double (context, min_x);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
 	sqlite3_result_double (context, coord);
 }
@@ -11502,7 +12735,31 @@ fnct_MbrMaxX (sqlite3_context * context, int argc, sqlite3_value ** argv)
     p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
     n_bytes = sqlite3_value_bytes (argv[0]);
     if (!gaiaGetMbrMaxX (p_blob, n_bytes, &coord))
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      sqlite3_result_double (context, max_x);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
 	sqlite3_result_double (context, coord);
 }
@@ -11528,7 +12785,31 @@ fnct_MbrMinY (sqlite3_context * context, int argc, sqlite3_value ** argv)
     p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
     n_bytes = sqlite3_value_bytes (argv[0]);
     if (!gaiaGetMbrMinY (p_blob, n_bytes, &coord))
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      sqlite3_result_double (context, min_y);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
 	sqlite3_result_double (context, coord);
 }
@@ -11554,7 +12835,31 @@ fnct_MbrMaxY (sqlite3_context * context, int argc, sqlite3_value ** argv)
     p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
     n_bytes = sqlite3_value_bytes (argv[0]);
     if (!gaiaGetMbrMaxY (p_blob, n_bytes, &coord))
-	sqlite3_result_null (context);
+      {
+#ifdef ENABLE_GEOPACKAGE	/* GEOPACKAGE enabled: supporting GPKG geometries */
+	  if (gaiaIsValidGPB (p_blob, n_bytes))
+	    {
+		double min_x;
+		double max_x;
+		double min_y;
+		double max_y;
+		int has_z;
+		double min_z;
+		double max_z;
+		int has_m;
+		double min_m;
+		double max_m;
+		if (gaiaGetEnvelopeFromGPB
+		    (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z,
+		     &min_z, &max_z, &has_m, &min_m, &max_m))
+		  {
+		      sqlite3_result_double (context, max_y);
+		  }
+	    }
+	  else
+#endif /* end GEOPACKAGE: supporting GPKG geometries */
+	      sqlite3_result_null (context);
+      }
     else
 	sqlite3_result_double (context, coord);
 }
@@ -12957,6 +14262,67 @@ fnct_RemovePoint (sqlite3_context * context, int argc, sqlite3_value ** argv)
     gaiaFreeGeomColl (line);
 }
 
+static void
+fnct_MakePolygon (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL functions:
+/ ST_MakePolygon(BLOB encoded LINESTRING line)
+/ ST_MakePolygon(BLOB encoded LINESTRING line, BLOB encoded (MULTI)LINESTING holes)
+/
+/ returns a new POLYGON from the given exterior and interior rings
+/ or NULL if any error is encountered
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    gaiaGeomCollPtr exterior = NULL;
+    gaiaGeomCollPtr interiors = NULL;
+    gaiaGeomCollPtr out;
+    int len;
+    unsigned char *p_result = NULL;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  goto stop;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    exterior = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (!exterior)
+      {
+	  sqlite3_result_null (context);
+	  goto stop;
+      }
+    if (argc == 2)
+      {
+	  if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+	    {
+		sqlite3_result_null (context);
+		goto stop;
+	    }
+	  p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
+	  n_bytes = sqlite3_value_bytes (argv[1]);
+	  interiors = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+	  if (!interiors)
+	    {
+		sqlite3_result_null (context);
+		goto stop;
+	    }
+      }
+    out = gaiaMakePolygon (exterior, interiors);
+    if (!out)
+      {
+	  sqlite3_result_null (context);
+	  goto stop;
+      }
+    gaiaToSpatiaLiteBlobWkb (out, &p_result, &len);
+    gaiaFreeGeomColl (out);
+    sqlite3_result_blob (context, p_result, len, free);
+  stop:
+    gaiaFreeGeomColl (exterior);
+    gaiaFreeGeomColl (interiors);
+}
+
 static int
 getXYZMSinglePoint (gaiaGeomCollPtr geom, double *x, double *y, double *z,
 		    double *m)
@@ -13489,7 +14855,7 @@ fnct_GARSMbr (sqlite3_context * context, int argc, sqlite3_value ** argv)
     if (!p_result)
       {
 	  sqlite3_result_null (context);
-	  printf ("bad p_result\n");
+	  spatialite_e ("bad p_result\n");
       }
     else
 	sqlite3_result_blob (context, p_result, len, free);
@@ -14820,6 +16186,7 @@ fnct_FromGml (sqlite3_context * context, int argc, sqlite3_value ** argv)
     unsigned char *p_result = NULL;
     const unsigned char *text;
     gaiaGeomCollPtr geo = NULL;
+    void *data = sqlite3_user_data (context);
     sqlite3 *sqlite = sqlite3_context_db_handle (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
@@ -14828,7 +16195,10 @@ fnct_FromGml (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	  return;
       }
     text = sqlite3_value_text (argv[0]);
-    geo = gaiaParseGml (text, sqlite);
+    if (data != NULL)
+	geo = gaiaParseGml_r (data, text, sqlite);
+    else
+	geo = gaiaParseGml (text, sqlite);
     if (geo == NULL)
       {
 	  sqlite3_result_null (context);
@@ -14919,7 +16289,11 @@ fnct_BuildArea (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaPolygonize (geo, 0);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaPolygonize_r (data, geo, 0);
+	  else
+	      result = gaiaPolygonize (geo, 0);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -14972,7 +16346,11 @@ fnct_Polygonize_step (sqlite3_context * context, int argc,
     else
       {
 	  /* subsequent rows */
-	  result = gaiaMergeGeometries (*p, geom);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaMergeGeometries_r (data, *p, geom);
+	  else
+	      result = gaiaMergeGeometries (*p, geom);
 	  gaiaFreeGeomColl (*p);
 	  *p = result;
 	  gaiaFreeGeomColl (geom);
@@ -15001,7 +16379,11 @@ fnct_Polygonize_final (sqlite3_context * context)
 	sqlite3_result_null (context);
     else
       {
-	  geom = gaiaPolygonize (result, 0);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      geom = gaiaPolygonize_r (data, result, 0);
+	  else
+	      geom = gaiaPolygonize (result, 0);
 	  if (geom == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -15275,6 +16657,7 @@ fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv)
     int srid_to;
     char *proj_from;
     char *proj_to;
+    void *data = sqlite3_user_data (context);
     sqlite3 *sqlite = sqlite3_context_db_handle (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
@@ -15309,7 +16692,10 @@ fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv)
 		sqlite3_result_null (context);
 		return;
 	    }
-	  result = gaiaTransform (geo, proj_from, proj_to);
+	  if (data != NULL)
+	      result = gaiaTransform_r (data, geo, proj_from, proj_to);
+	  else
+	      result = gaiaTransform (geo, proj_from, proj_to);
 	  free (proj_from);
 	  free (proj_to);
 	  if (!result)
@@ -15333,6 +16719,115 @@ fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv)
 #ifndef OMIT_GEOS		/* including GEOS */
 
 static void
+fnct_GEOS_GetLastWarningMsg (sqlite3_context * context, int argc,
+			     sqlite3_value ** argv)
+{
+/* SQL function:
+/ GEOS_GetLastWarningMsg()
+/
+/ return the most recent GEOS warning message (if any)
+/ return NULL on any other case
+*/
+    const char *msg;
+    void *data = sqlite3_user_data (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (data != NULL)
+	msg = gaiaGetGeosWarningMsg_r (data);
+    else
+	msg = gaiaGetGeosWarningMsg ();
+    if (msg == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC);
+}
+
+static void
+fnct_GEOS_GetLastErrorMsg (sqlite3_context * context, int argc,
+			   sqlite3_value ** argv)
+{
+/* SQL function:
+/ GEOS_GetLastErrorMsg()
+/
+/ return the most recent GEOS error message (if any)
+/ return NULL on any other case
+*/
+    const char *msg;
+    void *data = sqlite3_user_data (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (data != NULL)
+	msg = gaiaGetGeosErrorMsg_r (data);
+    else
+	msg = gaiaGetGeosErrorMsg ();
+    if (msg == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC);
+}
+
+static void
+fnct_GEOS_GetLastAuxErrorMsg (sqlite3_context * context, int argc,
+			      sqlite3_value ** argv)
+{
+/* SQL function:
+/ GEOS_GetLastAuxErrorMsg()
+/
+/ return the most recent GEOS error message (if any)
+/ return NULL on any other case
+*/
+    const char *msg;
+    void *data = sqlite3_user_data (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (data != NULL)
+	msg = gaiaGetGeosAuxErrorMsg_r (data);
+    else
+	msg = gaiaGetGeosAuxErrorMsg ();
+    if (msg == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC);
+}
+
+static void
+fnct_GEOS_GetCriticalPointFromMsg (sqlite3_context * context, int argc,
+				   sqlite3_value ** argv)
+{
+/* SQL function:
+/ GEOS_GetCriticalPointFromMsg()
+/
+/ return a Point Geometry by (possibly) parsing the most recent GEOS error/warning message 
+/ return NULL on any other case
+*/
+    int srid = -1;
+    gaiaGeomCollPtr geom;
+    void *data = sqlite3_user_data (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (argc == 1)
+      {
+	  if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER)
+	    {
+		sqlite3_result_null (context);
+		return;
+	    }
+	  srid = sqlite3_value_int (argv[0]);
+      }
+    if (data != NULL)
+	geom = gaiaCriticalPointFromGEOSmsg_r (data);
+    else
+	geom = gaiaCriticalPointFromGEOSmsg ();
+    if (geom == NULL)
+	sqlite3_result_null (context);
+    else
+      {
+	  unsigned char *blob;
+	  int len;
+	  geom->Srid = srid;
+	  gaiaToSpatiaLiteBlobWkb (geom, &blob, &len);
+	  gaiaFreeGeomColl (geom);
+	  sqlite3_result_blob (context, blob, len, free);
+      }
+}
+
+static void
 fnct_Boundary (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
 /* SQL function:
@@ -15364,7 +16859,11 @@ fnct_Boundary (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	      sqlite3_result_null (context);
 	  else
 	    {
-		boundary = gaiaBoundary (geo);
+		void *data = sqlite3_user_data (context);
+		if (data != NULL)
+		    boundary = gaiaBoundary_r (data, geo);
+		else
+		    boundary = gaiaBoundary (geo);
 		if (!boundary)
 		    sqlite3_result_null (context);
 		else
@@ -15438,7 +16937,11 @@ fnct_IsSimple (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-	  ret = gaiaIsSimple (geo);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaIsSimple_r (data, geo);
+	  else
+	      ret = gaiaIsSimple (geo);
 	  if (ret < 0)
 	      sqlite3_result_int (context, -1);
 	  else
@@ -15481,7 +16984,11 @@ fnct_IsRing (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	      sqlite3_result_int (context, -1);
 	  else
 	    {
-		ret = gaiaIsRing (line);
+		void *data = sqlite3_user_data (context);
+		if (data != NULL)
+		    ret = gaiaIsRing_r (data, line);
+		else
+		    ret = gaiaIsRing (line);
 		sqlite3_result_int (context, ret);
 	    }
       }
@@ -15516,7 +17023,11 @@ fnct_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-	  ret = gaiaIsValid (geo);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaIsValid_r (data, geo);
+	  else
+	      ret = gaiaIsValid (geo);
 	  if (ret < 0)
 	      sqlite3_result_int (context, -1);
 	  else
@@ -15526,8 +17037,8 @@ fnct_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 }
 
 static void
-length_common (sqlite3_context * context, int argc, sqlite3_value ** argv,
-	       int is_perimeter)
+length_common (const void *p_cache, sqlite3_context * context, int argc,
+	       sqlite3_value ** argv, int is_perimeter)
 {
 /* common implementation supporting both ST_Length and ST_Perimeter */
     unsigned char *p_blob;
@@ -15586,11 +17097,10 @@ length_common (sqlite3_context * context, int argc, sqlite3_value ** argv,
 					l = gaiaGeodesicTotalLength (a,
 								     b,
 								     rf,
-								     line->DimensionModel,
 								     line->
-								     Coords,
-								     line->
-								     Points);
+								     DimensionModel,
+								     line->Coords,
+								     line->Points);
 					if (l < 0.0)
 					  {
 					      length = -1.0;
@@ -15612,12 +17122,9 @@ length_common (sqlite3_context * context, int argc, sqlite3_value ** argv,
 					      ring = polyg->Exterior;
 					      l = gaiaGeodesicTotalLength (a, b,
 									   rf,
-									   ring->
-									   DimensionModel,
-									   ring->
-									   Coords,
-									   ring->
-									   Points);
+									   ring->DimensionModel,
+									   ring->Coords,
+									   ring->Points);
 					      if (l < 0.0)
 						{
 						    length = -1.0;
@@ -15712,7 +17219,12 @@ length_common (sqlite3_context * context, int argc, sqlite3_value ** argv,
 		    sqlite3_result_null (context);
 		goto stop;
 	    }
-	  ret = gaiaGeomCollLengthOrPerimeter (geo, is_perimeter, &length);
+	  else if (p_cache != NULL)
+	      ret =
+		  gaiaGeomCollLengthOrPerimeter_r (p_cache, geo, is_perimeter,
+						   &length);
+	  else
+	      ret = gaiaGeomCollLengthOrPerimeter (geo, is_perimeter, &length);
 	  if (!ret)
 	      sqlite3_result_null (context);
 	  else
@@ -15736,7 +17248,8 @@ fnct_Length (sqlite3_context * context, int argc, sqlite3_value ** argv)
 / any Polygon (only Linestrings will be considered)
 /
 */
-    length_common (context, argc, argv, 0);
+    void *data = sqlite3_user_data (context);
+    length_common (data, context, argc, argv, 0);
 }
 
 static void
@@ -15753,7 +17266,8 @@ fnct_Perimeter (sqlite3_context * context, int argc, sqlite3_value ** argv)
 / any Linestring (only Polygons will be considered)
 /
 */
-    length_common (context, argc, argv, 1);
+    void *data = sqlite3_user_data (context);
+    length_common (data, context, argc, argv, 1);
 }
 
 static void
@@ -15814,7 +17328,13 @@ fnct_Area (sqlite3_context * context, int argc, sqlite3_value ** argv)
 #endif /* end LWGEOM conditional */
 	    }
 	  else
-	      ret = gaiaGeomCollArea (geo, &area);
+	    {
+		void *data = sqlite3_user_data (context);
+		if (data != NULL)
+		    ret = gaiaGeomCollArea_r (data, geo, &area);
+		else
+		    ret = gaiaGeomCollArea (geo, &area);
+	    }
 	  if (!ret)
 	      sqlite3_result_null (context);
 	  else
@@ -15858,7 +17378,11 @@ fnct_Centroid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	      sqlite3_result_null (context);
 	  else
 	    {
-		ret = gaiaGeomCollCentroid (geo, &x, &y);
+		void *data = sqlite3_user_data (context);
+		if (data != NULL)
+		    ret = gaiaGeomCollCentroid_r (data, geo, &x, &y);
+		else
+		    ret = gaiaGeomCollCentroid (geo, &x, &y);
 		if (!ret)
 		    sqlite3_result_null (context);
 		else
@@ -15905,7 +17429,13 @@ fnct_PointOnSurface (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  if (!gaiaGetPointOnSurface (geo, &x, &y))
+	  void *data = sqlite3_user_data (context);
+	  int posret;
+	  if (data != NULL)
+	      posret = gaiaGetPointOnSurface_r (data, geo, &x, &y);
+	  else
+	      posret = gaiaGetPointOnSurface (geo, &x, &y);
+	  if (!posret)
 	      sqlite3_result_null (context);
 	  else
 	    {
@@ -15960,7 +17490,11 @@ fnct_Simplify (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeomCollSimplify (geo, tolerance);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaGeomCollSimplify_r (data, geo, tolerance);
+	  else
+	      result = gaiaGeomCollSimplify (geo, tolerance);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -16017,7 +17551,12 @@ fnct_SimplifyPreserveTopology (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeomCollSimplifyPreserveTopology (geo, tolerance);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result =
+		  gaiaGeomCollSimplifyPreserveTopology_r (data, geo, tolerance);
+	  else
+	      result = gaiaGeomCollSimplifyPreserveTopology (geo, tolerance);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -16061,7 +17600,11 @@ fnct_ConvexHull (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaConvexHull (geo);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaConvexHull_r (data, geo);
+	  else
+	      result = gaiaConvexHull (geo);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -16114,7 +17657,11 @@ fnct_Buffer (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeomCollBuffer (geo, radius, 30);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaGeomCollBuffer_r (data, geo, radius, 30);
+	  else
+	      result = gaiaGeomCollBuffer (geo, radius, 30);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -16166,7 +17713,11 @@ fnct_Intersection (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeometryIntersection (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaGeometryIntersection_r (data, geo1, geo2);
+	  else
+	      result = gaiaGeometryIntersection (geo1, geo2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else if (gaiaIsEmpty (result))
@@ -16305,6 +17856,7 @@ fnct_Union_final (sqlite3_context * context)
     struct gaia_geom_chain_item *item;
     gaiaGeomCollPtr aggregate;
     gaiaGeomCollPtr result;
+    void *data = sqlite3_user_data (context);
     struct gaia_geom_chain **p = sqlite3_aggregate_context (context, 0);
     if (!p)
       {
@@ -16313,8 +17865,7 @@ fnct_Union_final (sqlite3_context * context)
       }
     chain = *p;
 
-#ifdef GEOS_ADVANCED
-/* we can apply UnaryUnion */
+/* applying UnaryUnion */
     item = chain->first;
     while (item)
       {
@@ -16327,74 +17878,28 @@ fnct_Union_final (sqlite3_context * context)
 		item = item->next;
 		continue;
 	    }
-	  tmp = gaiaMergeGeometries (aggregate, geom);
+	  if (data != NULL)
+	      tmp = gaiaMergeGeometries_r (data, aggregate, geom);
+	  else
+	      tmp = gaiaMergeGeometries (aggregate, geom);
 	  gaiaFreeGeomColl (aggregate);
 	  gaiaFreeGeomColl (geom);
 	  item->geom = NULL;
 	  aggregate = tmp;
 	  item = item->next;
       }
-    result = gaiaUnaryUnion (aggregate);
+    if (data != NULL)
+	result = gaiaUnaryUnion_r (data, aggregate);
+    else
+	result = gaiaUnaryUnion (aggregate);
     gaiaFreeGeomColl (aggregate);
-/* end UnaryUnion */
-#else
-/* old GEOS; no UnaryUnion available */
-    if (chain->all_polygs)
-      {
-	  /* all Polygons: we can apply UnionCascaded */
-	  item = chain->first;
-	  while (item)
-	    {
-		gaiaGeomCollPtr geom = item->geom;
-		if (item == chain->first)
-		  {
-		      /* initializing the aggregate geometry */
-		      aggregate = geom;
-		      item->geom = NULL;
-		      item = item->next;
-		      continue;
-		  }
-		tmp = gaiaMergeGeometries (aggregate, geom);
-		gaiaFreeGeomColl (aggregate);
-		gaiaFreeGeomColl (geom);
-		item->geom = NULL;
-		aggregate = tmp;
-		item = item->next;
-	    }
-	  result = gaiaUnionCascaded (aggregate);
-	  gaiaFreeGeomColl (aggregate);
-      }
-    else
-      {
-	  /* mixed types: the hardest/slowest way */
-	  item = chain->first;
-	  while (item)
-	    {
-		gaiaGeomCollPtr geom = item->geom;
-		if (item == chain->first)
-		  {
-		      result = geom;
-		      item->geom = NULL;
-		      item = item->next;
-		      continue;
-		  }
-		tmp = gaiaGeometryUnion (result, geom);
-		gaiaFreeGeomColl (result);
-		gaiaFreeGeomColl (geom);
-		item->geom = NULL;
-		result = tmp;
-		item = item->next;
-	    }
-      }
-/* end old GEOS: no UnaryUnion available */
-#endif
-    gaia_free_geom_chain (chain);
-
-    if (result == NULL)
-	sqlite3_result_null (context);
-    else if (gaiaIsEmpty (result))
-	sqlite3_result_null (context);
-    else
+    gaia_free_geom_chain (chain);
+
+    if (result == NULL)
+	sqlite3_result_null (context);
+    else if (gaiaIsEmpty (result))
+	sqlite3_result_null (context);
+    else
       {
 	  /* builds the BLOB geometry to be returned */
 	  int len;
@@ -16440,7 +17945,11 @@ fnct_Union (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeometryUnion (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaGeometryUnion_r (data, geo1, geo2);
+	  else
+	      result = gaiaGeometryUnion (geo1, geo2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else if (gaiaIsEmpty (result))
@@ -16497,7 +18006,11 @@ fnct_Difference (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeometryDifference (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaGeometryDifference_r (data, geo1, geo2);
+	  else
+	      result = gaiaGeometryDifference (geo1, geo2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else if (gaiaIsEmpty (result))
@@ -16554,7 +18067,11 @@ fnct_SymDifference (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaGeometrySymDifference (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaGeometrySymDifference_r (data, geo1, geo2);
+	  else
+	      result = gaiaGeometrySymDifference (geo1, geo2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else if (gaiaIsEmpty (result))
@@ -16613,7 +18130,11 @@ fnct_Equals (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-	  ret = gaiaGeomCollEquals (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollEquals_r (data, geo1, geo2);
+	  else
+	      ret = gaiaGeomCollEquals (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16659,13 +18180,13 @@ fnct_Intersects (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedIntersects (sqlite3_user_data (context),
-						geo1, blob1, bytes1, geo2,
-						blob2, bytes2);
-#else
-	  ret = gaiaGeomCollIntersects (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedIntersects (data,
+						    geo1, blob1, bytes1, geo2,
+						    blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollIntersects (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16711,13 +18232,13 @@ fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedDisjoint (sqlite3_user_data (context),
-					      geo1, blob1, bytes1, geo2,
-					      blob2, bytes2);
-#else
-	  ret = gaiaGeomCollDisjoint (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedDisjoint (data,
+						  geo1, blob1, bytes1, geo2,
+						  blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollDisjoint (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16763,13 +18284,13 @@ fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedOverlaps (sqlite3_user_data (context),
-					      geo1, blob1, bytes1, geo2,
-					      blob2, bytes2);
-#else
-	  ret = gaiaGeomCollOverlaps (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedOverlaps (data,
+						  geo1, blob1, bytes1, geo2,
+						  blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollOverlaps (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16815,13 +18336,13 @@ fnct_Crosses (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedCrosses (sqlite3_user_data (context),
-					     geo1, blob1, bytes1, geo2, blob2,
-					     bytes2);
-#else
-	  ret = gaiaGeomCollCrosses (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedCrosses (data,
+						 geo1, blob1, bytes1, geo2,
+						 blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollCrosses (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16867,13 +18388,13 @@ fnct_Touches (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedTouches (sqlite3_user_data (context),
-					     geo1, blob1, bytes1, geo2, blob2,
-					     bytes2);
-#else
-	  ret = gaiaGeomCollTouches (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedTouches (data,
+						 geo1, blob1, bytes1, geo2,
+						 blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollTouches (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16919,12 +18440,13 @@ fnct_Within (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedWithin (sqlite3_user_data (context), geo1,
-					    blob1, bytes1, geo2, blob2, bytes2);
-#else
-	  ret = gaiaGeomCollWithin (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedWithin (data, geo1,
+						blob1, bytes1, geo2, blob2,
+						bytes2);
+	  else
+	      ret = gaiaGeomCollWithin (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -16970,13 +18492,13 @@ fnct_Contains (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-#ifdef GEOS_ADVANCED		/* only if GEOS advanced features are enable */
-	  ret = gaiaGeomCollPreparedContains (sqlite3_user_data (context),
-					      geo1, blob1, bytes1, geo2,
-					      blob2, bytes2);
-#else
-	  ret = gaiaGeomCollContains (geo1, geo2);
-#endif /* end GEOS_ADVANCED */
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedContains (data,
+						  geo1, blob1, bytes1, geo2,
+						  blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollContains (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -17027,7 +18549,11 @@ fnct_Relate (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-	  ret = gaiaGeomCollRelate (geo1, geo2, (char *) pattern);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollRelate_r (data, geo1, geo2, (char *) pattern);
+	  else
+	      ret = gaiaGeomCollRelate (geo1, geo2, (char *) pattern);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -17054,6 +18580,7 @@ fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv)
     double rf;
     int ret;
     sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    void *data = sqlite3_user_data (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
       {
@@ -17091,9 +18618,11 @@ fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv)
 		/* attempting to identify the corresponding ellipsoid */
 		if (getEllipsoidParams (sqlite, geo1->Srid, &a, &b, &rf))
 		  {
-#ifdef GEOS_ADVANCED
-		      /* GEOS advanced features support is strictly required */
-		      gaiaGeomCollPtr shortest = gaiaShortestLine (geo1, geo2);
+		      gaiaGeomCollPtr shortest;
+		      if (data != NULL)
+			  shortest = gaiaShortestLine_r (data, geo1, geo2);
+		      else
+			  shortest = gaiaShortestLine (geo1, geo2);
 		      if (shortest == NULL)
 			  sqlite3_result_null (context);
 		      else if (shortest->FirstLinestring == NULL)
@@ -17181,20 +18710,22 @@ fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv)
 				sqlite3_result_null (context);
 			    gaiaFreeGeomColl (shortest);
 			}
-#else
-		      /* GEOS advanced features support unavailable */
-		      sqlite3_result_null (context);
-#endif
 		  }
 		else
 		    sqlite3_result_null (context);
 		goto stop;
 	    }
-	  ret = gaiaGeomCollDistance (geo1, geo2, &dist);
-	  if (!ret)
-	      sqlite3_result_null (context);
 	  else
-	      sqlite3_result_double (context, dist);
+	    {
+		if (data != NULL)
+		    ret = gaiaGeomCollDistance_r (data, geo1, geo2, &dist);
+		else
+		    ret = gaiaGeomCollDistance (geo1, geo2, &dist);
+		if (!ret)
+		    sqlite3_result_null (context);
+		else
+		    sqlite3_result_double (context, dist);
+	    }
       }
   stop:
     gaiaFreeGeomColl (geo1);
@@ -17245,6 +18776,7 @@ fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv)
     double b;
     double rf;
     int ret;
+    void *data = sqlite3_user_data (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
       {
@@ -17364,7 +18896,10 @@ fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv)
 		  }
 	    }
 /* defaulting to flat distance */
-	  ret = gaiaGeomCollDistance (geo1, geo2, &dist);
+	  if (data != NULL)
+	      ret = gaiaGeomCollDistance_r (data, geo1, geo2, &dist);
+	  else
+	      ret = gaiaGeomCollDistance (geo1, geo2, &dist);
 	  if (!ret)
 	      sqlite3_result_null (context);
 	  if (dist <= ref_dist)
@@ -17396,7 +18931,6 @@ geos_error (const char *fmt, ...)
 	gaiaSetGeosErrorMsg (NULL);
 }
 
-
 SPATIALITE_PRIVATE void
 geos_warning (const char *fmt, ...)
 {
@@ -17426,9 +18960,13 @@ fnct_aux_polygonize (sqlite3_context * context, gaiaGeomCollPtr geom_org,
     unsigned char *p_result = NULL;
     gaiaPolygonPtr pg;
     int pgs = 0;
+    void *data = sqlite3_user_data (context);
     if (!geom_org)
 	goto invalid;
-    geom_new = gaiaPolygonize (geom_org, force_multipolygon);
+    if (data != NULL)
+	geom_new = gaiaPolygonize_r (data, geom_org, force_multipolygon);
+    else
+	geom_new = gaiaPolygonize (geom_org, force_multipolygon);
     if (!geom_new)
 	goto invalid;
     gaiaFreeGeomColl (geom_org);
@@ -17791,8 +19329,6 @@ fnct_BdMPolyFromWKB2 (sqlite3_context * context, int argc,
     return;
 }
 
-#ifdef GEOS_ADVANCED		/* GEOS advanced features */
-
 static int
 check_topo_table (sqlite3 * sqlite, const char *table, int is_view)
 {
@@ -19096,7 +20632,11 @@ fnct_OffsetCurve (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaOffsetCurve (geo, radius, 16, left_right);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaOffsetCurve_r (data, geo, radius, 16, left_right);
+	  else
+	      result = gaiaOffsetCurve (geo, radius, 16, left_right);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -19163,7 +20703,12 @@ fnct_SingleSidedBuffer (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaSingleSidedBuffer (geo, radius, 16, left_right);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result =
+		  gaiaSingleSidedBuffer_r (data, geo, radius, 16, left_right);
+	  else
+	      result = gaiaSingleSidedBuffer (geo, radius, 16, left_right);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -19216,7 +20761,11 @@ fnct_HausdorffDistance (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  ret = gaiaHausdorffDistance (geo1, geo2, &dist);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaHausdorffDistance_r (data, geo1, geo2, &dist);
+	  else
+	      ret = gaiaHausdorffDistance (geo1, geo2, &dist);
 	  if (!ret)
 	      sqlite3_result_null (context);
 	  sqlite3_result_double (context, dist);
@@ -19261,7 +20810,11 @@ fnct_SharedPaths (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaSharedPaths (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaSharedPaths_r (data, geo1, geo2);
+	  else
+	      result = gaiaSharedPaths (geo1, geo2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -19318,8 +20871,13 @@ fnct_Covers (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-	  ret = gaiaGeomCollPreparedCovers (sqlite3_user_data (context), geo1,
-					    blob1, bytes1, geo2, blob2, bytes2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedCovers (data, geo1,
+						blob1, bytes1, geo2, blob2,
+						bytes2);
+	  else
+	      ret = gaiaGeomCollCovers (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -19365,9 +20923,13 @@ fnct_CoveredBy (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_int (context, -1);
     else
       {
-	  ret = gaiaGeomCollPreparedCoveredBy (sqlite3_user_data (context),
-					       geo1, blob1, bytes1, geo2,
-					       blob2, bytes2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      ret = gaiaGeomCollPreparedCoveredBy (data,
+						   geo1, blob1, bytes1, geo2,
+						   blob2, bytes2);
+	  else
+	      ret = gaiaGeomCollCoveredBy (geo1, geo2);
 	  sqlite3_result_int (context, ret);
       }
     gaiaFreeGeomColl (geo1);
@@ -19416,7 +20978,11 @@ fnct_LineInterpolatePoint (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaLineInterpolatePoint (geo, fraction);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaLineInterpolatePoint_r (data, geo, fraction);
+	  else
+	      result = gaiaLineInterpolatePoint (geo, fraction);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -19475,7 +21041,12 @@ fnct_LineInterpolateEquidistantPoints (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaLineInterpolateEquidistantPoints (geo, distance);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result =
+		  gaiaLineInterpolateEquidistantPoints_r (data, geo, distance);
+	  else
+	      result = gaiaLineInterpolateEquidistantPoints (geo, distance);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -19532,7 +21103,11 @@ fnct_LineLocatePoint (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  fraction = gaiaLineLocatePoint (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      fraction = gaiaLineLocatePoint_r (data, geo1, geo2);
+	  else
+	      fraction = gaiaLineLocatePoint (geo1, geo2);
 	  if (fraction >= 0.0 && fraction <= 1.0)
 	      sqlite3_result_double (context, fraction);
 	  else
@@ -19596,7 +21171,11 @@ fnct_LineSubstring (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaLineSubstring (geo, fraction1, fraction2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaLineSubstring_r (data, geo, fraction1, fraction2);
+	  else
+	      result = gaiaLineSubstring (geo, fraction1, fraction2);
 	  if (!result)
 	      sqlite3_result_null (context);
 	  else
@@ -19648,7 +21227,11 @@ fnct_ClosestPoint (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaShortestLine (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaShortestLine_r (data, geo1, geo2);
+	  else
+	      result = gaiaShortestLine (geo1, geo2);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else if (result->FirstLinestring == NULL)
@@ -19741,7 +21324,11 @@ fnct_ShortestLine (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaShortestLine (geo1, geo2);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaShortestLine_r (data, geo1, geo2);
+	  else
+	      result = gaiaShortestLine (geo1, geo2);
 	  sqlite3_result_null (context);
 	  if (!result)
 	      sqlite3_result_null (context);
@@ -19810,7 +21397,11 @@ fnct_Snap (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaSnap (geo1, geo2, tolerance);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaSnap_r (data, geo1, geo2, tolerance);
+	  else
+	      result = gaiaSnap (geo1, geo2, tolerance);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -19856,7 +21447,11 @@ fnct_LineMerge (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaLineMerge (geo);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaLineMerge_r (data, geo);
+	  else
+	      result = gaiaLineMerge (geo);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -19899,7 +21494,11 @@ fnct_UnaryUnion (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaUnaryUnion (geo);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result = gaiaUnaryUnion_r (data, geo);
+	  else
+	      result = gaiaUnaryUnion (geo);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20016,13 +21615,20 @@ fnct_SquareGrid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
+	  void *data = sqlite3_user_data (context);
 	  if (geo->FirstPoint != NULL)
 	      goto no_polygon;
 	  if (geo->FirstLinestring != NULL)
 	      goto no_polygon;
 	  if (geo->FirstPolygon == NULL)
 	      goto no_polygon;
-	  result = gaiaSquareGrid (geo, origin_x, origin_y, size, edges_only);
+	  if (data != NULL)
+	      result =
+		  gaiaSquareGrid_r (data, geo, origin_x, origin_y, size,
+				    edges_only);
+	  else
+	      result =
+		  gaiaSquareGrid (geo, origin_x, origin_y, size, edges_only);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20150,14 +21756,21 @@ fnct_TriangularGrid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
+	  void *data = sqlite3_user_data (context);
 	  if (geo->FirstPoint != NULL)
 	      goto no_polygon;
 	  if (geo->FirstLinestring != NULL)
 	      goto no_polygon;
 	  if (geo->FirstPolygon == NULL)
 	      goto no_polygon;
-	  result =
-	      gaiaTriangularGrid (geo, origin_x, origin_y, size, edges_only);
+	  if (data != NULL)
+	      result =
+		  gaiaTriangularGrid_r (data, geo, origin_x, origin_y, size,
+					edges_only);
+	  else
+	      result =
+		  gaiaTriangularGrid (geo, origin_x, origin_y, size,
+				      edges_only);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20285,14 +21898,20 @@ fnct_HexagonalGrid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
+	  void *data = sqlite3_user_data (context);
 	  if (geo->FirstPoint != NULL)
 	      goto no_polygon;
 	  if (geo->FirstLinestring != NULL)
 	      goto no_polygon;
 	  if (geo->FirstPolygon == NULL)
 	      goto no_polygon;
-	  result =
-	      gaiaHexagonalGrid (geo, origin_x, origin_y, size, edges_only);
+	  if (data != NULL)
+	      result =
+		  gaiaHexagonalGrid_r (data, geo, origin_x, origin_y, size,
+				       edges_only);
+	  else
+	      result =
+		  gaiaHexagonalGrid (geo, origin_x, origin_y, size, edges_only);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20673,9 +22292,7 @@ fnct_RingsCutAtNodes (sqlite3_context * context, int argc,
     gaiaFreeGeomColl (geom2);
 }
 
-#endif /* end GEOS advanced features */
-
-#ifdef GEOS_TRUNK		/* GEOS experimental features */
+#ifdef GEOS_ADVANCED		/* GEOS advanced features - 3.4.0 */
 
 static void
 fnct_DelaunayTriangulation (sqlite3_context * context, int argc,
@@ -20735,7 +22352,13 @@ fnct_DelaunayTriangulation (sqlite3_context * context, int argc,
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaDelaunayTriangulation (geo, tolerance, only_edges);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result =
+		  gaiaDelaunayTriangulation_r (data, geo, tolerance,
+					       only_edges);
+	  else
+	      result = gaiaDelaunayTriangulation (geo, tolerance, only_edges);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20828,8 +22451,15 @@ fnct_VoronojDiagram (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result =
-	      gaiaVoronojDiagram (geo, extra_frame_size, tolerance, only_edges);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result =
+		  gaiaVoronojDiagram_r (data, geo, extra_frame_size, tolerance,
+					only_edges);
+	  else
+	      result =
+		  gaiaVoronojDiagram (geo, extra_frame_size, tolerance,
+				      only_edges);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20921,7 +22551,12 @@ fnct_ConcaveHull (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	sqlite3_result_null (context);
     else
       {
-	  result = gaiaConcaveHull (geo, factor, tolerance, allow_holes);
+	  void *data = sqlite3_user_data (context);
+	  if (data != NULL)
+	      result =
+		  gaiaConcaveHull_r (data, geo, factor, tolerance, allow_holes);
+	  else
+	      result = gaiaConcaveHull (geo, factor, tolerance, allow_holes);
 	  if (result == NULL)
 	      sqlite3_result_null (context);
 	  else
@@ -20938,11 +22573,49 @@ fnct_ConcaveHull (sqlite3_context * context, int argc, sqlite3_value ** argv)
     gaiaFreeGeomColl (geo);
 }
 
-#endif /* end GEOS experimental features */
+#endif /* end GEOS advanced features */
 
 #ifdef ENABLE_LWGEOM		/* enabling LWGEOM support */
 
 static void
+fnct_LWGEOM_GetLastWarningMsg (sqlite3_context * context, int argc,
+			       sqlite3_value ** argv)
+{
+/* SQL function:
+/ LWGEOM_GetLastWarningMsg()
+/
+/ return the most recent LWGEOM warning message (if any)
+/ return NULL on any other case
+*/
+    const char *msg;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    msg = gaiaGetLwGeomWarningMsg ();
+    if (msg == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC);
+}
+
+static void
+fnct_LWGEOM_GetLastErrorMsg (sqlite3_context * context, int argc,
+			     sqlite3_value ** argv)
+{
+/* SQL function:
+/ LWGEOM_GetLastErrorMsg()
+/
+/ return the most recent LWGEOM error message (if any)
+/ return NULL on any other case
+*/
+    const char *msg;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    msg = gaiaGetLwGeomErrorMsg ();
+    if (msg == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC);
+}
+
+static void
 fnct_MakeValid (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
 /* SQL function:
@@ -21610,192 +23283,502 @@ fnct_AsX3D (sqlite3_context * context, int argc, sqlite3_value ** argv)
 	      precision = sqlite3_value_int (argv[1]);
 	  else
 	    {
-		sqlite3_result_null (context);
-		return;
+		sqlite3_result_null (context);
+		return;
+	    }
+      }
+    if (argc >= 3)
+      {
+	  if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+	      options = sqlite3_value_int (argv[2]);
+	  else
+	    {
+		sqlite3_result_null (context);
+		return;
+	    }
+      }
+    if (argc == 4)
+      {
+	  if (sqlite3_value_type (argv[3]) == SQLITE_TEXT)
+	      refid = (const char *) sqlite3_value_text (argv[3]);
+	  else
+	    {
+		sqlite3_result_null (context);
+		return;
+	    }
+      }
+
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (geom == NULL)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (geom->Srid > 0)
+      {
+	  int longshort = 0;
+	  if (options & 1)
+	      longshort = 1;
+	  srs = get_srs_by_srid (sqlite, geom->Srid, longshort);
+      }
+    x3d = gaiaAsX3D (geom, srs, precision, options, refid);
+    if (x3d != NULL)
+      {
+	  int len = strlen (x3d);
+	  sqlite3_result_text (context, x3d, len, free);
+      }
+    else
+	sqlite3_result_null (context);
+    gaiaFreeGeomColl (geom);
+    if (srs)
+	free (srs);
+}
+
+static void
+fnct_3DDistance (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ 3DDistance(BLOBencoded geom1, BLOBencoded geom2)
+/
+/ returns the 3D distance between GEOM-1 and GEOM-2
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    gaiaGeomCollPtr geo1 = NULL;
+    gaiaGeomCollPtr geo2 = NULL;
+    double dist;
+    int ret;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
+    n_bytes = sqlite3_value_bytes (argv[1]);
+    geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (!geo1 || !geo2)
+	sqlite3_result_null (context);
+    else
+      {
+	  ret = gaia3DDistance (geo1, geo2, &dist);
+	  if (!ret)
+	      sqlite3_result_null (context);
+	  else
+	      sqlite3_result_double (context, dist);
+      }
+    gaiaFreeGeomColl (geo1);
+    gaiaFreeGeomColl (geo2);
+}
+
+static void
+fnct_MaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ MaxDistance(BLOBencoded geom1, BLOBencoded geom2)
+/
+/ returns the max 2D distance between GEOM-1 and GEOM-2
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    gaiaGeomCollPtr geo1 = NULL;
+    gaiaGeomCollPtr geo2 = NULL;
+    double dist;
+    int ret;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
+    n_bytes = sqlite3_value_bytes (argv[1]);
+    geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (!geo1 || !geo2)
+	sqlite3_result_null (context);
+    else
+      {
+	  ret = gaiaMaxDistance (geo1, geo2, &dist);
+	  if (!ret)
+	      sqlite3_result_null (context);
+	  else
+	      sqlite3_result_double (context, dist);
+      }
+    gaiaFreeGeomColl (geo1);
+    gaiaFreeGeomColl (geo2);
+}
+
+static void
+fnct_3DMaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ 3DMaxDistance(BLOBencoded geom1, BLOBencoded geom2)
+/
+/ returns the max 3D distance between GEOM-1 and GEOM-2
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    gaiaGeomCollPtr geo1 = NULL;
+    gaiaGeomCollPtr geo2 = NULL;
+    double dist;
+    int ret;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
+    n_bytes = sqlite3_value_bytes (argv[1]);
+    geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (!geo1 || !geo2)
+	sqlite3_result_null (context);
+    else
+      {
+	  ret = gaia3DMaxDistance (geo1, geo2, &dist);
+	  if (!ret)
+	      sqlite3_result_null (context);
+	  else
+	      sqlite3_result_double (context, dist);
+      }
+    gaiaFreeGeomColl (geo1);
+    gaiaFreeGeomColl (geo2);
+}
+
+static void
+fnct_Node (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ ST_Node(BLOBencoded linestring(s))
+/
+/ Returns a new new (Multi)Linestring by re-noding the input linestring(s)
+/ NULL is returned for invalid arguments
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    gaiaGeomCollPtr input;
+    gaiaGeomCollPtr result;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+
+/* retrieving the input geometry */
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (input == NULL)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+
+    result = gaiaNodeLines (input);
+    if (result != NULL)
+      {
+	  gaiaToSpatiaLiteBlobWkb (result, &p_blob, &n_bytes);
+	  sqlite3_result_blob (context, p_blob, n_bytes, free);
+	  gaiaFreeGeomColl (result);
+      }
+    else
+	sqlite3_result_null (context);
+    gaiaFreeGeomColl (input);
+}
+
+static int
+check_all_linestrings (gaiaGeomCollPtr in)
+{
+/* check id this is a collection of Linestrings */
+    int pts = 0;
+    int lns = 0;
+    int pgs = 0;
+    gaiaPointPtr pt;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+
+    if (in == NULL)
+	return 0;
+/* checking if we have any POINT */
+    pt = in->FirstPoint;
+    while (pt)
+      {
+	  pts++;
+	  pt = pt->Next;
+      }
+    if (pts > 0)
+	return 0;
+/* checking if we have any POLYGON */
+    pg = in->FirstPolygon;
+    while (pg)
+      {
+	  pgs++;
+	  pg = pg->Next;
+      }
+    if (pgs > 0)
+	return 0;
+/* checking if we have any LINESTRING */
+    ln = in->FirstLinestring;
+    while (ln)
+      {
+	  lns++;
+	  ln = ln->Next;
+      }
+    if (lns == 0)
+	return 0;
+    return 1;
+}
+
+static gaiaGeomCollPtr
+get_nodes (gaiaGeomCollPtr in)
+{
+/* extracts all Nodes (Linestring extermities) */
+    int iv;
+    double x;
+    double y;
+    double m;
+    double z;
+    gaiaLinestringPtr ln;
+    gaiaGeomCollPtr out;
+
+    if (in == NULL)
+	return NULL;
+
+    if (in->DimensionModel == GAIA_XY_M)
+	out = gaiaAllocGeomCollXYM ();
+    else if (in->DimensionModel == GAIA_XY_Z)
+	out = gaiaAllocGeomCollXYZ ();
+    else if (in->DimensionModel == GAIA_XY_Z_M)
+	out = gaiaAllocGeomCollXYZM ();
+    else
+	out = gaiaAllocGeomColl ();
+    out->Srid = in->Srid;
+
+    ln = in->FirstLinestring;
+    while (ln)
+      {
+	  /* saving the extreme points - Start */
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z);
+		gaiaAddPointToGeomCollXYZ (out, x, y, z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m);
+		gaiaAddPointToGeomCollXYM (out, x, y, m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m);
+		gaiaAddPointToGeomCollXYZM (out, x, y, z, m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, 0, &x, &y);
+		gaiaAddPointToGeomColl (out, x, y);
+	    }
+	  /* saving the extreme points - End */
+	  iv = ln->Points - 1;
+	  if (ln->DimensionModel == GAIA_XY_Z)
+	    {
+		gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z);
+		gaiaAddPointToGeomCollXYZ (out, x, y, z);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_M)
+	    {
+		gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m);
+		gaiaAddPointToGeomCollXYM (out, x, y, m);
+	    }
+	  else if (ln->DimensionModel == GAIA_XY_Z_M)
+	    {
+		gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m);
+		gaiaAddPointToGeomCollXYZM (out, x, y, z, m);
+	    }
+	  else
+	    {
+		gaiaGetPoint (ln->Coords, iv, &x, &y);
+		gaiaAddPointToGeomColl (out, x, y);
 	    }
+	  ln = ln->Next;
       }
-    if (argc >= 3)
+
+    return out;
+}
+
+static int
+point_is_defined (gaiaPointPtr in, gaiaGeomCollPtr geom)
+{
+/* checking if a Point is already defined */
+    gaiaPointPtr pt = geom->FirstPoint;
+    while (pt)
       {
-	  if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
-	      options = sqlite3_value_int (argv[2]);
-	  else
+	  if (geom->DimensionModel == GAIA_XY_Z)
 	    {
-		sqlite3_result_null (context);
-		return;
+		if (pt->X == in->X && pt->Y == in->Y && pt->Z == in->Z)
+		    return 1;
+	    }
+	  else if (geom->DimensionModel == GAIA_XY_M)
+	    {
+		if (pt->X == in->X && pt->Y == in->Y && pt->M == in->M)
+		    return 1;
+	    }
+	  else if (geom->DimensionModel == GAIA_XY_Z_M)
+	    {
+		if (pt->X == in->X && pt->Y == in->Y && pt->Z == in->Z
+		    && pt->M == in->M)
+		    return 1;
 	    }
-      }
-    if (argc == 4)
-      {
-	  if (sqlite3_value_type (argv[3]) == SQLITE_TEXT)
-	      refid = (const char *) sqlite3_value_text (argv[3]);
 	  else
 	    {
-		sqlite3_result_null (context);
-		return;
+		if (pt->X == in->X && pt->Y == in->Y)
+		    return 1;
 	    }
+	  pt = pt->Next;
       }
-
-    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
-    n_bytes = sqlite3_value_bytes (argv[0]);
-    geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    if (geom == NULL)
-      {
-	  sqlite3_result_null (context);
-	  return;
-      }
-    if (geom->Srid > 0)
-      {
-	  int longshort = 0;
-	  if (options & 1)
-	      longshort = 1;
-	  srs = get_srs_by_srid (sqlite, geom->Srid, longshort);
-      }
-    x3d = gaiaAsX3D (geom, srs, precision, options, refid);
-    if (x3d != NULL)
-      {
-	  int len = strlen (x3d);
-	  sqlite3_result_text (context, x3d, len, free);
-      }
-    else
-	sqlite3_result_null (context);
-    gaiaFreeGeomColl (geom);
-    if (srs)
-	free (srs);
+    return 0;
 }
 
-static void
-fnct_3DDistance (sqlite3_context * context, int argc, sqlite3_value ** argv)
+static gaiaGeomCollPtr
+get_self_intersections (gaiaGeomCollPtr in_old, gaiaGeomCollPtr in_new)
 {
-/* SQL function:
-/ 3DDistance(BLOBencoded geom1, BLOBencoded geom2)
-/
-/ returns the 3D distance between GEOM-1 and GEOM-2
-*/
-    unsigned char *p_blob;
-    int n_bytes;
-    gaiaGeomCollPtr geo1 = NULL;
-    gaiaGeomCollPtr geo2 = NULL;
-    double dist;
-    int ret;
-    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
-    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
-      {
-	  sqlite3_result_null (context);
-	  return;
-      }
-    if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+/* extracting the self-intersection points */
+    gaiaPointPtr pt;
+    gaiaGeomCollPtr out;
+
+    if (in_old->DimensionModel == GAIA_XY_M)
+	out = gaiaAllocGeomCollXYM ();
+    else if (in_old->DimensionModel == GAIA_XY_Z)
+	out = gaiaAllocGeomCollXYZ ();
+    else if (in_old->DimensionModel == GAIA_XY_Z_M)
+	out = gaiaAllocGeomCollXYZM ();
+    else
+	out = gaiaAllocGeomColl ();
+    out->Srid = in_old->Srid;
+
+    pt = in_new->FirstPoint;
+    while (pt)
       {
-	  sqlite3_result_null (context);
-	  return;
+	  int ok1 = point_is_defined (pt, in_old);
+	  int ok2 = point_is_defined (pt, out);
+	  if (!ok1 && !ok2)
+	    {
+		/* inserting a Point into the result collection */
+		if (out->DimensionModel == GAIA_XY_Z)
+		    gaiaAddPointToGeomCollXYZ (out, pt->X, pt->Y, pt->Z);
+		else if (out->DimensionModel == GAIA_XY_M)
+		    gaiaAddPointToGeomCollXYM (out, pt->X, pt->Y, pt->M);
+		else if (out->DimensionModel == GAIA_XY_Z_M)
+		    gaiaAddPointToGeomCollXYZM (out, pt->X, pt->Y, pt->Z,
+						pt->M);
+		else
+		    gaiaAddPointToGeomColl (out, pt->X, pt->Y);
+	    }
+	  pt = pt->Next;
       }
-    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
-    n_bytes = sqlite3_value_bytes (argv[0]);
-    geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
-    n_bytes = sqlite3_value_bytes (argv[1]);
-    geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    if (!geo1 || !geo2)
-	sqlite3_result_null (context);
-    else
+
+    if (out->FirstPoint == NULL)
       {
-	  ret = gaia3DDistance (geo1, geo2, &dist);
-	  if (!ret)
-	      sqlite3_result_null (context);
-	  else
-	      sqlite3_result_double (context, dist);
+	  /* no self-intersections were found */
+	  gaiaFreeGeomColl (out);
+	  return NULL;
       }
-    gaiaFreeGeomColl (geo1);
-    gaiaFreeGeomColl (geo2);
+
+    return out;
 }
 
 static void
-fnct_MaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv)
+fnct_SelfIntersections (sqlite3_context * context, int argc,
+			sqlite3_value ** argv)
 {
 /* SQL function:
-/ MaxDistance(BLOBencoded geom1, BLOBencoded geom2)
+/ ST_SelfIntersections(BLOBencoded linestring(s))
 /
-/ returns the max 2D distance between GEOM-1 and GEOM-2
+/ Returns a MultiPoint Geometry representing any self-intersection
+/ found within the input geometry [linestring(s)]
+/ NULL is returned for invalid arguments, or when no self-intersections
+/ were found
 */
     unsigned char *p_blob;
     int n_bytes;
-    gaiaGeomCollPtr geo1 = NULL;
-    gaiaGeomCollPtr geo2 = NULL;
-    double dist;
-    int ret;
+    gaiaGeomCollPtr input;
+    gaiaGeomCollPtr noded;
+    gaiaGeomCollPtr result;
+    gaiaGeomCollPtr nodes_in;
+    gaiaGeomCollPtr nodes_out;
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
     if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
       {
 	  sqlite3_result_null (context);
 	  return;
       }
-    if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
-      {
-	  sqlite3_result_null (context);
-	  return;
-      }
+
+/* retrieving the input geometry */
     p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
     n_bytes = sqlite3_value_bytes (argv[0]);
-    geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
-    n_bytes = sqlite3_value_bytes (argv[1]);
-    geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    if (!geo1 || !geo2)
-	sqlite3_result_null (context);
-    else
-      {
-	  ret = gaiaMaxDistance (geo1, geo2, &dist);
-	  if (!ret)
-	      sqlite3_result_null (context);
-	  else
-	      sqlite3_result_double (context, dist);
-      }
-    gaiaFreeGeomColl (geo1);
-    gaiaFreeGeomColl (geo2);
-}
-
-static void
-fnct_3DMaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv)
-{
-/* SQL function:
-/ 3DMaxDistance(BLOBencoded geom1, BLOBencoded geom2)
-/
-/ returns the max 3D distance between GEOM-1 and GEOM-2
-*/
-    unsigned char *p_blob;
-    int n_bytes;
-    gaiaGeomCollPtr geo1 = NULL;
-    gaiaGeomCollPtr geo2 = NULL;
-    double dist;
-    int ret;
-    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
-    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+    input = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
+    if (input == NULL)
       {
 	  sqlite3_result_null (context);
 	  return;
       }
-    if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+
+/* checking the input (Linestrings only) */
+    if (!check_all_linestrings (input))
       {
+	  gaiaFreeGeomColl (input);
 	  sqlite3_result_null (context);
 	  return;
       }
-    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
-    n_bytes = sqlite3_value_bytes (argv[0]);
-    geo1 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    p_blob = (unsigned char *) sqlite3_value_blob (argv[1]);
-    n_bytes = sqlite3_value_bytes (argv[1]);
-    geo2 = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes);
-    if (!geo1 || !geo2)
-	sqlite3_result_null (context);
-    else
-      {
-	  ret = gaia3DMaxDistance (geo1, geo2, &dist);
-	  if (!ret)
-	      sqlite3_result_null (context);
-	  else
-	      sqlite3_result_double (context, dist);
+/* extracting all input nodes */
+    nodes_in = get_nodes (input);
+
+    noded = gaiaNodeLines (input);
+    gaiaFreeGeomColl (input);
+/* extracting all output nodes */
+    nodes_out = get_nodes (noded);
+    gaiaFreeGeomColl (noded);
+
+/* identifying the intersections */
+    result = get_self_intersections (nodes_in, nodes_out);
+    gaiaFreeGeomColl (nodes_in);
+    gaiaFreeGeomColl (nodes_out);
+    if (result != NULL)
+      {
+	  result->DeclaredType = GAIA_MULTIPOINT;
+	  gaiaToSpatiaLiteBlobWkb (result, &p_blob, &n_bytes);
+	  sqlite3_result_blob (context, p_blob, n_bytes, free);
+	  gaiaFreeGeomColl (result);
       }
-    gaiaFreeGeomColl (geo1);
-    gaiaFreeGeomColl (geo2);
+    else
+	sqlite3_result_null (context);
 }
 
 #endif /* end LWGEOM support */
@@ -23154,35 +25137,6 @@ fnct_math_radians (sqlite3_context * context, int argc, sqlite3_value ** argv)
     sqlite3_result_double (context, x);
 }
 
-
-static void
-fnct_math_round (sqlite3_context * context, int argc, sqlite3_value ** argv)
-{
-/* SQL function:
-/ round(double X)
-/
-/ Returns the nearest integer, but round halfway cases away from zero
-/ or NULL if any error is encountered
-*/
-    int int_value;
-    double x;
-    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
-    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
-      {
-	  x = math_round (sqlite3_value_double (argv[0]));
-	  sqlite3_result_double (context, x);
-      }
-    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
-      {
-	  int_value = sqlite3_value_int (argv[0]);
-	  x = int_value;
-	  x = math_round (x);
-	  sqlite3_result_double (context, x);
-      }
-    else
-	sqlite3_result_null (context);
-}
-
 static void
 fnct_math_sign (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
@@ -23925,8 +25879,7 @@ fnct_GeodesicLength (sqlite3_context * context, int argc, sqlite3_value ** argv)
 				  /* interior Rings */
 				  ring = polyg->Interiors + ib;
 				  l = gaiaGeodesicTotalLength (a, b, rf,
-							       ring->
-							       DimensionModel,
+							       ring->DimensionModel,
 							       ring->Coords,
 							       ring->Points);
 				  if (l < 0.0)
@@ -24010,8 +25963,7 @@ fnct_GreatCircleLength (sqlite3_context * context, int argc,
 			    ring = polyg->Exterior;
 			    length +=
 				gaiaGreatCircleTotalLength (a, b,
-							    ring->
-							    DimensionModel,
+							    ring->DimensionModel,
 							    ring->Coords,
 							    ring->Points);
 			    for (ib = 0; ib < polyg->NumInteriors; ib++)
@@ -24020,8 +25972,7 @@ fnct_GreatCircleLength (sqlite3_context * context, int argc,
 				  ring = polyg->Interiors + ib;
 				  length +=
 				      gaiaGreatCircleTotalLength (a, b,
-								  ring->
-								  DimensionModel,
+								  ring->DimensionModel,
 								  ring->Coords,
 								  ring->Points);
 			      }
@@ -24311,9 +26262,105 @@ fnct_cvtFromIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv)
 }
 
 static void
-fnct_cvtFromIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv)
+fnct_cvtFromIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+    convertUnit (context, argc, argv, GAIA_IND_CH, GAIA_M);
+}
+
+static void
+fnct_longFromDMS (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ LongitudeFromDMS ( dms_string )
+/
+/ return the Longitude (in Decimal Degrees) from a DMS text expression
+/ or NULL if any error is encountered
+*/
+    const char *dms;
+    double longitude;
+    double latitude;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_TEXT)
+	dms = (const char *) sqlite3_value_text (argv[0]);
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (!gaiaParseDMS (dms, &longitude, &latitude))
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_double (context, longitude);
+}
+
+static void
+fnct_latFromDMS (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ LatitudeFromDMS ( dms_string )
+/
+/ return the Latitude (in Decimal Degrees) from a DMS text expression
+/ or NULL if any error is encountered
+*/
+    const char *dms;
+    double longitude;
+    double latitude;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_TEXT)
+	dms = (const char *) sqlite3_value_text (argv[0]);
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (!gaiaParseDMS (dms, &longitude, &latitude))
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_double (context, latitude);
+}
+
+static void
+fnct_toDMS (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
-    convertUnit (context, argc, argv, GAIA_IND_CH, GAIA_M);
+/* SQL function:
+/ LongLatToDMS ( longitude, latitude )
+/
+/ return a DMS text expression
+/ or NULL if any error is encountered
+*/
+    double longitude;
+    double latitude;
+    char *dms;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT)
+	longitude = sqlite3_value_double (argv[0]);
+    else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+      {
+	  int value = sqlite3_value_int (argv[0]);
+	  longitude = value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
+	latitude = sqlite3_value_double (argv[1]);
+    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
+      {
+	  int value = sqlite3_value_int (argv[1]);
+	  latitude = value;
+      }
+    else
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    dms = gaiaConvertToDMS (longitude, latitude);
+    if (dms == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, dms, strlen (dms), free);
 }
 
 #ifdef ENABLE_LIBXML2		/* including LIBXML2 */
@@ -24567,12 +26614,12 @@ fnct_RegisterStyledGroup (sqlite3_context * context, int argc,
 			  sqlite3_value ** argv)
 {
 /* SQL function:
-/ RegisterStyledGroup(String group_name, String coverage_name, 
-/		      Integer style_id [, Integer paint_order)
+/ RegisterStyledGroup(String group_name, String coverage_name
+/                     [, Integer paint_order ] )
 /  or
 / RegisterStyledGroup(String group_name, String f_table_name,
-/		      String f_geometry_column, Integer style_id
-/		      [, Integer paint_order)
+/		      String f_geometry_column
+/		      [, Integer paint_order ] )
 /
 / inserts or updates a Styled Group item 
 / returns 1 on success
@@ -24583,20 +26630,17 @@ fnct_RegisterStyledGroup (sqlite3_context * context, int argc,
     const char *f_table_name = NULL;
     const char *f_geometry_column = NULL;
     const char *coverage_name = NULL;
-    int style_id;
     int paint_order = -1;
     sqlite3 *sqlite = sqlite3_context_db_handle (context);
     GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
-    if (argc == 3)
+    if (argc == 2)
       {
 	  /* raster layer - default */
 	  if (sqlite3_value_type (argv[0]) == SQLITE_TEXT
-	      && sqlite3_value_type (argv[1]) == SQLITE_TEXT
-	      && sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
+	      && sqlite3_value_type (argv[1]) == SQLITE_TEXT)
 	    {
 		group_name = (const char *) sqlite3_value_text (argv[0]);
 		coverage_name = (const char *) sqlite3_value_text (argv[1]);
-		style_id = sqlite3_value_int (argv[2]);
 	    }
 	  else
 	    {
@@ -24604,29 +26648,25 @@ fnct_RegisterStyledGroup (sqlite3_context * context, int argc,
 		return;
 	    }
       }
-    else if (argc == 4)
+    else if (argc == 3)
       {
 	  if (sqlite3_value_type (argv[0]) == SQLITE_TEXT
 	      && sqlite3_value_type (argv[1]) == SQLITE_TEXT
-	      && sqlite3_value_type (argv[2]) == SQLITE_INTEGER
-	      && sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
+	      && sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
 	    {
 		/* raster layer - paint_order */
 		group_name = (const char *) sqlite3_value_text (argv[0]);
 		coverage_name = (const char *) sqlite3_value_text (argv[1]);
-		style_id = sqlite3_value_int (argv[2]);
-		paint_order = sqlite3_value_int (argv[3]);
+		paint_order = sqlite3_value_int (argv[2]);
 	    }
 	  else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT
 		   && sqlite3_value_type (argv[1]) == SQLITE_TEXT
-		   && sqlite3_value_type (argv[2]) == SQLITE_TEXT
-		   && sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
+		   && sqlite3_value_type (argv[2]) == SQLITE_TEXT)
 	    {
 		/* vector layer - default */
 		group_name = (const char *) sqlite3_value_text (argv[0]);
 		f_table_name = (const char *) sqlite3_value_text (argv[1]);
 		f_geometry_column = (const char *) sqlite3_value_text (argv[2]);
-		style_id = sqlite3_value_int (argv[3]);
 	    }
 	  else
 	    {
@@ -24634,20 +26674,18 @@ fnct_RegisterStyledGroup (sqlite3_context * context, int argc,
 		return;
 	    }
       }
-    else if (argc == 5)
+    else if (argc == 4)
       {
 	  /* vector layer - paint_order */
 	  if (sqlite3_value_type (argv[0]) == SQLITE_TEXT
 	      && sqlite3_value_type (argv[1]) == SQLITE_TEXT
 	      && sqlite3_value_type (argv[2]) == SQLITE_TEXT
-	      && sqlite3_value_type (argv[3]) == SQLITE_INTEGER
-	      && sqlite3_value_type (argv[4]) == SQLITE_INTEGER)
+	      && sqlite3_value_type (argv[3]) == SQLITE_INTEGER)
 	    {
 		group_name = (const char *) sqlite3_value_text (argv[0]);
 		f_table_name = (const char *) sqlite3_value_text (argv[1]);
 		f_geometry_column = (const char *) sqlite3_value_text (argv[2]);
-		style_id = sqlite3_value_int (argv[3]);
-		paint_order = sqlite3_value_int (argv[4]);
+		paint_order = sqlite3_value_int (argv[3]);
 	    }
 	  else
 	    {
@@ -24656,8 +26694,7 @@ fnct_RegisterStyledGroup (sqlite3_context * context, int argc,
 	    }
       }
     ret = register_styled_group (sqlite, group_name, f_table_name,
-				 f_geometry_column, coverage_name, style_id,
-				 paint_order);
+				 f_geometry_column, coverage_name, paint_order);
     sqlite3_result_int (context, ret);
 }
 
@@ -24702,6 +26739,71 @@ fnct_SetStyledGroupInfos (sqlite3_context * context, int argc,
 }
 
 static void
+fnct_RegisterGroupStyle (sqlite3_context * context, int argc,
+			 sqlite3_value ** argv)
+{
+/* SQL function:
+/ RegisterGroupStyle(String group_name, BLOB style)
+/  or
+/ RegisterGroupStyle(String group_name, Integer style_id,
+/                    BLOB style)
+/
+/ inserts or updates a Group Style 
+/ returns 1 on success
+/ 0 on failure, -1 on invalid arguments
+*/
+    int ret;
+    const char *group_name;
+    int style_id = -1;
+    const unsigned char *p_blob;
+    int n_bytes;
+    sqlite3 *sqlite = sqlite3_context_db_handle (context);
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    if (argc == 3)
+      {
+	  /* optional extra args */
+	  if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+	  if (sqlite3_value_type (argv[2]) != SQLITE_BLOB)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+      }
+    else
+      {
+	  /* no extra-args */
+	  if (sqlite3_value_type (argv[1]) != SQLITE_BLOB)
+	    {
+		sqlite3_result_int (context, -1);
+		return;
+	    }
+      }
+    group_name = (const char *) sqlite3_value_text (argv[0]);
+    if (argc == 3)
+      {
+	  style_id = sqlite3_value_int (argv[1]);
+	  p_blob = sqlite3_value_blob (argv[2]);
+	  n_bytes = sqlite3_value_bytes (argv[2]);
+      }
+    else
+      {
+	  p_blob = sqlite3_value_blob (argv[1]);
+	  n_bytes = sqlite3_value_bytes (argv[1]);
+      }
+    ret = register_group_style (sqlite, group_name, style_id, p_blob, n_bytes);
+    sqlite3_result_int (context, ret);
+}
+
+static void
 fnct_CreateIsoMetadataTables (sqlite3_context * context, int argc,
 			      sqlite3_value ** argv)
 {
@@ -25392,6 +27494,31 @@ fnct_XB_IsSldSeRasterStyle (sqlite3_context * context, int argc,
 }
 
 static void
+fnct_XB_IsSldStyle (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ XB_IsSldStyle(XmlBLOB)
+/
+/ returns TRUE if the current BLOB is an SLD Style XmlBLOB,
+/ FALSE if it's a valid XmlBLOB but not an SLD Style
+/ or -1 if any error is encountered
+*/
+    unsigned char *p_blob;
+    int n_bytes;
+    int ret;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_int (context, -1);
+	  return;
+      }
+    p_blob = (unsigned char *) sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    ret = gaiaIsSldStyleXmlBlob (p_blob, n_bytes);
+    sqlite3_result_int (context, ret);
+}
+
+static void
 fnct_XB_IsSvg (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
 /* SQL function:
@@ -25772,6 +27899,34 @@ fnct_XB_AddParentId (sqlite3_context * context, int argc, sqlite3_value ** argv)
 }
 
 static void
+fnct_XB_GetName (sqlite3_context * context, int argc, sqlite3_value ** argv)
+{
+/* SQL function:
+/ XB_GetName(XmlBLOB)
+/
+/ if the BLOB is a valid XmlBLOB containing a Name then
+/ the Name will be returned
+/ return NULL on any other case
+*/
+    const unsigned char *p_blob;
+    int n_bytes;
+    char *name;
+    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
+    if (sqlite3_value_type (argv[0]) != SQLITE_BLOB)
+      {
+	  sqlite3_result_null (context);
+	  return;
+      }
+    p_blob = sqlite3_value_blob (argv[0]);
+    n_bytes = sqlite3_value_bytes (argv[0]);
+    name = gaiaXmlBlobGetName (p_blob, n_bytes);
+    if (name == NULL)
+	sqlite3_result_null (context);
+    else
+	sqlite3_result_text (context, name, strlen (name), free);
+}
+
+static void
 fnct_XB_GetTitle (sqlite3_context * context, int argc, sqlite3_value ** argv)
 {
 /* SQL function:
@@ -26022,67 +28177,17 @@ fnct_XB_CacheFlush (sqlite3_context * context, int argc, sqlite3_value ** argv)
 
 #endif /* end including LIBXML2 */
 
-SPATIALITE_DECLARE void *
-spatialite_alloc_connection ()
-{
-/* allocating and initializing an empty internal cache */
-    gaiaOutBufferPtr out;
-    int i;
-    struct splite_internal_cache *cache;
-    struct splite_geos_cache_item *p;
-    struct splite_xmlSchema_cache_item *p_xmlSchema;
-
-    cache = malloc (sizeof (struct splite_internal_cache));
-/* initializing the XML error buffers */
-    out = malloc (sizeof (gaiaOutBuffer));
-    gaiaOutBufferInitialize (out);
-    cache->xmlParsingErrors = out;
-    out = malloc (sizeof (gaiaOutBuffer));
-    gaiaOutBufferInitialize (out);
-    cache->xmlSchemaValidationErrors = out;
-    out = malloc (sizeof (gaiaOutBuffer));
-    gaiaOutBufferInitialize (out);
-    cache->xmlXPathErrors = out;
-/* initializing the GEOS cache */
-    p = &(cache->cacheItem1);
-    memset (p->gaiaBlob, '\0', 64);
-    p->gaiaBlobSize = 0;
-    p->crc32 = 0;
-    p->geosGeom = NULL;
-    p->preparedGeosGeom = NULL;
-    p = &(cache->cacheItem2);
-    memset (p->gaiaBlob, '\0', 64);
-    p->gaiaBlobSize = 0;
-    p->crc32 = 0;
-    p->geosGeom = NULL;
-    p->preparedGeosGeom = NULL;
-    for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++)
-      {
-	  /* initializing the XmlSchema cache */
-	  p_xmlSchema = &(cache->xmlSchemaCache[i]);
-	  p_xmlSchema->timestamp = 0;
-	  p_xmlSchema->schemaURI = NULL;
-	  p_xmlSchema->schemaDoc = NULL;
-	  p_xmlSchema->parserCtxt = NULL;
-	  p_xmlSchema->schema = NULL;
-      }
-    return cache;
-}
-
 SPATIALITE_PRIVATE void *
-register_spatialite_sql_functions (void *p_db, void *p_cache)
+register_spatialite_sql_functions (void *p_db, const void *p_cache)
 {
     sqlite3 *db = p_db;
     struct splite_internal_cache *cache =
 	(struct splite_internal_cache *) p_cache;
     const char *security_level;
-    if (cache == NULL)
-      {
-	  /* dirty compatibility mode: allocating an internal cache */
-	  cache = spatialite_alloc_connection ();
-      }
     sqlite3_create_function (db, "spatialite_version", 0, SQLITE_ANY, 0,
 			     fnct_spatialite_version, 0, 0);
+    sqlite3_create_function (db, "spatialite_target_cpu", 0, SQLITE_ANY, 0,
+			     fnct_spatialite_target_cpu, 0, 0);
     sqlite3_create_function (db, "proj4_version", 0, SQLITE_ANY, 0,
 			     fnct_proj4_version, 0, 0);
     sqlite3_create_function (db, "geos_version", 0, SQLITE_ANY, 0,
@@ -26113,6 +28218,8 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_has_epsg, 0, 0);
     sqlite3_create_function (db, "HasLibXML2", 0, SQLITE_ANY, 0,
 			     fnct_has_libxml2, 0, 0);
+    sqlite3_create_function (db, "HasGeoPackage", 0, SQLITE_ANY, 0,
+			     fnct_has_geopackage, 0, 0);
     sqlite3_create_function (db, "GeometryConstraints", 3, SQLITE_ANY, 0,
 			     fnct_GeometryConstraints, 0, 0);
     sqlite3_create_function (db, "GeometryConstraints", 4, SQLITE_ANY, 0,
@@ -26121,10 +28228,20 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_RTreeAlign, 0, 0);
     sqlite3_create_function (db, "IsValidNoDataPixel", 3, SQLITE_ANY, 0,
 			     fnct_IsValidNoDataPixel, 0, 0);
+    sqlite3_create_function (db, "IsValidRasterPalette", 2, SQLITE_ANY, 0,
+			     fnct_IsValidRasterPalette, 0, 0);
+    sqlite3_create_function (db, "IsValidRasterStatistics", 2, SQLITE_ANY, 0,
+			     fnct_IsValidRasterStatistics, 0, 0);
+    sqlite3_create_function (db, "IsValidRasterStatistics", 3, SQLITE_ANY, 0,
+			     fnct_IsValidRasterStatistics, 0, 0);
+    sqlite3_create_function (db, "IsValidRasterTile", 4, SQLITE_ANY, 0,
+			     fnct_IsValidRasterTile, 0, 0);
     sqlite3_create_function (db, "IsPopulatedCoverage", 1, SQLITE_ANY, 0,
 			     fnct_IsPopulatedCoverage, 0, 0);
     sqlite3_create_function (db, "CheckSpatialMetaData", 0, SQLITE_ANY, 0,
 			     fnct_CheckSpatialMetaData, 0, 0);
+    sqlite3_create_function (db, "CheckGeoPackageMetaData", 0, SQLITE_ANY, 0,
+			     fnct_CheckGeoPackageMetaData, 0, 0);
     sqlite3_create_function (db, "AutoFDOStart", 0, SQLITE_ANY, 0,
 			     fnct_AutoFDOStart, 0, 0);
     sqlite3_create_function (db, "AutoFDOStop", 0, SQLITE_ANY, 0,
@@ -26173,6 +28290,8 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_CheckSpatialIndex, 0, 0);
     sqlite3_create_function (db, "CheckSpatialIndex", 2, SQLITE_ANY, 0,
 			     fnct_CheckSpatialIndex, 0, 0);
+    sqlite3_create_function (db, "CheckShadowedRowid", 1, SQLITE_ANY, 0,
+			     fnct_CheckShadowedRowid, 0, 0);
     sqlite3_create_function (db, "CreateSpatialIndex", 2, SQLITE_ANY, 0,
 			     fnct_CreateSpatialIndex, 0, 0);
     sqlite3_create_function (db, "CreateMbrCache", 2, SQLITE_ANY, 0,
@@ -26193,8 +28312,20 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_GetLayerExtent, 0, 0);
     sqlite3_create_function (db, "GetLayerExtent", 3, SQLITE_ANY, 0,
 			     fnct_GetLayerExtent, 0, 0);
+    sqlite3_create_function (db, "InvalidateLayerStatistics", 0, SQLITE_ANY, 0,
+			     fnct_InvalidateLayerStatistics, 0, 0);
+    sqlite3_create_function (db, "InvalidateLayerStatistics", 1, SQLITE_ANY, 0,
+			     fnct_InvalidateLayerStatistics, 0, 0);
+    sqlite3_create_function (db, "InvalidateLayerStatistics", 2, SQLITE_ANY, 0,
+			     fnct_InvalidateLayerStatistics, 0, 0);
     sqlite3_create_function (db, "CreateRasterCoveragesTable", 0, SQLITE_ANY,
 			     0, fnct_CreateRasterCoveragesTable, 0, 0);
+    sqlite3_create_function (db, "CreateMetaCatalogTables", 1, SQLITE_ANY, 0,
+			     fnct_CreateMetaCatalogTables, 0, 0);
+    sqlite3_create_function (db, "UpdateMetaCatalogStatistics", 3, SQLITE_ANY,
+			     0, fnct_UpdateMetaCatalogStatistics, 0, 0);
+    sqlite3_create_function (db, "UpdateMetaCatalogStatistics", 4, SQLITE_ANY,
+			     0, fnct_UpdateMetaCatalogStatistics, 0, 0);
     sqlite3_create_function (db, "AsText", 1, SQLITE_ANY, 0, fnct_AsText, 0, 0);
     sqlite3_create_function (db, "ST_AsText", 1, SQLITE_ANY, 0, fnct_AsText, 0,
 			     0);
@@ -26205,16 +28336,20 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
     sqlite3_create_function (db, "AsSvg", 3, SQLITE_ANY, 0, fnct_AsSvg3, 0, 0);
 
 #ifndef OMIT_PROJ		/* PROJ.4 is strictly required to support KML */
-    sqlite3_create_function (db, "AsKml", 1, SQLITE_ANY, 0, fnct_AsKml, 0, 0);
-    sqlite3_create_function (db, "AsKml", 2, SQLITE_ANY, 0, fnct_AsKml, 0, 0);
-    sqlite3_create_function (db, "AsKml", 3, SQLITE_ANY, 0, fnct_AsKml, 0, 0);
-    sqlite3_create_function (db, "AsKml", 4, SQLITE_ANY, 0, fnct_AsKml, 0, 0);
+    sqlite3_create_function (db, "AsKml", 1, SQLITE_ANY, cache, fnct_AsKml, 0,
+			     0);
+    sqlite3_create_function (db, "AsKml", 2, SQLITE_ANY, cache, fnct_AsKml, 0,
+			     0);
+    sqlite3_create_function (db, "AsKml", 3, SQLITE_ANY, cache, fnct_AsKml, 0,
+			     0);
+    sqlite3_create_function (db, "AsKml", 4, SQLITE_ANY, cache, fnct_AsKml, 0,
+			     0);
 #endif /* end including PROJ.4 */
 
     sqlite3_create_function (db, "AsGml", 1, SQLITE_ANY, 0, fnct_AsGml, 0, 0);
     sqlite3_create_function (db, "AsGml", 2, SQLITE_ANY, 0, fnct_AsGml, 0, 0);
     sqlite3_create_function (db, "AsGml", 3, SQLITE_ANY, 0, fnct_AsGml, 0, 0);
-    sqlite3_create_function (db, "GeomFromGml", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "GeomFromGml", 1, SQLITE_ANY, cache,
 			     fnct_FromGml, 0, 0);
     sqlite3_create_function (db, "AsGeoJSON", 1, SQLITE_ANY, 0,
 			     fnct_AsGeoJSON, 0, 0);
@@ -26774,14 +28909,14 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_MakeEllipticSector, 0, 0);
     sqlite3_create_function (db, "MakeEllipticSector", 8, SQLITE_ANY, 0,
 			     fnct_MakeEllipticSector, 0, 0);
-    sqlite3_create_function (db, "Collect", 1, SQLITE_ANY, 0, 0,
-			     fnct_Collect_step, fnct_Collect_final);
-    sqlite3_create_function (db, "Collect", 2, SQLITE_ANY, 0, fnct_Collect, 0,
-			     0);
-    sqlite3_create_function (db, "ST_Collect", 1, SQLITE_ANY, 0, 0,
+    sqlite3_create_function (db, "Collect", 1, SQLITE_ANY, cache, 0,
 			     fnct_Collect_step, fnct_Collect_final);
-    sqlite3_create_function (db, "ST_Collect", 2, SQLITE_ANY, 0, fnct_Collect,
+    sqlite3_create_function (db, "Collect", 2, SQLITE_ANY, cache, fnct_Collect,
 			     0, 0);
+    sqlite3_create_function (db, "ST_Collect", 1, SQLITE_ANY, cache, 0,
+			     fnct_Collect_step, fnct_Collect_final);
+    sqlite3_create_function (db, "ST_Collect", 2, SQLITE_ANY, cache,
+			     fnct_Collect, 0, 0);
     sqlite3_create_function (db, "BuildMbrFilter", 4, SQLITE_ANY, 0,
 			     fnct_BuildMbrFilter, 0, 0);
     sqlite3_create_function (db, "FilterMbrWithin", 4, SQLITE_ANY, 0,
@@ -26837,15 +28972,23 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     0, 0);
     sqlite3_create_function (db, "ST_SetPoint", 3, SQLITE_ANY, 0,
 			     fnct_SetPoint, 0, 0);
+    sqlite3_create_function (db, "MakePolygon", 1, SQLITE_ANY, 0,
+			     fnct_MakePolygon, 0, 0);
+    sqlite3_create_function (db, "ST_MakePolygon", 1, SQLITE_ANY, 0,
+			     fnct_MakePolygon, 0, 0);
+    sqlite3_create_function (db, "MakePolygon", 2, SQLITE_ANY, 0,
+			     fnct_MakePolygon, 0, 0);
+    sqlite3_create_function (db, "ST_MakePolygon", 2, SQLITE_ANY, 0,
+			     fnct_MakePolygon, 0, 0);
 
 #ifndef OMIT_GEOS		/* including GEOS */
-    sqlite3_create_function (db, "BuildArea", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BuildArea", 1, SQLITE_ANY, cache,
 			     fnct_BuildArea, 0, 0);
-    sqlite3_create_function (db, "ST_BuildArea", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BuildArea", 1, SQLITE_ANY, cache,
 			     fnct_BuildArea, 0, 0);
-    sqlite3_create_function (db, "Polygonize", 1, SQLITE_ANY, 0, 0,
+    sqlite3_create_function (db, "Polygonize", 1, SQLITE_ANY, cache, 0,
 			     fnct_Polygonize_step, fnct_Polygonize_final);
-    sqlite3_create_function (db, "ST_Polygonize", 1, SQLITE_ANY, 0, 0,
+    sqlite3_create_function (db, "ST_Polygonize", 1, SQLITE_ANY, cache, 0,
 			     fnct_Polygonize_step, fnct_Polygonize_final);
 #endif /* end including GEOS */
 
@@ -27044,6 +29187,14 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
     sqlite3_create_function (db, "CvtFromIndCh", 1, SQLITE_ANY, 0,
 			     fnct_cvtFromIndCh, 0, 0);
 
+/* DMS (Degrees/Minutes/Seconds) to DD (decimal degrees) */
+    sqlite3_create_function (db, "LongitudeFromDMS", 1, SQLITE_ANY, 0,
+			     fnct_longFromDMS, 0, 0);
+    sqlite3_create_function (db, "LatitudeFromDMS", 1, SQLITE_ANY, 0,
+			     fnct_latFromDMS, 0, 0);
+    sqlite3_create_function (db, "LongLatToDMS", 2, SQLITE_ANY, 0, fnct_toDMS,
+			     0, 0);
+
 #ifndef OMIT_MATHSQL		/* supporting SQL math functions */
 
 /* some extra math functions */
@@ -27078,8 +29229,6 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     0);
     sqlite3_create_function (db, "radians", 1, SQLITE_ANY, 0,
 			     fnct_math_radians, 0, 0);
-    sqlite3_create_function (db, "round", 1, SQLITE_ANY, 0, fnct_math_round,
-			     0, 0);
     sqlite3_create_function (db, "sign", 1, SQLITE_ANY, 0, fnct_math_sign, 0,
 			     0);
     sqlite3_create_function (db, "sin", 1, SQLITE_ANY, 0, fnct_math_sin, 0, 0);
@@ -27100,99 +29249,115 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 
 #ifndef OMIT_PROJ		/* including PROJ.4 */
 
-    sqlite3_create_function (db, "Transform", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Transform", 2, SQLITE_ANY, cache,
 			     fnct_Transform, 0, 0);
-    sqlite3_create_function (db, "ST_Transform", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Transform", 2, SQLITE_ANY, cache,
 			     fnct_Transform, 0, 0);
 
 #endif /* end including PROJ.4 */
 
 #ifndef OMIT_GEOS		/* including GEOS */
 
-    sqlite3_create_function (db, "Boundary", 1, SQLITE_ANY, 0, fnct_Boundary,
-			     0, 0);
-    sqlite3_create_function (db, "ST_Boundary", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "GEOS_GetLastErrorMsg", 0, SQLITE_ANY,
+			     cache, fnct_GEOS_GetLastErrorMsg, 0, 0);
+    sqlite3_create_function (db, "GEOS_GetLastWarningMsg", 0, SQLITE_ANY,
+			     cache, fnct_GEOS_GetLastWarningMsg, 0, 0);
+    sqlite3_create_function (db, "GEOS_GetLastAuxErrorMsg", 0, SQLITE_ANY,
+			     cache, fnct_GEOS_GetLastAuxErrorMsg, 0, 0);
+    sqlite3_create_function (db, "GEOS_GetCriticalPointFromMsg", 0, SQLITE_ANY,
+			     cache, fnct_GEOS_GetCriticalPointFromMsg, 0, 0);
+    sqlite3_create_function (db, "GEOS_GetCriticalPointFromMsg", 1, SQLITE_ANY,
+			     cache, fnct_GEOS_GetCriticalPointFromMsg, 0, 0);
+
+    sqlite3_create_function (db, "Boundary", 1, SQLITE_ANY, cache,
 			     fnct_Boundary, 0, 0);
-    sqlite3_create_function (db, "IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed,
-			     0, 0);
-    sqlite3_create_function (db, "ST_IsClosed", 1, SQLITE_ANY, 0,
-			     fnct_IsClosed, 0, 0);
-    sqlite3_create_function (db, "IsSimple", 1, SQLITE_ANY, 0, fnct_IsSimple,
+    sqlite3_create_function (db, "ST_Boundary", 1, SQLITE_ANY, cache,
+			     fnct_Boundary, 0, 0);
+    sqlite3_create_function (db, "IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed, 0,
+			     0);
+    sqlite3_create_function (db, "ST_IsClosed", 1, SQLITE_ANY, 0, fnct_IsClosed,
 			     0, 0);
-    sqlite3_create_function (db, "ST_IsSimple", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "IsSimple", 1, SQLITE_ANY, cache,
 			     fnct_IsSimple, 0, 0);
-    sqlite3_create_function (db, "IsRing", 1, SQLITE_ANY, 0, fnct_IsRing, 0, 0);
-    sqlite3_create_function (db, "ST_IsRing", 1, SQLITE_ANY, 0, fnct_IsRing, 0,
-			     0);
-    sqlite3_create_function (db, "IsValid", 1, SQLITE_ANY, 0, fnct_IsValid, 0,
+    sqlite3_create_function (db, "ST_IsSimple", 1, SQLITE_ANY, cache,
+			     fnct_IsSimple, 0, 0);
+    sqlite3_create_function (db, "IsRing", 1, SQLITE_ANY, cache, fnct_IsRing, 0,
 			     0);
-    sqlite3_create_function (db, "ST_IsValid", 1, SQLITE_ANY, 0, fnct_IsValid,
+    sqlite3_create_function (db, "ST_IsRing", 1, SQLITE_ANY, cache, fnct_IsRing,
 			     0, 0);
-    sqlite3_create_function (db, "GLength", 1, SQLITE_ANY, 0, fnct_Length, 0,
-			     0);
-    sqlite3_create_function (db, "GLength", 2, SQLITE_ANY, 0, fnct_Length, 0,
-			     0);
-    sqlite3_create_function (db, "ST_Length", 1, SQLITE_ANY, 0, fnct_Length, 0,
-			     0);
-    sqlite3_create_function (db, "ST_Length", 2, SQLITE_ANY, 0, fnct_Length, 0,
-			     0);
-    sqlite3_create_function (db, "Perimeter", 1, SQLITE_ANY, 0, fnct_Perimeter,
+    sqlite3_create_function (db, "IsValid", 1, SQLITE_ANY, cache, fnct_IsValid,
+			     0, 0);
+    sqlite3_create_function (db, "ST_IsValid", 1, SQLITE_ANY, cache,
+			     fnct_IsValid, 0, 0);
+    sqlite3_create_function (db, "GLength", 1, SQLITE_ANY, cache, fnct_Length,
+			     0, 0);
+    sqlite3_create_function (db, "GLength", 2, SQLITE_ANY, cache, fnct_Length,
+			     0, 0);
+    sqlite3_create_function (db, "ST_Length", 1, SQLITE_ANY, cache, fnct_Length,
 			     0, 0);
-    sqlite3_create_function (db, "Perimeter", 2, SQLITE_ANY, 0, fnct_Perimeter,
+    sqlite3_create_function (db, "ST_Length", 2, SQLITE_ANY, cache, fnct_Length,
 			     0, 0);
-    sqlite3_create_function (db, "ST_Perimeter", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Perimeter", 1, SQLITE_ANY, cache,
 			     fnct_Perimeter, 0, 0);
-    sqlite3_create_function (db, "ST_Perimeter", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Perimeter", 2, SQLITE_ANY, cache,
 			     fnct_Perimeter, 0, 0);
-    sqlite3_create_function (db, "Area", 1, SQLITE_ANY, 0, fnct_Area, 0, 0);
-    sqlite3_create_function (db, "ST_Area", 1, SQLITE_ANY, 0, fnct_Area, 0, 0);
-    sqlite3_create_function (db, "ST_Centroid", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Perimeter", 1, SQLITE_ANY, cache,
+			     fnct_Perimeter, 0, 0);
+    sqlite3_create_function (db, "ST_Perimeter", 2, SQLITE_ANY, cache,
+			     fnct_Perimeter, 0, 0);
+    sqlite3_create_function (db, "Area", 1, SQLITE_ANY, cache, fnct_Area, 0, 0);
+    sqlite3_create_function (db, "ST_Area", 1, SQLITE_ANY, cache, fnct_Area, 0,
+			     0);
+    sqlite3_create_function (db, "ST_Centroid", 1, SQLITE_ANY, cache,
 			     fnct_Centroid, 0, 0);
-    sqlite3_create_function (db, "Centroid", 1, SQLITE_ANY, 0, fnct_Centroid,
-			     0, 0);
-    sqlite3_create_function (db, "PointOnSurface", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Centroid", 1, SQLITE_ANY, cache,
+			     fnct_Centroid, 0, 0);
+    sqlite3_create_function (db, "PointOnSurface", 1, SQLITE_ANY, cache,
 			     fnct_PointOnSurface, 0, 0);
-    sqlite3_create_function (db, "ST_PointOnSurface", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_PointOnSurface", 1, SQLITE_ANY, cache,
 			     fnct_PointOnSurface, 0, 0);
-    sqlite3_create_function (db, "Simplify", 2, SQLITE_ANY, 0, fnct_Simplify,
-			     0, 0);
-    sqlite3_create_function (db, "ST_Simplify", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Simplify", 2, SQLITE_ANY, cache,
 			     fnct_Simplify, 0, 0);
-    sqlite3_create_function (db, "ST_Generalize", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Simplify", 2, SQLITE_ANY, cache,
 			     fnct_Simplify, 0, 0);
-    sqlite3_create_function (db, "SimplifyPreserveTopology", 2, SQLITE_ANY, 0,
-			     fnct_SimplifyPreserveTopology, 0, 0);
+    sqlite3_create_function (db, "ST_Generalize", 2, SQLITE_ANY, cache,
+			     fnct_Simplify, 0, 0);
+    sqlite3_create_function (db, "SimplifyPreserveTopology", 2, SQLITE_ANY,
+			     cache, fnct_SimplifyPreserveTopology, 0, 0);
     sqlite3_create_function (db, "ST_SimplifyPreserveTopology", 2, SQLITE_ANY,
-			     0, fnct_SimplifyPreserveTopology, 0, 0);
-    sqlite3_create_function (db, "ConvexHull", 1, SQLITE_ANY, 0,
+			     cache, fnct_SimplifyPreserveTopology, 0, 0);
+    sqlite3_create_function (db, "ConvexHull", 1, SQLITE_ANY, cache,
 			     fnct_ConvexHull, 0, 0);
-    sqlite3_create_function (db, "ST_ConvexHull", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ConvexHull", 1, SQLITE_ANY, cache,
 			     fnct_ConvexHull, 0, 0);
-    sqlite3_create_function (db, "Buffer", 2, SQLITE_ANY, 0, fnct_Buffer, 0, 0);
-    sqlite3_create_function (db, "ST_Buffer", 2, SQLITE_ANY, 0, fnct_Buffer, 0,
+    sqlite3_create_function (db, "Buffer", 2, SQLITE_ANY, cache, fnct_Buffer, 0,
 			     0);
-    sqlite3_create_function (db, "Intersection", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Buffer", 2, SQLITE_ANY, cache, fnct_Buffer,
+			     0, 0);
+    sqlite3_create_function (db, "Intersection", 2, SQLITE_ANY, cache,
 			     fnct_Intersection, 0, 0);
-    sqlite3_create_function (db, "ST_Intersection", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Intersection", 2, SQLITE_ANY, cache,
 			     fnct_Intersection, 0, 0);
-    sqlite3_create_function (db, "GUnion", 1, SQLITE_ANY, 0, 0,
+    sqlite3_create_function (db, "GUnion", 1, SQLITE_ANY, cache, 0,
 			     fnct_Union_step, fnct_Union_final);
-    sqlite3_create_function (db, "GUnion", 2, SQLITE_ANY, 0, fnct_Union, 0, 0);
-    sqlite3_create_function (db, "ST_Union", 1, SQLITE_ANY, 0, 0,
-			     fnct_Union_step, fnct_Union_final);
-    sqlite3_create_function (db, "ST_Union", 2, SQLITE_ANY, 0, fnct_Union, 0,
+    sqlite3_create_function (db, "GUnion", 2, SQLITE_ANY, cache, fnct_Union, 0,
 			     0);
-    sqlite3_create_function (db, "Difference", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Union", 1, SQLITE_ANY, cache, 0,
+			     fnct_Union_step, fnct_Union_final);
+    sqlite3_create_function (db, "ST_Union", 2, SQLITE_ANY, cache, fnct_Union,
+			     0, 0);
+    sqlite3_create_function (db, "Difference", 2, SQLITE_ANY, cache,
 			     fnct_Difference, 0, 0);
-    sqlite3_create_function (db, "ST_Difference", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Difference", 2, SQLITE_ANY, cache,
 			     fnct_Difference, 0, 0);
-    sqlite3_create_function (db, "SymDifference", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "SymDifference", 2, SQLITE_ANY, cache,
 			     fnct_SymDifference, 0, 0);
-    sqlite3_create_function (db, "ST_SymDifference", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_SymDifference", 2, SQLITE_ANY, cache,
 			     fnct_SymDifference, 0, 0);
-    sqlite3_create_function (db, "Equals", 2, SQLITE_ANY, 0, fnct_Equals, 0, 0);
-    sqlite3_create_function (db, "ST_Equals", 2, SQLITE_ANY, 0, fnct_Equals, 0,
+    sqlite3_create_function (db, "Equals", 2, SQLITE_ANY, cache, fnct_Equals, 0,
 			     0);
+    sqlite3_create_function (db, "ST_Equals", 2, SQLITE_ANY, cache, fnct_Equals,
+			     0, 0);
     sqlite3_create_function (db, "Intersects", 2, SQLITE_ANY, cache,
 			     fnct_Intersects, 0, 0);
     sqlite3_create_function (db, "ST_Intersects", 2, SQLITE_ANY, cache,
@@ -27213,83 +29378,81 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     0, 0);
     sqlite3_create_function (db, "ST_Touches", 2, SQLITE_ANY, cache,
 			     fnct_Touches, 0, 0);
-    sqlite3_create_function (db, "Within", 2, SQLITE_ANY, cache, fnct_Within,
+    sqlite3_create_function (db, "Within", 2, SQLITE_ANY, cache, fnct_Within, 0,
+			     0);
+    sqlite3_create_function (db, "ST_Within", 2, SQLITE_ANY, cache, fnct_Within,
 			     0, 0);
-    sqlite3_create_function (db, "ST_Within", 2, SQLITE_ANY, cache,
-			     fnct_Within, 0, 0);
     sqlite3_create_function (db, "Contains", 2, SQLITE_ANY, cache,
 			     fnct_Contains, 0, 0);
     sqlite3_create_function (db, "ST_Contains", 2, SQLITE_ANY, cache,
 			     fnct_Contains, 0, 0);
-    sqlite3_create_function (db, "Relate", 3, SQLITE_ANY, 0, fnct_Relate, 0, 0);
-    sqlite3_create_function (db, "ST_Relate", 3, SQLITE_ANY, 0, fnct_Relate, 0,
+    sqlite3_create_function (db, "Relate", 3, SQLITE_ANY, cache, fnct_Relate, 0,
 			     0);
-    sqlite3_create_function (db, "Distance", 2, SQLITE_ANY, 0, fnct_Distance,
-			     0, 0);
-    sqlite3_create_function (db, "Distance", 3, SQLITE_ANY, 0, fnct_Distance,
+    sqlite3_create_function (db, "ST_Relate", 3, SQLITE_ANY, cache, fnct_Relate,
 			     0, 0);
-    sqlite3_create_function (db, "ST_Distance", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Distance", 2, SQLITE_ANY, cache,
+			     fnct_Distance, 0, 0);
+    sqlite3_create_function (db, "Distance", 3, SQLITE_ANY, cache,
+			     fnct_Distance, 0, 0);
+    sqlite3_create_function (db, "ST_Distance", 2, SQLITE_ANY, cache,
 			     fnct_Distance, 0, 0);
-    sqlite3_create_function (db, "ST_Distance", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Distance", 3, SQLITE_ANY, cache,
 			     fnct_Distance, 0, 0);
-    sqlite3_create_function (db, "PtDistWithin", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "PtDistWithin", 3, SQLITE_ANY, cache,
 			     fnct_PtDistWithin, 0, 0);
-    sqlite3_create_function (db, "PtDistWithin", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "PtDistWithin", 4, SQLITE_ANY, cache,
 			     fnct_PtDistWithin, 0, 0);
-    sqlite3_create_function (db, "BdPolyFromText", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdPolyFromText", 1, SQLITE_ANY, cache,
 			     fnct_BdPolyFromText1, 0, 0);
-    sqlite3_create_function (db, "BdPolyFromText", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdPolyFromText", 2, SQLITE_ANY, cache,
 			     fnct_BdPolyFromText2, 0, 0);
-    sqlite3_create_function (db, "BdMPolyFromText", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdMPolyFromText", 1, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromText1, 0, 0);
-    sqlite3_create_function (db, "BdMPolyFromText", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdMPolyFromText", 2, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromText2, 0, 0);
-    sqlite3_create_function (db, "BdPolyFromWKB", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdPolyFromWKB", 1, SQLITE_ANY, cache,
 			     fnct_BdPolyFromWKB1, 0, 0);
-    sqlite3_create_function (db, "BdPolyFromWKB", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdPolyFromWKB", 2, SQLITE_ANY, cache,
 			     fnct_BdPolyFromWKB2, 0, 0);
-    sqlite3_create_function (db, "BdMPolyFromWKB", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdMPolyFromWKB", 1, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromWKB1, 0, 0);
-    sqlite3_create_function (db, "BdMPolyFromWKB", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "BdMPolyFromWKB", 2, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromWKB2, 0, 0);
-    sqlite3_create_function (db, "ST_BdPolyFromText", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdPolyFromText", 1, SQLITE_ANY, cache,
 			     fnct_BdPolyFromText1, 0, 0);
-    sqlite3_create_function (db, "ST_BdPolyFromText", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdPolyFromText", 2, SQLITE_ANY, cache,
 			     fnct_BdPolyFromText2, 0, 0);
-    sqlite3_create_function (db, "ST_BdMPolyFromText", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdMPolyFromText", 1, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromText1, 0, 0);
-    sqlite3_create_function (db, "ST_BdMPolyFromText", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdMPolyFromText", 2, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromText2, 0, 0);
-    sqlite3_create_function (db, "ST_BdPolyFromWKB", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdPolyFromWKB", 1, SQLITE_ANY, cache,
 			     fnct_BdPolyFromWKB1, 0, 0);
-    sqlite3_create_function (db, "ST_BdPolyFromWKB", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdPolyFromWKB", 2, SQLITE_ANY, cache,
 			     fnct_BdPolyFromWKB2, 0, 0);
-    sqlite3_create_function (db, "ST_BdMPolyFromWKB", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdMPolyFromWKB", 1, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromWKB1, 0, 0);
-    sqlite3_create_function (db, "ST_BdMPolyFromWKB", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_BdMPolyFromWKB", 2, SQLITE_ANY, cache,
 			     fnct_BdMPolyFromWKB2, 0, 0);
-
-#ifdef GEOS_ADVANCED		/* GEOS advanced features */
-
     sqlite3_create_function (db, "CreateTopologyTables", 2, SQLITE_ANY, 0,
 			     fnct_CreateTopologyTables, 0, 0);
     sqlite3_create_function (db, "CreateTopologyTables", 3, SQLITE_ANY, 0,
 			     fnct_CreateTopologyTables, 0, 0);
-    sqlite3_create_function (db, "OffsetCurve", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "OffsetCurve", 3, SQLITE_ANY, cache,
 			     fnct_OffsetCurve, 0, 0);
-    sqlite3_create_function (db, "ST_OffsetCurve", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_OffsetCurve", 3, SQLITE_ANY, cache,
 			     fnct_OffsetCurve, 0, 0);
-    sqlite3_create_function (db, "SingleSidedBuffer", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "SingleSidedBuffer", 3, SQLITE_ANY, cache,
 			     fnct_SingleSidedBuffer, 0, 0);
-    sqlite3_create_function (db, "ST_SingleSidedBuffer", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_SingleSidedBuffer", 3, SQLITE_ANY, cache,
 			     fnct_SingleSidedBuffer, 0, 0);
-    sqlite3_create_function (db, "HausdorffDistance", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "HausdorffDistance", 2, SQLITE_ANY, cache,
 			     fnct_HausdorffDistance, 0, 0);
-    sqlite3_create_function (db, "ST_HausdorffDistance", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_HausdorffDistance", 2, SQLITE_ANY, cache,
 			     fnct_HausdorffDistance, 0, 0);
-    sqlite3_create_function (db, "SharedPaths", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "SharedPaths", 2, SQLITE_ANY, cache,
 			     fnct_SharedPaths, 0, 0);
-    sqlite3_create_function (db, "ST_SharedPaths", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_SharedPaths", 2, SQLITE_ANY, cache,
 			     fnct_SharedPaths, 0, 0);
     sqlite3_create_function (db, "Covers", 2, SQLITE_ANY, cache, fnct_Covers,
 			     0, 0);
@@ -27299,77 +29462,78 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_CoveredBy, 0, 0);
     sqlite3_create_function (db, "ST_CoveredBy", 2, SQLITE_ANY, cache,
 			     fnct_CoveredBy, 0, 0);
-    sqlite3_create_function (db, "Line_Interpolate_Point", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Line_Interpolate_Point", 2, SQLITE_ANY, cache,
 			     fnct_LineInterpolatePoint, 0, 0);
     sqlite3_create_function (db, "ST_Line_Interpolate_Point", 2, SQLITE_ANY,
-			     0, fnct_LineInterpolatePoint, 0, 0);
+			     cache, fnct_LineInterpolatePoint, 0, 0);
     sqlite3_create_function (db, "Line_Interpolate_Equidistant_Points", 2,
-			     SQLITE_ANY, 0,
+			     SQLITE_ANY, cache,
 			     fnct_LineInterpolateEquidistantPoints, 0, 0);
     sqlite3_create_function (db, "ST_Line_Interpolate_Equidistant_Points", 2,
-			     SQLITE_ANY, 0,
+			     SQLITE_ANY, cache,
 			     fnct_LineInterpolateEquidistantPoints, 0, 0);
-    sqlite3_create_function (db, "Line_Locate_Point", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Line_Locate_Point", 2, SQLITE_ANY, cache,
 			     fnct_LineLocatePoint, 0, 0);
-    sqlite3_create_function (db, "ST_Line_Locate_Point", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Line_Locate_Point", 2, SQLITE_ANY, cache,
 			     fnct_LineLocatePoint, 0, 0);
-    sqlite3_create_function (db, "Line_Substring", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Line_Substring", 3, SQLITE_ANY, cache,
 			     fnct_LineSubstring, 0, 0);
-    sqlite3_create_function (db, "ST_Line_Substring", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_Line_Substring", 3, SQLITE_ANY, cache,
 			     fnct_LineSubstring, 0, 0);
-    sqlite3_create_function (db, "ClosestPoint", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ClosestPoint", 2, SQLITE_ANY, cache,
 			     fnct_ClosestPoint, 0, 0);
-    sqlite3_create_function (db, "ST_ClosestPoint", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ClosestPoint", 2, SQLITE_ANY, cache,
 			     fnct_ClosestPoint, 0, 0);
-    sqlite3_create_function (db, "ShortestLine", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ShortestLine", 2, SQLITE_ANY, cache,
 			     fnct_ShortestLine, 0, 0);
-    sqlite3_create_function (db, "ST_ShortestLine", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ShortestLine", 2, SQLITE_ANY, cache,
 			     fnct_ShortestLine, 0, 0);
-    sqlite3_create_function (db, "Snap", 3, SQLITE_ANY, 0, fnct_Snap, 0, 0);
-    sqlite3_create_function (db, "ST_Snap", 3, SQLITE_ANY, 0, fnct_Snap, 0, 0);
-    sqlite3_create_function (db, "LineMerge", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "Snap", 3, SQLITE_ANY, cache, fnct_Snap, 0, 0);
+    sqlite3_create_function (db, "ST_Snap", 3, SQLITE_ANY, cache, fnct_Snap, 0,
+			     0);
+    sqlite3_create_function (db, "LineMerge", 1, SQLITE_ANY, cache,
 			     fnct_LineMerge, 0, 0);
-    sqlite3_create_function (db, "ST_LineMerge", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_LineMerge", 1, SQLITE_ANY, cache,
 			     fnct_LineMerge, 0, 0);
-    sqlite3_create_function (db, "UnaryUnion", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "UnaryUnion", 1, SQLITE_ANY, cache,
 			     fnct_UnaryUnion, 0, 0);
-    sqlite3_create_function (db, "ST_UnaryUnion", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_UnaryUnion", 1, SQLITE_ANY, cache,
 			     fnct_UnaryUnion, 0, 0);
-    sqlite3_create_function (db, "SquareGrid", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "SquareGrid", 2, SQLITE_ANY, cache,
 			     fnct_SquareGrid, 0, 0);
-    sqlite3_create_function (db, "SquareGrid", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "SquareGrid", 3, SQLITE_ANY, cache,
 			     fnct_SquareGrid, 0, 0);
-    sqlite3_create_function (db, "SquareGrid", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "SquareGrid", 4, SQLITE_ANY, cache,
 			     fnct_SquareGrid, 0, 0);
-    sqlite3_create_function (db, "ST_SquareGrid", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_SquareGrid", 2, SQLITE_ANY, cache,
 			     fnct_SquareGrid, 0, 0);
-    sqlite3_create_function (db, "ST_SquareGrid", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_SquareGrid", 3, SQLITE_ANY, cache,
 			     fnct_SquareGrid, 0, 0);
-    sqlite3_create_function (db, "ST_SquareGrid", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_SquareGrid", 4, SQLITE_ANY, cache,
 			     fnct_SquareGrid, 0, 0);
-    sqlite3_create_function (db, "TriangularGrid", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "TriangularGrid", 2, SQLITE_ANY, cache,
 			     fnct_TriangularGrid, 0, 0);
-    sqlite3_create_function (db, "TriangularGrid", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "TriangularGrid", 3, SQLITE_ANY, cache,
 			     fnct_TriangularGrid, 0, 0);
-    sqlite3_create_function (db, "TriangularGrid", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "TriangularGrid", 4, SQLITE_ANY, cache,
 			     fnct_TriangularGrid, 0, 0);
-    sqlite3_create_function (db, "ST_TriangularGrid", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_TriangularGrid", 2, SQLITE_ANY, cache,
 			     fnct_TriangularGrid, 0, 0);
-    sqlite3_create_function (db, "ST_TriangularGrid", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_TriangularGrid", 3, SQLITE_ANY, cache,
 			     fnct_TriangularGrid, 0, 0);
-    sqlite3_create_function (db, "ST_TriangularGrid", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_TriangularGrid", 4, SQLITE_ANY, cache,
 			     fnct_TriangularGrid, 0, 0);
-    sqlite3_create_function (db, "HexagonalGrid", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "HexagonalGrid", 2, SQLITE_ANY, cache,
 			     fnct_HexagonalGrid, 0, 0);
-    sqlite3_create_function (db, "HexagonalGrid", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "HexagonalGrid", 3, SQLITE_ANY, cache,
 			     fnct_HexagonalGrid, 0, 0);
-    sqlite3_create_function (db, "HexagonalGrid", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "HexagonalGrid", 4, SQLITE_ANY, cache,
 			     fnct_HexagonalGrid, 0, 0);
-    sqlite3_create_function (db, "ST_HexagonalGrid", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_HexagonalGrid", 2, SQLITE_ANY, cache,
 			     fnct_HexagonalGrid, 0, 0);
-    sqlite3_create_function (db, "ST_HexagonalGrid", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_HexagonalGrid", 3, SQLITE_ANY, cache,
 			     fnct_HexagonalGrid, 0, 0);
-    sqlite3_create_function (db, "ST_HexagonalGrid", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_HexagonalGrid", 4, SQLITE_ANY, cache,
 			     fnct_HexagonalGrid, 0, 0);
     sqlite3_create_function (db, "LinesCutAtNodes", 2, SQLITE_ANY, 0,
 			     fnct_LinesCutAtNodes, 0, 0);
@@ -27380,59 +29544,62 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
     sqlite3_create_function (db, "ST_RingsCutAtNodes", 1, SQLITE_ANY, 0,
 			     fnct_RingsCutAtNodes, 0, 0);
 
-#endif /* end GEOS advanced features */
-
-#ifdef GEOS_TRUNK		/* GEOS experimental features */
+#ifdef GEOS_ADVANCED		/* GEOS advanced features - 3.4.0 */
 
-    sqlite3_create_function (db, "DelaunayTriangulation", 1, SQLITE_ANY, 0,
-			     fnct_DelaunayTriangulation, 0, 0);
-    sqlite3_create_function (db, "DelaunayTriangulation", 2, SQLITE_ANY, 0,
-			     fnct_DelaunayTriangulation, 0, 0);
-    sqlite3_create_function (db, "DelaunayTriangulation", 3, SQLITE_ANY, 0,
-			     fnct_DelaunayTriangulation, 0, 0);
-    sqlite3_create_function (db, "ST_DelaunayTriangulation", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "DelaunayTriangulation", 1, SQLITE_ANY, cache,
 			     fnct_DelaunayTriangulation, 0, 0);
-    sqlite3_create_function (db, "ST_DelaunayTriangulation", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "DelaunayTriangulation", 2, SQLITE_ANY, cache,
 			     fnct_DelaunayTriangulation, 0, 0);
-    sqlite3_create_function (db, "ST_DelaunayTriangulation", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "DelaunayTriangulation", 3, SQLITE_ANY, cache,
 			     fnct_DelaunayTriangulation, 0, 0);
-    sqlite3_create_function (db, "VoronojDiagram", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_DelaunayTriangulation", 1, SQLITE_ANY,
+			     cache, fnct_DelaunayTriangulation, 0, 0);
+    sqlite3_create_function (db, "ST_DelaunayTriangulation", 2, SQLITE_ANY,
+			     cache, fnct_DelaunayTriangulation, 0, 0);
+    sqlite3_create_function (db, "ST_DelaunayTriangulation", 3, SQLITE_ANY,
+			     cache, fnct_DelaunayTriangulation, 0, 0);
+    sqlite3_create_function (db, "VoronojDiagram", 1, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "VoronojDiagram", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "VoronojDiagram", 2, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "VoronojDiagram", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "VoronojDiagram", 3, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "VoronojDiagram", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "VoronojDiagram", 4, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "ST_VoronojDiagram", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_VoronojDiagram", 1, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "ST_VoronojDiagram", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_VoronojDiagram", 2, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "ST_VoronojDiagram", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_VoronojDiagram", 3, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "ST_VoronojDiagram", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_VoronojDiagram", 4, SQLITE_ANY, cache,
 			     fnct_VoronojDiagram, 0, 0);
-    sqlite3_create_function (db, "ConcaveHull", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ConcaveHull", 1, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ConcaveHull", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ConcaveHull", 2, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ConcaveHull", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ConcaveHull", 3, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ConcaveHull", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ConcaveHull", 4, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ST_ConcaveHull", 1, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ConcaveHull", 1, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ST_ConcaveHull", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ConcaveHull", 2, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ST_ConcaveHull", 3, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ConcaveHull", 3, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
-    sqlite3_create_function (db, "ST_ConcaveHull", 4, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "ST_ConcaveHull", 4, SQLITE_ANY, cache,
 			     fnct_ConcaveHull, 0, 0);
 
-#endif /* end GEOS experimental features */
+#endif /* end GEOS advanced features */
 
 #ifdef ENABLE_LWGEOM		/* enabling LWGEOM support */
 
+    sqlite3_create_function (db, "LWGEOM_GetLastErrorMsg", 0, SQLITE_ANY,
+			     0, fnct_LWGEOM_GetLastErrorMsg, 0, 0);
+    sqlite3_create_function (db, "LWGEOM_GetLastWarningMsg", 0, SQLITE_ANY,
+			     0, fnct_LWGEOM_GetLastWarningMsg, 0, 0);
+
     sqlite3_create_function (db, "MakeValid", 1, SQLITE_ANY, 0,
 			     fnct_MakeValid, 0, 0);
     sqlite3_create_function (db, "ST_MakeValid", 1, SQLITE_ANY, 0,
@@ -27494,6 +29661,11 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_SplitRight, 0, 0);
     sqlite3_create_function (db, "ST_SplitRight", 2, SQLITE_ANY, 0,
 			     fnct_SplitRight, 0, 0);
+    sqlite3_create_function (db, "ST_Node", 1, SQLITE_ANY, 0, fnct_Node, 0, 0);
+    sqlite3_create_function (db, "SelfIntersections", 1, SQLITE_ANY, 0,
+			     fnct_SelfIntersections, 0, 0);
+    sqlite3_create_function (db, "ST_SelfIntersections", 1, SQLITE_ANY, 0,
+			     fnct_SelfIntersections, 0, 0);
 
 #endif /* end LWGEOM support */
 
@@ -27517,14 +29689,18 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     0, fnct_RegisterRasterStyledLayer, 0, 0);
     sqlite3_create_function (db, "RegisterRasterStyledLayer", 3, SQLITE_ANY,
 			     0, fnct_RegisterRasterStyledLayer, 0, 0);
+    sqlite3_create_function (db, "RegisterStyledGroup", 2, SQLITE_ANY, 0,
+			     fnct_RegisterStyledGroup, 0, 0);
     sqlite3_create_function (db, "RegisterStyledGroup", 3, SQLITE_ANY, 0,
 			     fnct_RegisterStyledGroup, 0, 0);
     sqlite3_create_function (db, "RegisterStyledGroup", 4, SQLITE_ANY, 0,
 			     fnct_RegisterStyledGroup, 0, 0);
-    sqlite3_create_function (db, "RegisterStyledGroup", 5, SQLITE_ANY, 0,
-			     fnct_RegisterStyledGroup, 0, 0);
     sqlite3_create_function (db, "SetStyledGroupInfos", 3, SQLITE_ANY, 0,
 			     fnct_SetStyledGroupInfos, 0, 0);
+    sqlite3_create_function (db, "RegisterGroupStyle", 2, SQLITE_ANY,
+			     0, fnct_RegisterGroupStyle, 0, 0);
+    sqlite3_create_function (db, "RegisterGroupStyle", 3, SQLITE_ANY,
+			     0, fnct_RegisterGroupStyle, 0, 0);
     sqlite3_create_function (db, "CreateIsoMetadataTables", 0, SQLITE_ANY, 0,
 			     fnct_CreateIsoMetadataTables, 0, 0);
     sqlite3_create_function (db, "CreateIsoMetadataTables", 1, SQLITE_ANY, 0,
@@ -27567,6 +29743,8 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_XB_IsSldSeVectorStyle, 0, 0);
     sqlite3_create_function (db, "XB_IsSldSeRasterStyle", 1, SQLITE_ANY, 0,
 			     fnct_XB_IsSldSeRasterStyle, 0, 0);
+    sqlite3_create_function (db, "XB_IsSldStyle", 1, SQLITE_ANY, 0,
+			     fnct_XB_IsSldStyle, 0, 0);
     sqlite3_create_function (db, "XB_IsSvg", 1, SQLITE_ANY, 0, fnct_XB_IsSvg,
 			     0, 0);
     sqlite3_create_function (db, "XB_GetSchemaURI", 1, SQLITE_ANY, 0,
@@ -27585,6 +29763,8 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 			     fnct_XB_AddFileId, 0, 0);
     sqlite3_create_function (db, "XB_AddParentId", 6, SQLITE_ANY, cache,
 			     fnct_XB_AddParentId, 0, 0);
+    sqlite3_create_function (db, "XB_GetName", 1, SQLITE_ANY, 0,
+			     fnct_XB_GetName, 0, 0);
     sqlite3_create_function (db, "XB_GetTitle", 1, SQLITE_ANY, 0,
 			     fnct_XB_GetTitle, 0, 0);
     sqlite3_create_function (db, "XB_GetAbstract", 1, SQLITE_ANY, 0,
@@ -27608,34 +29788,69 @@ register_spatialite_sql_functions (void *p_db, void *p_cache)
 
 #endif /* end including LIBXML2 */
 
-#ifdef ENABLE_GEOPACKAGE
+#ifdef ENABLE_GEOPACKAGE	/* enabling GeoPackage extensions */
+
+    sqlite3_create_function (db, "AutoGPKGStart", 0, SQLITE_ANY, 0,
+			     fnct_AutoGPKGStart, 0, 0);
+    sqlite3_create_function (db, "AutoGPKGStop", 0, SQLITE_ANY, 0,
+			     fnct_AutoGPKGStop, 0, 0);
+
     /* not yet finalised geopackage raster functions, plus some convenience API */
     sqlite3_create_function (db, "gpkgCreateBaseTables", 0, SQLITE_ANY, 0,
 			     fnct_gpkgCreateBaseTables, 0, 0);
-    sqlite3_create_function (db, "gpkgCreateTilesTable", 2, SQLITE_ANY, 0,
+    sqlite3_create_function (db, "gpkgInsertEpsgSRID", 1, SQLITE_ANY, 0,
+			     fnct_gpkgInsertEpsgSRID, 0, 0);
+    sqlite3_create_function (db, "gpkgCreateTilesTable", 6, SQLITE_ANY, 0,
 			     fnct_gpkgCreateTilesTable, 0, 0);
     sqlite3_create_function (db, "gpkgCreateTilesZoomLevel", 4, SQLITE_ANY, 0,
 			     fnct_gpkgCreateTilesZoomLevel, 0, 0);
     sqlite3_create_function (db, "gpkgAddTileTriggers", 1, SQLITE_ANY, 0,
 			     fnct_gpkgAddTileTriggers, 0, 0);
-    sqlite3_create_function (db, "gpkgAddRtMetadataTriggers", 1, SQLITE_ANY,
-			     0, fnct_gpkgAddRtMetadataTriggers, 0, 0);
     sqlite3_create_function (db, "gpkgGetNormalZoom", 2, SQLITE_ANY, 0,
 			     fnct_gpkgGetNormalZoom, 0, 0);
     sqlite3_create_function (db, "gpkgGetNormalRow", 3, SQLITE_ANY, 0,
 			     fnct_gpkgGetNormalRow, 0, 0);
     sqlite3_create_function (db, "gpkgGetImageType", 1, SQLITE_ANY, 0,
 			     fnct_gpkgGetImageType, 0, 0);
-    sqlite3_create_function (db, "gpkgPointToTile", 5, SQLITE_ANY, 0,
-			     fnct_gpkgPointToTile, 0, 0);
-
-#endif /* enabling GeoPackage extensions */
+    sqlite3_create_function (db, "gpkgAddGeometryColumn", 6, SQLITE_ANY, 0,
+			     fnct_gpkgAddGeometryColumn, 0, 0);
+    sqlite3_create_function (db, "gpkgAddGeometryTriggers", 2, SQLITE_ANY, 0,
+			     fnct_gpkgAddGeometryTriggers, 0, 0);
+    sqlite3_create_function (db, "gpkgAddSpatialIndex", 2, SQLITE_ANY, 0,
+			     fnct_gpkgAddSpatialIndex, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePoint", 2, SQLITE_ANY, 0,
+			     fnct_gpkgMakePoint, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePoint", 3, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointWithSRID, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePointZ", 3, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointZ, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePointZ", 4, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointZWithSRID, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePointM", 3, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointM, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePointM", 4, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointMWithSRID, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePointZM", 4, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointZM, 0, 0);
+    sqlite3_create_function (db, "gpkgMakePointZM", 5, SQLITE_ANY, 0,
+			     fnct_gpkgMakePointZMWithSRID, 0, 0);
+    sqlite3_create_function (db, "AsGPB", 1, SQLITE_ANY, 0, fnct_ToGPB, 0, 0);
+    sqlite3_create_function (db, "GeomFromGPB", 1, SQLITE_ANY, 0,
+			     fnct_GeomFromGPB, 0, 0);
+    sqlite3_create_function (db, "IsValidGPB", 1, SQLITE_ANY, 0,
+			     fnct_IsValidGPB, 0, 0);
+    sqlite3_create_function (db, "GPKG_IsAssignable", 2, SQLITE_ANY, 0,
+			     fnct_GPKG_IsAssignable, 0, 0);
+    sqlite3_create_function (db, "CastAutomagic", 1, SQLITE_ANY, 0,
+			     fnct_CastAutomagic, 0, 0);
+
+#endif /* end enabling GeoPackage extensions */
 
     return cache;
 }
 
 SPATIALITE_PRIVATE void
-init_spatialite_virtualtables (void *p_db, void *p_cache)
+init_spatialite_virtualtables (void *p_db, const void *p_cache)
 {
     sqlite3 *db = (sqlite3 *) p_db;
 
@@ -27659,9 +29874,16 @@ init_spatialite_virtualtables (void *p_db, void *p_cache)
     mbrcache_extension_init (db);
 /* initializing the VirtualFDO  extension */
     virtualfdo_extension_init (db);
+/* initializing the VirtualBBox  extension */
+    virtualbbox_extension_init (db, p_cache);
 /* initializing the VirtualSpatialIndex  extension */
     virtual_spatialindex_extension_init (db);
 
+#ifdef ENABLE_GEOPACKAGE	/* only if GeoPackage support is enabled */
+/* initializing the VirtualFDO  extension */
+    virtualgpkg_extension_init (db);
+#endif /* end GEOPACKAGE conditional */
+
 #ifdef ENABLE_LIBXML2		/* including LIBXML2 */
 /* initializing the VirtualXPath extension */
     virtual_xpath_extension_init (db, p_cache);
@@ -27669,17 +29891,24 @@ init_spatialite_virtualtables (void *p_db, void *p_cache)
 }
 
 #ifdef LOADABLE_EXTENSION	/* loadable-extension only */
-static int
+SQLITE_EXTENSION_INIT1 static int
 init_spatialite_extension (sqlite3 * db, char **pzErrMsg,
 			   const sqlite3_api_routines * pApi)
 {
-    void *p_cache;
+    void *p_cache = spatialite_alloc_connection ();
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) p_cache;
     SQLITE_EXTENSION_INIT2 (pApi);
+
+#ifdef POSTGIS_2_1		/* initializing liblwgeom from PostGIS 2.1.x (or later) */
+    splite_lwgeom_init ();
+#endif /* end POSTGIS_2_1 */
+
 /* setting the POSIX locale for numeric */
     setlocale (LC_NUMERIC, "POSIX");
     *pzErrMsg = NULL;
 
-    p_cache = register_spatialite_sql_functions (db, NULL);
+    register_spatialite_sql_functions (db, cache);
 
     init_spatialite_virtualtables (db, p_cache);
 
@@ -27734,6 +29963,12 @@ spatialite_splash_screen (int verbose)
 
 		spatialite_i
 		    ("\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n");
+
+#ifdef ENABLE_GEOPACKAGE	/* VirtualGPKG is supported */
+		spatialite_i
+		    ("\t- 'VirtualGPKG'\t[OGC GeoPackage interoperability]\n");
+#endif
+		spatialite_i ("\t- 'VirtualBBox'\t\t[BoundingBox tables]\n");
 		spatialite_i ("\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n");
 	    }
 #ifndef OMIT_PROJ		/* PROJ.4 version */
@@ -27749,24 +29984,29 @@ spatialite_splash_screen (int verbose)
 	      spatialite_i ("LWGEOM version ......: %s\n",
 			    splite_lwgeom_version ());
 #endif /* end LWGEOM version */
+	  if (verbose)
+	      spatialite_i ("TARGET CPU ..........: %s\n",
+			    spatialite_target_cpu ());
       }
 }
 
 #ifndef LOADABLE_EXTENSION
 SPATIALITE_DECLARE void
-spatialite_init_ex (sqlite3 * db_handle, void *p_cache, int verbose)
+spatialite_init_ex (sqlite3 * db_handle, const void *p_cache, int verbose)
 {
 /* used when SQLite initializes as an ordinary lib */
     struct splite_internal_cache *cache =
 	(struct splite_internal_cache *) p_cache;
+    if (p_cache == NULL)
+      {
+	  spatialite_e
+	      ("ERROR unable to initialize the SpatiaLite extension: NULL cache !!!\n");
+	  return;
+      }
 
 /* setting the POSIX locale for numeric */
     setlocale (LC_NUMERIC, "POSIX");
 
-#ifndef OMIT_GEOS		/* initializing GEOS */
-    initGEOS (geos_warning, geos_error);
-#endif /* end GEOS  */
-
 #ifdef POSTGIS_2_1		/* initializing liblwgeom from PostGIS 2.1.x (or later) */
     splite_lwgeom_init ();
 #endif /* end POSTGIS_2_1 */
@@ -27780,49 +30020,16 @@ spatialite_init_ex (sqlite3 * db_handle, void *p_cache, int verbose)
     sqlite3_busy_timeout (db_handle, 5000);
 }
 
-static void
-free_internal_cache (struct splite_internal_cache *cache)
-{
-/* freeing an internal cache */
-    struct splite_geos_cache_item *p;
-#ifdef ENABLE_LIBXML2
-    int i;
-    struct splite_xmlSchema_cache_item *p_xmlSchema;
-#endif
-/* freeing the XML error buffers */
-    gaiaOutBufferReset (cache->xmlParsingErrors);
-    gaiaOutBufferReset (cache->xmlSchemaValidationErrors);
-    gaiaOutBufferReset (cache->xmlXPathErrors);
-    free (cache->xmlParsingErrors);
-    free (cache->xmlSchemaValidationErrors);
-    free (cache->xmlXPathErrors);
-
-/* freeing the GEOS cache */
-    p = &(cache->cacheItem1);
-    splite_free_geos_cache_item (p);
-    p = &(cache->cacheItem2);
-    splite_free_geos_cache_item (p);
-#ifdef ENABLE_LIBXML2
-    for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++)
-      {
-	  /* freeing the XmlSchema cache */
-	  p_xmlSchema = &(cache->xmlSchemaCache[i]);
-	  splite_free_xml_schema_cache_item (p_xmlSchema);
-      }
-#endif
-/* freeing the cache itself */
-    free (cache);
-}
-
 SPATIALITE_DECLARE void
-spatialite_cleanup_ex (void *ptr)
+spatialite_cleanup_ex (const void *ptr)
 {
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr;
 
-#ifndef OMIT_GEOS
-    finishGEOS ();
-    gaiaResetGeosMsg ();
-#endif
+    if (cache == NULL)
+	return;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return;
 
 #ifdef ENABLE_LWGEOM
     gaiaResetLwGeomMsg ();
@@ -27839,19 +30046,11 @@ spatialite_cleanup_ex (void *ptr)
 __attribute__ ((visibility ("default")))
 #endif
      SPATIALITE_DECLARE int
-	 sqlite3_extension_init (sqlite3 * db, char **pzErrMsg,
-				 const sqlite3_api_routines * pApi)
+	 sqlite3_modspatialite_init (sqlite3 * db, char **pzErrMsg,
+				     const sqlite3_api_routines * pApi)
 {
 /* SQLite invokes this routine once when it dynamically loads the extension. */
-
-#ifndef OMIT_GEOS		/* initializing GEOS */
-    initGEOS (geos_warning, geos_error);
-#endif /* end GEOS  */
-
-#ifdef POSTGIS_2_1		/* initializing liblwgeom from PostGIS 2.1.x (or later) */
-    splite_lwgeom_init ();
-#endif /* end POSTGIS_2_1 */
-
+    spatialite_initialize ();
     return init_spatialite_extension (db, pzErrMsg, pApi);
 }
 #endif
diff --git a/src/spatialite/spatialite_init.c b/src/spatialite/spatialite_init.c
index 56af1ca..c835b24 100644
--- a/src/spatialite/spatialite_init.c
+++ b/src/spatialite/spatialite_init.c
@@ -65,9 +65,7 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
 #include "config.h"
 #endif
 
-#define LOADABLE_EXTENSION
 #include <spatialite/sqlite.h>
-#undef LOADABLE_EXTENSION
 
 #include <spatialite/spatialite.h>
 #include <spatialite.h>
@@ -77,22 +75,21 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
 #include <geos_c.h>
 #endif
 
-SQLITE_EXTENSION_INIT1 static int
-init_spatialite_extension (sqlite3 * db, char **pzErrMsg,
-			   const sqlite3_api_routines * pApi)
+#ifndef LOADABLE_EXTENSION	/* ordinary library, not loadable-extension */
+
+static int
+init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const void *pApi)
 {
-    void *p_cache = spatialite_alloc_connection ();
-    struct splite_internal_cache *cache =
-	(struct splite_internal_cache *) p_cache;
-    SQLITE_EXTENSION_INIT2 (pApi);
+    if (pApi == NULL)
+	pApi = NULL;		/* suppressing stupid compiler warnings */
 
 /* setting the POSIX locale for numeric */
     setlocale (LC_NUMERIC, "POSIX");
     *pzErrMsg = NULL;
 
-    register_spatialite_sql_functions (db, cache);
+    register_spatialite_sql_functions (db, NULL);
 
-    init_spatialite_virtualtables (db, p_cache);
+    init_spatialite_virtualtables (db, NULL);
 
 /* setting a timeout handler */
     sqlite3_busy_timeout (db, 5000);
@@ -104,13 +101,21 @@ SPATIALITE_DECLARE void
 spatialite_init (int verbose)
 {
 /* used when SQLite initializes as an ordinary lib 
-   OBSOLETE - strongly discuraged !!!!!
+
+   OBSOLETE - strongly discouraged !!!!!
+   always using spatialite_init_ex() as a replacement
+   is warmly reccomended
 */
+    spatialite_initialize ();
 
 #ifndef OMIT_GEOS		/* initializing GEOS */
     initGEOS (geos_warning, geos_error);
 #endif /* end GEOS  */
 
+#ifdef POSTGIS_2_1		/* initializing liblwgeom from PostGIS 2.1.x (or later) */
+    splite_lwgeom_init ();
+#endif /* end POSTGIS_2_1 */
+
     sqlite3_auto_extension ((void (*)(void)) init_spatialite_extension);
     spatialite_splash_screen (verbose);
 }
@@ -118,6 +123,11 @@ spatialite_init (int verbose)
 SPATIALITE_DECLARE void
 spatialite_cleanup ()
 {
+/* OBSOLETE - strongly discouraged !!!!!
+   always using spatialite_cleanup_ex() as a replacement
+   is warmly reccomended
+*/
+
 #ifndef OMIT_GEOS
     finishGEOS ();
 #endif
@@ -128,20 +138,4 @@ spatialite_cleanup ()
 
     sqlite3_reset_auto_extension ();
 }
-
-#if !(defined _WIN32) || defined(__MINGW32__)
-/* MSVC is unable to understand this declaration */
-__attribute__ ((visibility ("default")))
 #endif
-     SPATIALITE_DECLARE int
-	 sqlite3_extension_init (sqlite3 * db, char **pzErrMsg,
-				 const sqlite3_api_routines * pApi)
-{
-/* SQLite invokes this routine once when it dynamically loads the extension. */
-
-#ifndef OMIT_GEOS		/* initializing GEOS */
-    initGEOS (geos_warning, geos_error);
-#endif /* end GEOS  */
-
-    return init_spatialite_extension (db, pzErrMsg, pApi);
-}
diff --git a/src/spatialite/statistics.c b/src/spatialite/statistics.c
index d7c821d..b579705 100644
--- a/src/spatialite/statistics.c
+++ b/src/spatialite/statistics.c
@@ -1718,10 +1718,12 @@ struct drop_params
 };
 
 static int
-do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux)
+do_drop_table (sqlite3 * sqlite, const char *prefix, const char *table,
+	       struct drop_params *aux)
 {
 /* performing the actual work */
     char *sql;
+    char *q_prefix;
     char *q_name;
     int i;
 
@@ -1729,7 +1731,11 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux)
       {
 	  /* dropping a View */
 	  q_name = gaiaDoubleQuotedSql (table);
-	  sql = sqlite3_mprintf ("DROP VIEW IF EXISTS \"%s\"", q_name);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf ("DROP VIEW IF EXISTS \"%s\".\"%s\"", q_prefix,
+			       q_name);
+	  free (q_prefix);
 	  free (q_name);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
@@ -1738,7 +1744,11 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux)
       {
 	  /* dropping a Table */
 	  q_name = gaiaDoubleQuotedSql (table);
-	  sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", q_name);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\".\"%s\"", q_prefix,
+			       q_name);
+	  free (q_prefix);
 	  free (q_name);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
@@ -1748,7 +1758,11 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux)
       {
 	  /* dropping any R*Tree */
 	  q_name = gaiaDoubleQuotedSql (*(aux->rtrees + i));
-	  sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", q_name);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\".\"%s\"", q_prefix,
+			       q_name);
+	  free (q_prefix);
 	  free (q_name);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
@@ -1757,152 +1771,206 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux)
     if (aux->ok_layer_params)
       {
 	  /* deleting from LAYER_PARAMS */
-	  sql = sqlite3_mprintf ("DELETE FROM layer_params "
-				 "WHERE lower(table_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_params "
+				 "WHERE lower(table_name) = lower(%Q)",
+				 q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_layer_sub_classes)
       {
 	  /* deleting from LAYER_SUB_CLASSES */
-	  sql = sqlite3_mprintf ("DELETE FROM layer_sub_classes "
-				 "WHERE lower(table_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_sub_classes "
+				 "WHERE lower(table_name) = lower(%Q)",
+				 q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_layer_table_layout)
       {
 	  /* deleting from LAYER_TABLE_LAYOUT */
-	  sql = sqlite3_mprintf ("DELETE FROM layer_table_layout "
-				 "WHERE lower(table_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_table_layout "
+				 "WHERE lower(table_name) = lower(%Q)",
+				 q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_geometry_columns_auth)
       {
 	  /* deleting from GEOMETRY_COLUMNS_AUTH */
-	  sql = sqlite3_mprintf ("DELETE FROM geometry_columns_auth "
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_auth "
 				 "WHERE lower(f_table_name) = lower(%Q)",
-				 table);
+				 q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_geometry_columns_field_infos)
       {
 	  /* deleting from GEOMETRY_COLUMNS_FIELD_INFOS */
-	  sql = sqlite3_mprintf ("DELETE FROM geometry_columns_fiels_infos "
-				 "WHERE lower(f_table_name) = lower(%Q)",
-				 table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf
+	      ("DELETE FROM \"%s\".geometry_columns_fiels_infos "
+	       "WHERE lower(f_table_name) = lower(%Q)", q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_geometry_columns_statistics)
       {
 	  /* deleting from GEOMETRY_COLUMNS_STATISTICS */
-	  sql = sqlite3_mprintf ("DELETE FROM geometry_columns_statistics "
-				 "WHERE lower(f_table_name) = lower(%Q)",
-				 table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_statistics "
+			       "WHERE lower(f_table_name) = lower(%Q)",
+			       q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_views_geometry_columns_auth)
       {
 	  /* deleting from VIEWS_GEOMETRY_COLUMNS_AUTH */
-	  sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns_auth "
-				 "WHERE lower(view_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns_auth "
+			       "WHERE lower(view_name) = lower(%Q)", q_prefix,
+			       table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_views_geometry_columns_field_infos)
       {
 	  /* deleting from VIEWS_GEOMETRY_COLUMNS_FIELD_INFOS */
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
 	  sql =
-	      sqlite3_mprintf ("DELETE FROM views_geometry_columns_fiels_infos "
-			       "WHERE view_name = %Q", table);
+	      sqlite3_mprintf
+	      ("DELETE FROM \"%s\".views_geometry_columns_fiels_infos "
+	       "WHERE view_name = %Q", q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_views_geometry_columns_statistics)
       {
 	  /* deleting from VIEWS_GEOMETRY_COLUMNS_STATISTICS */
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
 	  sql =
-	      sqlite3_mprintf ("DELETE FROM views_geometry_columns_statistics "
-			       "WHERE lower(view_name) = lower(%Q)", table);
+	      sqlite3_mprintf
+	      ("DELETE FROM \"%s\".views_geometry_columns_statistics "
+	       "WHERE lower(view_name) = lower(%Q)", q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_virts_geometry_columns_auth)
       {
 	  /* deleting from VIRTS_GEOMETRY_COLUMNS_AUTH */
-	  sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_auth "
-				 "WHERE lower(virt_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql =
+	      sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns_auth "
+			       "WHERE lower(virt_name) = lower(%Q)", q_prefix,
+			       table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_virts_geometry_columns_field_infos)
       {
 	  /* deleting from VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS */
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
 	  sql =
-	      sqlite3_mprintf ("DELETE FROM virts_geometry_columns_fiels_infos "
-			       "WHERE lower(virt_name) = lower(%Q)", table);
+	      sqlite3_mprintf
+	      ("DELETE FROM \"%s\".virts_geometry_columns_fiels_infos "
+	       "WHERE lower(virt_name) = lower(%Q)", q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_virts_geometry_columns_statistics)
       {
 	  /* deleting from VIRTS_GEOMETRY_COLUMNS_STATISTICS */
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
 	  sql =
-	      sqlite3_mprintf ("DELETE FROM virts_geometry_columns_statistics "
-			       "WHERE lower(virt_name) = lower(%Q)", table);
+	      sqlite3_mprintf
+	      ("DELETE FROM \"%s\".virts_geometry_columns_statistics "
+	       "WHERE lower(virt_name) = lower(%Q)", q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_layer_statistics)
       {
 	  /* deleting from LAYER_STATISTICS */
-	  sql = sqlite3_mprintf ("DELETE FROM layer_statistics "
-				 "WHERE lower(table_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_statistics "
+				 "WHERE lower(table_name) = lower(%Q)",
+				 q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_views_layer_statistics)
       {
 	  /* deleting from VIEWS_LAYER_STATISTICS */
-	  sql = sqlite3_mprintf ("DELETE FROM views_layer_statistics "
-				 "WHERE lower(view_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_layer_statistics "
+				 "WHERE lower(view_name) = lower(%Q)", q_prefix,
+				 table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_virts_layer_statistics)
       {
 	  /* deleting from VIRTS_LAYER_STATISTICS */
-	  sql = sqlite3_mprintf ("DELETE FROM virts_layer_statistics "
-				 "WHERE lower(virt_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_layer_statistics "
+				 "WHERE lower(virt_name) = lower(%Q)", q_prefix,
+				 table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_geometry_columns)
       {
 	  /* deleting from GEOMETRY_COLUMNS */
-	  sql = sqlite3_mprintf ("DELETE FROM geometry_columns "
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns "
 				 "WHERE lower(f_table_name) = lower(%Q)",
-				 table);
+				 q_prefix, table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_views_geometry_columns)
       {
 	  /* deleting from VIEWS_GEOMETRY_COLUMNS */
-	  sql = sqlite3_mprintf ("DELETE FROM views_geometry_columns "
-				 "WHERE lower(view_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns "
+				 "WHERE lower(view_name) = lower(%Q)", q_prefix,
+				 table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
     if (aux->ok_virts_geometry_columns)
       {
 	  /* deleting from VIEWS_GEOMETRY_COLUMNS */
-	  sql = sqlite3_mprintf ("DELETE FROM virts_geometry_columns "
-				 "WHERE lower(virt_name) = lower(%Q)", table);
+	  q_prefix = gaiaDoubleQuotedSql (prefix);
+	  sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns "
+				 "WHERE lower(virt_name) = lower(%Q)", q_prefix,
+				 table);
+	  free (q_prefix);
 	  sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
 	  sqlite3_free (sql);
       }
@@ -1911,7 +1979,8 @@ do_drop_table (sqlite3 * sqlite, const char *table, struct drop_params *aux)
 }
 
 static int
-do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux)
+do_drop_sub_view (sqlite3 * sqlite, const char *prefix, const char *table,
+		  struct drop_params *aux)
 {
 /* dropping any depending View */
     int ret;
@@ -1920,6 +1989,7 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux)
     int rows;
     int columns;
     char *sql;
+    char *q_prefix;
     struct drop_params aux2;
 
 /* initializing the aux params */
@@ -1954,8 +2024,12 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux)
 	return 1;
 
 /* identifying any View depending on the target */
-    sql = sqlite3_mprintf ("SELECT view_name FROM views_geometry_columns "
-			   "WHERE Lower(f_table_name) = Lower(%Q)", table);
+    q_prefix = gaiaDoubleQuotedSql (prefix);
+    sql =
+	sqlite3_mprintf ("SELECT view_name FROM \"%s\".views_geometry_columns "
+			 "WHERE Lower(f_table_name) = Lower(%Q)", q_prefix,
+			 table);
+    free (q_prefix);
     ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
     sqlite3_free (sql);
     if (ret != SQLITE_OK)
@@ -1968,7 +2042,7 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux)
 	    {
 		const char *name = results[(i * columns) + 0];
 		/* dropping the view itself */
-		if (!do_drop_table (sqlite, name, &aux2))
+		if (!do_drop_table (sqlite, prefix, name, &aux2))
 		    return 0;
 	    }
       }
@@ -1977,7 +2051,8 @@ do_drop_sub_view (sqlite3 * sqlite, const char *table, struct drop_params *aux)
 }
 
 static int
-check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux)
+check_drop_layout (sqlite3 * sqlite, const char *prefix, const char *table,
+		   struct drop_params *aux)
 {
 /* checking the actual DB configuration */
     int i;
@@ -1986,9 +2061,16 @@ check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux)
     int columns;
     char jolly = '%';
     char *x_name;
-    char *sql =
-	"SELECT type, name FROM sqlite_master WHERE type = 'table' or type = 'view'";
-    int ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    int ret;
+    char *sql;
+    char *q_prefix = gaiaDoubleQuotedSql (prefix);
+    sql =
+	sqlite3_mprintf
+	("SELECT type, name FROM \"%s\".sqlite_master WHERE type = 'table' or type = 'view'",
+	 q_prefix);
+    free (q_prefix);
+    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
 	return 0;
     if (rows < 1)
@@ -2060,11 +2142,14 @@ check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux)
 	return 0;
 
 /* identifying any possible R*Tree supporting the main target */
+    q_prefix = gaiaDoubleQuotedSql (prefix);
     x_name = sqlite3_mprintf ("idx_%s_%c", table, jolly);
     sql =
-	sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' "
-			 "AND name LIKE(%Q) AND sql LIKE('%cvirtual%c') AND sql LIKE('%crtree%c')",
-			 x_name, jolly, jolly, jolly, jolly);
+	sqlite3_mprintf
+	("SELECT name FROM \"%s\".sqlite_master WHERE type = 'table' "
+	 "AND name LIKE(%Q) AND sql LIKE('%cvirtual%c') AND sql LIKE('%crtree%c')",
+	 q_prefix, x_name, jolly, jolly, jolly, jolly);
+    free (q_prefix);
     sqlite3_free (x_name);
     ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL);
     sqlite3_free (sql);
@@ -2092,6 +2177,12 @@ check_drop_layout (sqlite3 * sqlite, const char *table, struct drop_params *aux)
 SPATIALITE_DECLARE int
 gaiaDropTable (sqlite3 * sqlite, const char *table)
 {
+    return gaiaDropTableEx (sqlite, "main", table);
+}
+
+SPATIALITE_DECLARE int
+gaiaDropTableEx (sqlite3 * sqlite, const char *prefix, const char *table)
+{
 /* dropping a Spatial Table and any other related stuff */
     int ret;
     struct drop_params aux;
@@ -2118,6 +2209,8 @@ gaiaDropTable (sqlite3 * sqlite, const char *table)
     aux.ok_layer_params = 0;
     aux.ok_layer_sub_classes = 0;
     aux.ok_layer_table_layout = 0;
+    if (prefix == NULL)
+	return 0;
     if (table == NULL)
 	return 0;
 /* the whole operation is a single transaction */
@@ -2125,12 +2218,12 @@ gaiaDropTable (sqlite3 * sqlite, const char *table)
     if (ret != SQLITE_OK)
 	return 0;
 /* checking the actual DB configuration */
-    if (!check_drop_layout (sqlite, table, &aux))
+    if (!check_drop_layout (sqlite, prefix, table, &aux))
 	goto rollback;
 /* recursively dropping any depending View */
-    if (!do_drop_sub_view (sqlite, table, &aux))
+    if (!do_drop_sub_view (sqlite, prefix, table, &aux))
 	goto rollback;
-    if (!do_drop_table (sqlite, table, &aux))
+    if (!do_drop_table (sqlite, prefix, table, &aux))
 	goto rollback;
 /* committing the still pending transaction */
     ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL);
diff --git a/src/spatialite/virtualXL.c b/src/spatialite/virtualXL.c
index f2cb7be..a8c443b 100644
--- a/src/spatialite/virtualXL.c
+++ b/src/spatialite/virtualXL.c
@@ -900,8 +900,8 @@ vXL_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualXLInit (sqlite3 * db)
+static int
+spliteVirtualXLInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
     my_XL_module.iVersion = 1;
@@ -927,10 +927,11 @@ sqlite3VirtualXLInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtualXL_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtualXL_extension_init (void *xdb)
 {
-    return sqlite3VirtualXLInit (db);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualXLInit (db);
 }
 
 #endif /* FreeXL enabled/disabled */
diff --git a/src/spatialite/virtualbbox.c b/src/spatialite/virtualbbox.c
new file mode 100644
index 0000000..e31e440
--- /dev/null
+++ b/src/spatialite/virtualbbox.c
@@ -0,0 +1,984 @@
+/*
+
+ virtualbbox.c -- SQLite3 extension [VIRTUAL TABLE accessing BoundingBox tables]
+
+ version 4.1, 2013 July 15
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2008-2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#include "config-msvc.h"
+#else
+#include "config.h"
+#endif
+
+#include <spatialite/sqlite.h>
+#include <spatialite/debug.h>
+
+#include <spatialite/spatialite.h>
+#include <spatialite/gaiaaux.h>
+#include <spatialite/gaiageo.h>
+
+#ifdef _WIN32
+#define strcasecmp	_stricmp
+#define strncasecmp	_strnicmp
+#endif /* not WIN32 */
+
+/* 64 bit integer: portable format for printf() */
+#if defined(_WIN32) && !defined(__MINGW32__)
+#define FRMT64 "%I64d"
+#else
+#define FRMT64 "%lld"
+#endif
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#define LONG64_MAX	_I64_MAX
+#define LONG64_MIN	_I64_MIN
+#else
+#define LONG64_MAX	9223372036854775807LL
+#define LONG64_MIN	(-LONG64_MAX + 1)
+#endif
+
+static struct sqlite3_module my_bbox_module;
+
+typedef struct SqliteValue
+{
+/* a multitype storing a column value */
+    int Type;
+    sqlite3_int64 IntValue;
+    double DoubleValue;
+    char *Text;
+    unsigned char *Blob;
+    int Size;
+} SqliteValue;
+typedef SqliteValue *SqliteValuePtr;
+
+typedef struct VirtualBBoxStruct
+{
+/* extends the sqlite3_vtab struct */
+    const sqlite3_module *pModule;	/* ptr to sqlite module: USED INTERNALLY BY SQLITE */
+    int nRef;			/* # references: USED INTERNALLY BY SQLITE */
+    char *zErrMsg;		/* error message: USE INTERNALLY BY SQLITE */
+    sqlite3 *db;		/* the sqlite db holding the virtual table */
+    char *table;		/* the real-table name */
+    int nColumns;		/* the # columns into the table */
+    char **Column;		/* the name for each column */
+    char **Type;		/* the type for each column */
+    char *Visible;		/* true / false */
+    SqliteValuePtr *Value;	/* the current-row value for each column */
+    const void *p_cache;	/* pointer to the internal cache */
+    int Srid;			/* the SRID for each Geometry column */
+    char *ColSrid;		/* the column containing a SRID definition */
+    int ForceWGS84;		/* always force WGS84 long-lat */
+    char *MinX;			/* name of the MinX input column */
+    char *MinY;			/* name of the MinY input column */
+    char *MaxX;			/* name of the MaxX input column */
+    char *MaxY;			/* name of the MaxY input column */
+    gaiaGeomCollPtr BBoxGeom;	/* current BBOX geometry */
+} VirtualBBox;
+typedef VirtualBBox *VirtualBBoxPtr;
+
+typedef struct VirtualBBoxCursorStruct
+{
+/* extends the sqlite3_vtab_cursor struct */
+    VirtualBBoxPtr pVtab;	/* Virtual table of this cursor */
+    sqlite3_stmt *stmt;
+    sqlite3_int64 current_row;	/* the current row ID */
+    int eof;			/* the EOF marker */
+} VirtualBBoxCursor;
+typedef VirtualBBoxCursor *VirtualBBoxCursorPtr;
+
+static SqliteValuePtr
+value_alloc (void)
+{
+/* allocates and initialites a Value multitype */
+    SqliteValuePtr p = malloc (sizeof (SqliteValue));
+    p->Type = SQLITE_NULL;
+    p->Text = NULL;
+    p->Blob = NULL;
+    return p;
+}
+
+static void
+value_free (SqliteValuePtr p)
+{
+/* freeing a Value multitype */
+    if (!p)
+	return;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    free (p);
+}
+
+static void
+value_set_null (SqliteValuePtr p)
+{
+/* setting a NULL value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_NULL;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = NULL;
+}
+
+static void
+value_set_int (SqliteValuePtr p, sqlite3_int64 value)
+{
+/* setting an INT value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_INTEGER;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = NULL;
+    p->IntValue = value;
+}
+
+static void
+value_set_double (SqliteValuePtr p, double value)
+{
+/* setting a DOUBLE value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_FLOAT;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = NULL;
+    p->DoubleValue = value;
+}
+
+static void
+value_set_text (SqliteValuePtr p, const char *value, int size)
+{
+/* setting a TEXT value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_TEXT;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Blob = NULL;
+    p->Text = malloc (size);
+    memcpy (p->Text, value, size);
+    p->Size = size;
+}
+
+static void
+value_set_blob (SqliteValuePtr p, const unsigned char *value, int size)
+{
+/* setting a BLOB value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_BLOB;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = malloc (size);
+    memcpy (p->Blob, value, size);
+    p->Size = size;
+}
+
+static void
+free_table (VirtualBBoxPtr p_vt)
+{
+/* memory cleanup; freeing the virtual table struct */
+    int i;
+    if (!p_vt)
+	return;
+    if (p_vt->table)
+	sqlite3_free (p_vt->table);
+    if (p_vt->Column)
+      {
+	  for (i = 0; i < p_vt->nColumns; i++)
+	    {
+		if (*(p_vt->Column + i))
+		    sqlite3_free (*(p_vt->Column + i));
+	    }
+	  sqlite3_free (p_vt->Column);
+      }
+    if (p_vt->Type)
+      {
+	  for (i = 0; i < p_vt->nColumns; i++)
+	    {
+		if (*(p_vt->Type + i))
+		    sqlite3_free (*(p_vt->Type + i));
+	    }
+	  sqlite3_free (p_vt->Type);
+      }
+    if (p_vt->Visible)
+	sqlite3_free (p_vt->Visible);
+    if (p_vt->Value)
+      {
+	  for (i = 0; i < p_vt->nColumns; i++)
+	    {
+		if (*(p_vt->Value + i))
+		    value_free (*(p_vt->Value + i));
+	    }
+	  sqlite3_free (p_vt->Value);
+      }
+    if (p_vt->MinX)
+	sqlite3_free (p_vt->MinX);
+    if (p_vt->MinY)
+	sqlite3_free (p_vt->MinY);
+    if (p_vt->MaxX)
+	sqlite3_free (p_vt->MaxX);
+    if (p_vt->MaxY)
+	sqlite3_free (p_vt->MaxY);
+    if (p_vt->ColSrid)
+	sqlite3_free (p_vt->ColSrid);
+    if (p_vt->BBoxGeom)
+	gaiaFreeGeomColl (p_vt->BBoxGeom);
+    sqlite3_free (p_vt);
+}
+
+static void
+vbbox_read_row (VirtualBBoxCursorPtr cursor)
+{
+/* trying to read a row from the BoundingBox real-table */
+    struct splite_internal_cache *cache =
+	(struct splite_internal_cache *) cursor->pVtab->p_cache;
+    sqlite3_stmt *stmt;
+    int ret;
+    int ic;
+    int icx;
+    const char *text;
+    const unsigned char *blob;
+    int size;
+    sqlite3_int64 pk;
+    double minx;
+    double miny;
+    double maxx;
+    double maxy;
+    int srid;
+    char ok_minx = 'N';
+    char ok_miny = 'N';
+    char ok_maxx = 'N';
+    char ok_maxy = 'N';
+    char ok_srid = 'N';
+    stmt = cursor->stmt;
+    sqlite3_bind_int64 (stmt, 1, cursor->current_row);
+    ret = sqlite3_step (stmt);
+    if (ret == SQLITE_ROW)
+      {
+	  pk = sqlite3_column_int64 (stmt, 0);
+	  if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT)
+	    {
+		minx = sqlite3_column_double (stmt, 1);
+		ok_minx = 'Y';
+	    }
+	  if (sqlite3_column_type (stmt, 2) == SQLITE_FLOAT)
+	    {
+		miny = sqlite3_column_double (stmt, 2);
+		ok_miny = 'Y';
+	    }
+	  if (sqlite3_column_type (stmt, 3) == SQLITE_FLOAT)
+	    {
+		maxx = sqlite3_column_double (stmt, 3);
+		ok_maxx = 'Y';
+	    }
+	  if (sqlite3_column_type (stmt, 4) == SQLITE_FLOAT)
+	    {
+		maxy = sqlite3_column_double (stmt, 4);
+		ok_maxy = 'Y';
+	    }
+	  if (sqlite3_column_type (stmt, 5) == SQLITE_INTEGER)
+	    {
+		srid = sqlite3_column_int (stmt, 5);
+		ok_srid = 'Y';
+	    }
+	  if (cursor->pVtab->BBoxGeom)
+	      gaiaFreeGeomColl (cursor->pVtab->BBoxGeom);
+	  cursor->pVtab->BBoxGeom = NULL;
+	  if (ok_minx == 'Y' && ok_miny == 'Y' && ok_maxx == 'Y'
+	      && ok_maxy == 'Y')
+	    {
+		gaiaGeomCollPtr geom = gaiaAllocGeomColl ();
+		gaiaPolygonPtr pg = gaiaAddPolygonToGeomColl (geom, 5, 0);
+		gaiaRingPtr rng = pg->Exterior;
+		gaiaSetPoint (rng->Coords, 0, minx, miny);
+		gaiaSetPoint (rng->Coords, 1, maxx, miny);
+		gaiaSetPoint (rng->Coords, 2, maxx, maxy);
+		gaiaSetPoint (rng->Coords, 3, minx, maxy);
+		gaiaSetPoint (rng->Coords, 4, minx, miny);
+		if (ok_srid == 'Y')
+		  {
+		      if (cursor->pVtab->ForceWGS84)
+			{
+			    /* converting to WGS84 long-lat */
+			    gaiaGeomCollPtr geom2 = NULL;
+			    char *proj_from = NULL;
+			    char *proj_to = NULL;
+			    geom->Srid = srid;
+			    getProjParams (cursor->pVtab->db, srid, &proj_from);
+			    getProjParams (cursor->pVtab->db, 4326, &proj_to);
+			    if (proj_to == NULL || proj_from == NULL)
+				geom2 = NULL;
+			    else
+#ifndef OMIT_PROJ		/* including PROJ.4 */
+			    if (cache != NULL)
+				geom2 =
+				    gaiaTransform_r (cache, geom, proj_from,
+						     proj_to);
+			    else
+				geom2 =
+				    gaiaTransform (geom, proj_from, proj_to);
+#endif /* end including PROJ.4 */
+			    geom2 = NULL;
+			    if (geom2 != NULL)
+				geom2->Srid = 4326;
+			    cursor->pVtab->BBoxGeom = geom2;
+			    gaiaFreeGeomColl (geom);
+			    if (proj_from)
+				free (proj_from);
+			    if (proj_to)
+				free (proj_to);
+			}
+		      else
+			{
+			    geom->Srid = srid;
+			    cursor->pVtab->BBoxGeom = geom;
+			}
+		  }
+		else
+		  {
+		      geom->Srid = cursor->pVtab->Srid;
+		      cursor->pVtab->BBoxGeom = geom;
+		  }
+	    }
+	  icx = 5;
+	  for (ic = 0; ic < cursor->pVtab->nColumns; ic++)
+	    {
+		if (*(cursor->pVtab->Visible + ic) != 'Y')
+		    continue;
+		icx++;
+		switch (sqlite3_column_type (stmt, icx))
+		  {
+		  case SQLITE_INTEGER:
+		      value_set_int (*(cursor->pVtab->Value + ic),
+				     sqlite3_column_int64 (stmt, icx));
+		      break;
+		  case SQLITE_FLOAT:
+		      value_set_double (*(cursor->pVtab->Value + ic),
+					sqlite3_column_double (stmt, icx));
+		      break;
+		  case SQLITE_TEXT:
+		      text = (char *) sqlite3_column_text (stmt, icx);
+		      size = sqlite3_column_bytes (stmt, icx);
+		      value_set_text (*(cursor->pVtab->Value + ic), text, size);
+		      break;
+		  case SQLITE_BLOB:
+		      blob = sqlite3_column_blob (stmt, icx);
+		      size = sqlite3_column_bytes (stmt, icx);
+		      value_set_blob (*(cursor->pVtab->Value + ic), blob, size);
+		      break;
+		  case SQLITE_NULL:
+		  default:
+		      value_set_null (*(cursor->pVtab->Value + ic));
+		      break;
+		  };
+	    }
+      }
+    else
+      {
+	  /* an error occurred */
+	  cursor->eof = 1;
+	  return;
+      }
+    cursor->eof = 0;
+    cursor->current_row = pk;
+}
+
+static int
+vbbox_create (sqlite3 * db, void *pAux, int argc, const char *const *argv,
+	      sqlite3_vtab ** ppVTab, char **pzErr)
+{
+/* creates the virtual table connected to some BoundingBox table */
+    char *vtable = NULL;
+    char *table = NULL;
+    char *col_minx = NULL;
+    char *col_miny = NULL;
+    char *col_maxx = NULL;
+    char *col_maxy = NULL;
+    char *col_srid = NULL;
+    char *x_force_wgs84 = NULL;
+    int ret;
+    int i;
+    int i2;
+    int len;
+    int n_rows;
+    int n_columns;
+    const char *col_name;
+    const char *col_type;
+    int force_wgs84;
+    char **results;
+    char *sql;
+    char *xname;
+    gaiaOutBuffer sql_statement;
+    VirtualBBoxPtr p_vt = NULL;
+    if (pAux)
+	pAux = pAux;		/* unused arg warning suppression */
+    gaiaOutBufferInitialize (&sql_statement);
+/* checking for table_name */
+    if (argc >= 10)
+      {
+	  vtable = gaiaDequotedSql ((char *) argv[2]);
+	  table = gaiaDequotedSql ((char *) argv[3]);
+	  col_minx = gaiaDequotedSql ((char *) argv[4]);
+	  col_miny = gaiaDequotedSql ((char *) argv[5]);
+	  col_maxx = gaiaDequotedSql ((char *) argv[6]);
+	  col_maxy = gaiaDequotedSql ((char *) argv[7]);
+	  col_srid = gaiaDequotedSql ((char *) argv[8]);
+	  x_force_wgs84 = gaiaDequotedSql ((char *) argv[9]);
+      }
+    else
+      {
+	  *pzErr =
+	      sqlite3_mprintf
+	      ("[VirtualBBox module] CREATE VIRTUAL: illegal arg list {table_name, col_minx, col_miny, col_maxx, col_maxy, srid, longlat=1|0, columns}\n");
+	  goto error;
+      }
+    if (strcmp (x_force_wgs84, "0") == 0)
+	force_wgs84 = 0;
+    else if (strcmp (x_force_wgs84, "1") == 0)
+	force_wgs84 = 1;
+    else
+      {
+	  *pzErr =
+	      sqlite3_mprintf
+	      ("[VirtualBBox module] CREATE VIRTUAL: illegal arg list {table_name, col_minx, col_miny, col_maxx, col_maxy, srid, longlat=1|0, columns}\n");
+	  goto error;
+      }
+/* retrieving the base table columns */
+    xname = gaiaDoubleQuotedSql (table);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname);
+    free (xname);
+    ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	goto illegal;
+    if (n_rows >= 1)
+      {
+	  p_vt = (VirtualBBoxPtr) sqlite3_malloc (sizeof (VirtualBBox));
+	  if (!p_vt)
+	      return SQLITE_NOMEM;
+	  p_vt->db = db;
+	  p_vt->p_cache = pAux;
+	  p_vt->nRef = 0;
+	  p_vt->zErrMsg = NULL;
+	  len = strlen (table);
+	  p_vt->table = sqlite3_malloc (len + 1);
+	  strcpy (p_vt->table, table);
+	  p_vt->nColumns = n_rows;
+	  p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows);
+	  p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows);
+	  p_vt->Visible = sqlite3_malloc (sizeof (char *) * n_rows);
+	  memset (p_vt->Visible, 'N', n_rows);
+	  p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows);
+	  p_vt->Srid = atoi (col_srid);
+	  p_vt->ForceWGS84 = force_wgs84;
+#ifndef OMIT_PROJ		/* including PROJ.4 */
+	  if (p_vt->ForceWGS84)
+	      spatialite_e
+		  ("VirtualBBOX WARNING - WGS84 is requested, but PROJ4 support is currently disabled\n");
+#endif /* end including PROJ.4 */
+	  p_vt->ColSrid = NULL;
+	  p_vt->MinX = NULL;
+	  p_vt->MinY = NULL;
+	  p_vt->MaxX = NULL;
+	  p_vt->MaxY = NULL;
+	  p_vt->BBoxGeom = NULL;
+	  for (i = 0; i < n_rows; i++)
+	    {
+		*(p_vt->Column + i) = NULL;
+		*(p_vt->Type + i) = NULL;
+		*(p_vt->Value + i) = value_alloc ();
+	    }
+	  for (i = 1; i <= n_rows; i++)
+	    {
+		col_name = results[(i * n_columns) + 1];
+		col_type = results[(i * n_columns) + 2];
+		len = strlen (col_name);
+		if (strcasecmp (col_name, col_minx) == 0)
+		  {
+		      p_vt->MinX = sqlite3_malloc (len + 1);
+		      strcpy (p_vt->MinX, col_name);
+		  }
+		if (strcasecmp (col_name, col_miny) == 0)
+		  {
+		      p_vt->MinY = sqlite3_malloc (len + 1);
+		      strcpy (p_vt->MinY, col_name);
+		  }
+		if (strcasecmp (col_name, col_maxx) == 0)
+		  {
+		      p_vt->MaxX = sqlite3_malloc (len + 1);
+		      strcpy (p_vt->MaxX, col_name);
+		  }
+		if (strcasecmp (col_name, col_maxy) == 0)
+		  {
+		      p_vt->MaxY = sqlite3_malloc (len + 1);
+		      strcpy (p_vt->MaxY, col_name);
+		  }
+		if (strcasecmp (col_name, col_srid) == 0)
+		  {
+		      p_vt->ColSrid = sqlite3_malloc (len + 1);
+		      strcpy (p_vt->ColSrid, col_name);
+		  }
+		*(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1);
+		strcpy (*(p_vt->Column + (i - 1)), col_name);
+		len = strlen (col_type);
+		*(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1);
+		strcpy (*(p_vt->Type + (i - 1)), col_type);
+		for (i2 = 10; i2 < argc; i2++)
+		  {
+		      char *extra_col = gaiaDequotedSql ((char *) argv[i2]);
+		      if (strcasecmp (extra_col, col_name) == 0)
+			  *(p_vt->Visible + (i - 1)) = 'Y';
+		      free (extra_col);
+		  }
+	    }
+	  sqlite3_free_table (results);
+      }
+    else
+      {
+	  sqlite3_free_table (results);
+	  goto illegal;
+      }
+    if (p_vt->MinX == NULL || p_vt->MinY == NULL || p_vt->MaxX == NULL
+	|| p_vt->MaxY == NULL)
+	goto illegal;
+/* preparing the COLUMNs for this VIRTUAL TABLE */
+    xname = gaiaDoubleQuotedSql (vtable);
+    sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Geometry Polygon", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    for (i = 0; i < p_vt->nColumns; i++)
+      {
+	  if (*(p_vt->Visible + i) != 'Y')
+	      continue;
+	  xname = gaiaDoubleQuotedSql (*(p_vt->Column + i));
+	  sql = sqlite3_mprintf (", \"%s\" %s", xname, *(p_vt->Type + i));
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    gaiaAppendToOutBuffer (&sql_statement, ")");
+    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
+      {
+	  if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK)
+	    {
+		*pzErr =
+		    sqlite3_mprintf
+		    ("[VirtualBBox module] CREATE VIRTUAL: invalid SQL statement \"%s\"",
+		     sql);
+		goto error;
+	    }
+	  gaiaOutBufferReset (&sql_statement);
+      }
+    else
+	goto error;
+    *ppVTab = (sqlite3_vtab *) p_vt;
+    free (vtable);
+    free (table);
+    free (col_minx);
+    free (col_miny);
+    free (col_maxx);
+    free (col_maxy);
+    free (col_srid);
+    free (x_force_wgs84);
+    return SQLITE_OK;
+  illegal:
+/* something is going the wrong way */
+    gaiaOutBufferReset (&sql_statement);
+    if (p_vt)
+	free_table (p_vt);
+    *pzErr =
+	sqlite3_mprintf
+	("[VirtualBBox module] '%s' isn't a valid BoundingBox table\n", table);
+  error:
+    if (vtable)
+	free (vtable);
+    if (table)
+	free (table);
+    if (col_minx)
+	free (col_minx);
+    if (col_miny)
+	free (col_miny);
+    if (col_maxx)
+	free (col_maxx);
+    if (col_maxy)
+	free (col_maxy);
+    if (col_srid)
+	free (col_srid);
+    if (x_force_wgs84)
+	free (x_force_wgs84);
+    gaiaOutBufferReset (&sql_statement);
+    return SQLITE_ERROR;
+}
+
+static int
+vbbox_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv,
+	       sqlite3_vtab ** ppVTab, char **pzErr)
+{
+/* connects the virtual table to some shapefile - simply aliases vbbox_create() */
+    return vbbox_create (db, pAux, argc, argv, ppVTab, pzErr);
+}
+
+static int
+vbbox_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex)
+{
+/* best index selection */
+    if (pVTab || pIndex)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vbbox_disconnect (sqlite3_vtab * pVTab)
+{
+/* disconnects the virtual table */
+    VirtualBBoxPtr p_vt = (VirtualBBoxPtr) pVTab;
+    free_table (p_vt);
+    return SQLITE_OK;
+}
+
+static int
+vbbox_destroy (sqlite3_vtab * pVTab)
+{
+/* destroys the virtual table - simply aliases vbbox_disconnect() */
+    return vbbox_disconnect (pVTab);
+}
+
+static int
+vbbox_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor)
+{
+/* opening a new cursor */
+    sqlite3_stmt *stmt;
+    gaiaOutBuffer sql_statement;
+    int ret;
+    char *sql;
+    int ic;
+    char *xname;
+    VirtualBBoxCursorPtr cursor =
+	(VirtualBBoxCursorPtr) sqlite3_malloc (sizeof (VirtualBBoxCursor));
+    if (cursor == NULL)
+	return SQLITE_ERROR;
+    cursor->pVtab = (VirtualBBoxPtr) pVTab;
+    gaiaOutBufferInitialize (&sql_statement);
+    gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID");
+    xname = gaiaDoubleQuotedSql (cursor->pVtab->MinX);
+    sql = sqlite3_mprintf (",\"%s\"", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    xname = gaiaDoubleQuotedSql (cursor->pVtab->MinY);
+    sql = sqlite3_mprintf (",\"%s\"", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    xname = gaiaDoubleQuotedSql (cursor->pVtab->MaxX);
+    sql = sqlite3_mprintf (",\"%s\"", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    xname = gaiaDoubleQuotedSql (cursor->pVtab->MaxY);
+    sql = sqlite3_mprintf (",\"%s\"", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    if (cursor->pVtab->ColSrid == NULL)
+	gaiaAppendToOutBuffer (&sql_statement, ",NULL");
+    else
+      {
+	  xname = gaiaDoubleQuotedSql (cursor->pVtab->ColSrid);
+	  sql = sqlite3_mprintf (",\"%s\"", xname);
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    for (ic = 0; ic < cursor->pVtab->nColumns; ic++)
+      {
+	  value_set_null (*(cursor->pVtab->Value + ic));
+	  if (*(cursor->pVtab->Visible + ic) != 'Y')
+	      continue;
+	  xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic));
+	  sql = sqlite3_mprintf (",\"%s\"", xname);
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    xname = gaiaDoubleQuotedSql (cursor->pVtab->table);
+    sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
+	ret =
+	    sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer,
+				strlen (sql_statement.Buffer), &stmt, NULL);
+    else
+	ret = SQLITE_ERROR;
+    gaiaOutBufferReset (&sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  /* an error occurred */
+	  cursor->eof = 1;
+	  return SQLITE_ERROR;
+      }
+    cursor->stmt = stmt;
+    cursor->current_row = LONG64_MIN;
+    cursor->eof = 0;
+    *ppCursor = (sqlite3_vtab_cursor *) cursor;
+    vbbox_read_row (cursor);
+    return SQLITE_OK;
+}
+
+static int
+vbbox_close (sqlite3_vtab_cursor * pCursor)
+{
+/* closing the cursor */
+    int ic;
+    VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor;
+    for (ic = 0; ic < cursor->pVtab->nColumns; ic++)
+	value_set_null (*(cursor->pVtab->Value + ic));
+    if (cursor->stmt)
+	sqlite3_finalize (cursor->stmt);
+    sqlite3_free (pCursor);
+    return SQLITE_OK;
+}
+
+static int
+vbbox_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr,
+	      int argc, sqlite3_value ** argv)
+{
+/* setting up a cursor filter */
+    if (pCursor || idxNum || idxStr || argc || argv)
+	pCursor = pCursor;	/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vbbox_next (sqlite3_vtab_cursor * pCursor)
+{
+/* fetching next row from cursor */
+    VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor;
+    (cursor->current_row)++;
+    vbbox_read_row (cursor);
+    return SQLITE_OK;
+}
+
+static int
+vbbox_eof (sqlite3_vtab_cursor * pCursor)
+{
+/* cursor EOF */
+    VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor;
+    return cursor->eof;
+}
+
+static int
+vbbox_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext,
+	      int column)
+{
+/* fetching value for the Nth column */
+    VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor;
+    SqliteValuePtr value;
+    int icol = 0;
+    int icol_ok = 0;
+    if (column == 0)
+      {
+	  /* the BBox Geometry */
+	  if (cursor->pVtab->BBoxGeom == NULL)
+	      sqlite3_result_null (pContext);
+	  else
+	    {
+		unsigned char *blob;
+		int size;
+		gaiaToSpatiaLiteBlobWkb (cursor->pVtab->BBoxGeom, &blob, &size);
+		sqlite3_result_blob (pContext, blob, size, free);
+	    }
+	  return SQLITE_OK;
+      }
+    while (icol < cursor->pVtab->nColumns)
+      {
+	  if (*(cursor->pVtab->Visible + icol) != 'Y')
+	    {
+		icol++;
+		continue;
+	    }
+	  icol_ok++;
+	  if (icol_ok == column)
+	    {
+		value = *(cursor->pVtab->Value + icol);
+		switch (value->Type)
+		  {
+		  case SQLITE_INTEGER:
+		      sqlite3_result_int64 (pContext, value->IntValue);
+		      break;
+		  case SQLITE_FLOAT:
+		      sqlite3_result_double (pContext, value->DoubleValue);
+		      break;
+		  case SQLITE_TEXT:
+		      sqlite3_result_text (pContext, value->Text, value->Size,
+					   SQLITE_STATIC);
+		      break;
+		  case SQLITE_BLOB:
+		      sqlite3_result_blob (pContext, value->Blob, value->Size,
+					   SQLITE_STATIC);
+		      break;
+		  default:
+		      sqlite3_result_null (pContext);
+		      break;
+		  };
+		return SQLITE_OK;
+	    }
+	  icol++;
+      }
+    sqlite3_result_null (pContext);
+    return SQLITE_OK;
+}
+
+static int
+vbbox_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid)
+{
+/* fetching the ROWID */
+    VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor;
+    *pRowid = cursor->current_row;
+    return SQLITE_OK;
+}
+
+static int
+vbbox_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv,
+	      sqlite_int64 * pRowid)
+{
+/* generic update [INSERT / UPDATE / DELETE */
+    if (pVTab || argc || argv || pRowid)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_READONLY;
+}
+
+static int
+vbbox_begin (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vbbox_sync (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vbbox_commit (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vbbox_rollback (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+spliteVirtualBBoxInit (sqlite3 * db, void *p_cache)
+{
+    int rc = SQLITE_OK;
+    my_bbox_module.iVersion = 1;
+    my_bbox_module.xCreate = &vbbox_create;
+    my_bbox_module.xConnect = &vbbox_connect;
+    my_bbox_module.xBestIndex = &vbbox_best_index;
+    my_bbox_module.xDisconnect = &vbbox_disconnect;
+    my_bbox_module.xDestroy = &vbbox_destroy;
+    my_bbox_module.xOpen = &vbbox_open;
+    my_bbox_module.xClose = &vbbox_close;
+    my_bbox_module.xFilter = &vbbox_filter;
+    my_bbox_module.xNext = &vbbox_next;
+    my_bbox_module.xEof = &vbbox_eof;
+    my_bbox_module.xColumn = &vbbox_column;
+    my_bbox_module.xRowid = &vbbox_rowid;
+    my_bbox_module.xUpdate = &vbbox_update;
+    my_bbox_module.xBegin = &vbbox_begin;
+    my_bbox_module.xSync = &vbbox_sync;
+    my_bbox_module.xCommit = &vbbox_commit;
+    my_bbox_module.xRollback = &vbbox_rollback;
+    my_bbox_module.xFindFunction = NULL;
+    sqlite3_create_module_v2 (db, "VirtualBBox", &my_bbox_module, p_cache, 0);
+    return rc;
+}
+
+SPATIALITE_PRIVATE int
+virtualbbox_extension_init (void *xdb, const void *p_cache)
+{
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualBBoxInit (db, (void *) p_cache);
+}
diff --git a/src/spatialite/virtualdbf.c b/src/spatialite/virtualdbf.c
index 5b3d14c..af421b5 100644
--- a/src/spatialite/virtualdbf.c
+++ b/src/spatialite/virtualdbf.c
@@ -870,8 +870,8 @@ vdbf_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualDbfInit (sqlite3 * db)
+static int
+spliteVirtualDbfInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
     my_dbf_module.iVersion = 1;
@@ -897,10 +897,11 @@ sqlite3VirtualDbfInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtualdbf_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtualdbf_extension_init (void *xdb)
 {
-    return sqlite3VirtualDbfInit (db);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualDbfInit (db);
 }
 
 #endif /* ICONV enabled/disabled */
diff --git a/src/spatialite/virtualfdo.c b/src/spatialite/virtualfdo.c
index 0bde455..d522eff 100644
--- a/src/spatialite/virtualfdo.c
+++ b/src/spatialite/virtualfdo.c
@@ -955,8 +955,7 @@ vfdo_insert_row (VirtualFDOPtr p_vt, sqlite3_int64 * rowid, int argc,
 					  {
 					      sqlite3_bind_text (stmt, i - 1,
 								 out_buf.Buffer,
-								 out_buf.
-								 WriteOffset,
+								 out_buf.WriteOffset,
 								 free);
 					      out_buf.Buffer = NULL;
 					      gaiaOutBufferReset (&out_buf);
@@ -1190,8 +1189,7 @@ vfdo_update_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid, int argc,
 					  {
 					      sqlite3_bind_text (stmt, i - 1,
 								 out_buf.Buffer,
-								 out_buf.
-								 WriteOffset,
+								 out_buf.WriteOffset,
 								 free);
 					      out_buf.Buffer = NULL;
 					      gaiaOutBufferReset (&out_buf);
@@ -1505,8 +1503,10 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					      if (wkt == NULL)
 						{
 						    value_set_null (*
-								    (cursor->pVtab->Value
-								     + ic));
+								    (cursor->
+								     pVtab->
+								     Value +
+								     ic));
 						    continue;
 						}
 					      delete_wkt = 1;
@@ -1516,9 +1516,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					    free ((void *) wkt);
 					if (!geom)
 					    value_set_null (*
-							    (cursor->
-							     pVtab->Value +
-							     ic));
+							    (cursor->pVtab->
+							     Value + ic));
 					else
 					  {
 					      geom->Srid =
@@ -1529,16 +1528,18 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					      if (xblob)
 						{
 						    value_set_blob (*
-								    (cursor->pVtab->Value
-								     + ic),
-								    xblob,
+								    (cursor->
+								     pVtab->
+								     Value +
+								     ic), xblob,
 								    size);
 						    free (xblob);
 						}
 					      else
 						  value_set_null (*
-								  (cursor->pVtab->Value
-								   + ic));
+								  (cursor->
+								   pVtab->
+								   Value + ic));
 					      gaiaFreeGeomColl (geom);
 					  }
 				    }
@@ -1559,9 +1560,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					geom = gaiaFromWkb (blob, size);
 					if (!geom)
 					    value_set_null (*
-							    (cursor->
-							     pVtab->Value +
-							     ic));
+							    (cursor->pVtab->
+							     Value + ic));
 					else
 					  {
 					      geom->Srid =
@@ -1572,16 +1572,18 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					      if (xblob)
 						{
 						    value_set_blob (*
-								    (cursor->pVtab->Value
-								     + ic),
-								    xblob,
+								    (cursor->
+								     pVtab->
+								     Value +
+								     ic), xblob,
 								    size);
 						    free (xblob);
 						}
 					      else
 						  value_set_null (*
-								  (cursor->pVtab->Value
-								   + ic));
+								  (cursor->
+								   pVtab->
+								   Value + ic));
 					      gaiaFreeGeomColl (geom);
 					  }
 				    }
@@ -1602,9 +1604,8 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					geom = gaiaFromFgf (blob, size);
 					if (!geom)
 					    value_set_null (*
-							    (cursor->
-							     pVtab->Value +
-							     ic));
+							    (cursor->pVtab->
+							     Value + ic));
 					else
 					  {
 					      geom->Srid =
@@ -1615,16 +1616,18 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
 					      if (xblob)
 						{
 						    value_set_blob (*
-								    (cursor->pVtab->Value
-								     + ic),
-								    xblob,
+								    (cursor->
+								     pVtab->
+								     Value +
+								     ic), xblob,
 								    size);
 						    free (xblob);
 						}
 					      else
 						  value_set_null (*
-								  (cursor->pVtab->Value
-								   + ic));
+								  (cursor->
+								   pVtab->
+								   Value + ic));
 					      gaiaFreeGeomColl (geom);
 					  }
 				    }
@@ -1697,7 +1700,6 @@ vfdo_read_row (VirtualFDOCursorPtr cursor)
     cursor->current_row = pk;
 }
 
-
 static int
 vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv,
 	     sqlite3_vtab ** ppVTab, char **pzErr)
@@ -1725,6 +1727,7 @@ vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv,
     VirtualFDOPtr p_vt = NULL;
     if (pAux)
 	pAux = pAux;		/* unused arg warning suppression */
+    gaiaOutBufferInitialize (&sql_statement);
 /* checking for table_name */
     if (argc == 4)
       {
@@ -1852,7 +1855,6 @@ vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv,
     else
 	goto illegal;
 /* preparing the COLUMNs for this VIRTUAL TABLE */
-    gaiaOutBufferInitialize (&sql_statement);
     xname = gaiaDoubleQuotedSql (vtable);
     sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname);
     free (xname);
@@ -2159,8 +2161,8 @@ vfdo_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualFDOInit (sqlite3 * db)
+static int
+spliteVirtualFDOInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
     my_fdo_module.iVersion = 1;
@@ -2186,8 +2188,9 @@ sqlite3VirtualFDOInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtualfdo_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtualfdo_extension_init (void *xdb)
 {
-    return sqlite3VirtualFDOInit (db);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualFDOInit (db);
 }
diff --git a/src/spatialite/virtualgpkg.c b/src/spatialite/virtualgpkg.c
new file mode 100644
index 0000000..e04521d
--- /dev/null
+++ b/src/spatialite/virtualgpkg.c
@@ -0,0 +1,1077 @@
+/*
+
+ virtualgpkg.c -- SQLite3 extension [VIRTUAL TABLE accessing GPKG tables]
+
+ version 4.2, 2013 May 18
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2014
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#include "config-msvc.h"
+#else
+#include "config.h"
+#endif
+
+#include <spatialite/sqlite.h>
+
+#include <spatialite/spatialite.h>
+#include <spatialite/gaiaaux.h>
+#include <spatialite/gaiageo.h>
+#include <spatialite/geopackage.h>
+
+/* 64 bit integer: portable format for printf() */
+#if defined(_WIN32) && !defined(__MINGW32__)
+#define FRMT64 "%I64d"
+#else
+#define FRMT64 "%lld"
+#endif
+
+#if defined(_WIN32) && !defined(__MINGW32__)
+#define LONG64_MAX	_I64_MAX
+#define LONG64_MIN	_I64_MIN
+#else
+#define LONG64_MAX	9223372036854775807LL
+#define LONG64_MIN	(-LONG64_MAX + 1)
+#endif
+
+#ifdef ENABLE_GEOPACKAGE	/* only if GeoPackage support is enabled */
+
+struct sqlite3_module my_gpkg_module;
+
+typedef struct SqliteValue
+{
+/* a multitype storing a column value */
+    int Type;
+    sqlite3_int64 IntValue;
+    double DoubleValue;
+    char *Text;
+    unsigned char *Blob;
+    int Size;
+} SqliteValue;
+typedef SqliteValue *SqliteValuePtr;
+
+typedef struct VirtualGPKGStruct
+{
+/* extends the sqlite3_vtab struct */
+    const sqlite3_module *pModule;	/* ptr to sqlite module: USED INTERNALLY BY SQLITE */
+    int nRef;			/* # references: USED INTERNALLY BY SQLITE */
+    char *zErrMsg;		/* error message: USE INTERNALLY BY SQLITE */
+    sqlite3 *db;		/* the sqlite db holding the virtual table */
+    char *table;		/* the real-table name */
+    int nColumns;		/* the # columns into the table */
+    char **Column;		/* the name for each column */
+    char **Type;		/* the type for each column */
+    int *NotNull;		/* NotNull clause for each column */
+    SqliteValuePtr *Value;	/* the current-row value for each column */
+    char *GeoColumn;		/* name of the Geometry column */
+    int Srid;			/* SRID of the Geometry column */
+    int GeoType;		/* Type of the Geometry column */
+} VirtualGPKG;
+typedef VirtualGPKG *VirtualGPKGPtr;
+
+typedef struct VirtualGPKGCursorStruct
+{
+/* extends the sqlite3_vtab_cursor struct */
+    VirtualGPKGPtr pVtab;	/* Virtual table of this cursor */
+    sqlite3_stmt *stmt;
+    sqlite3_int64 current_row;	/* the current row ID */
+    int eof;			/* the EOF marker */
+} VirtualGPKGCursor;
+typedef VirtualGPKGCursor *VirtualGPKGCursorPtr;
+
+static SqliteValuePtr
+value_alloc (void)
+{
+/* allocates and initialites a Value multitype */
+    SqliteValuePtr p = malloc (sizeof (SqliteValue));
+    p->Type = SQLITE_NULL;
+    p->Text = NULL;
+    p->Blob = NULL;
+    return p;
+}
+
+static void
+value_free (SqliteValuePtr p)
+{
+/* freeing a Value multitype */
+    if (!p)
+	return;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    free (p);
+}
+
+static void
+value_set_null (SqliteValuePtr p)
+{
+/* setting a NULL value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_NULL;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = NULL;
+}
+
+static void
+value_set_int (SqliteValuePtr p, sqlite3_int64 value)
+{
+/* setting an INT value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_INTEGER;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = NULL;
+    p->IntValue = value;
+}
+
+static void
+value_set_double (SqliteValuePtr p, double value)
+{
+/* setting a DOUBLE value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_FLOAT;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = NULL;
+    p->DoubleValue = value;
+}
+
+static void
+value_set_text (SqliteValuePtr p, const char *value, int size)
+{
+/* setting a TEXT value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_TEXT;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Blob = NULL;
+    p->Text = malloc (size);
+    memcpy (p->Text, value, size);
+    p->Size = size;
+}
+
+static void
+value_set_blob (SqliteValuePtr p, const unsigned char *value, int size)
+{
+/* setting a BLOB value to the multitype */
+    if (!p)
+	return;
+    p->Type = SQLITE_BLOB;
+    if (p->Text)
+	free (p->Text);
+    if (p->Blob)
+	free (p->Blob);
+    p->Text = NULL;
+    p->Blob = malloc (size);
+    memcpy (p->Blob, value, size);
+    p->Size = size;
+}
+
+static void
+vgpkg_read_row (VirtualGPKGCursorPtr cursor)
+{
+/* trying to read a row from GPKG real-table */
+    sqlite3_stmt *stmt;
+    int ret;
+    int ic;
+    const char *text;
+    const unsigned char *blob;
+    int size;
+    sqlite3_int64 pk;
+    stmt = cursor->stmt;
+    sqlite3_bind_int64 (stmt, 1, cursor->current_row);
+    ret = sqlite3_step (stmt);
+    if (ret == SQLITE_ROW)
+      {
+	  pk = sqlite3_column_int64 (stmt, 0);
+	  for (ic = 0; ic < cursor->pVtab->nColumns; ic++)
+	    {
+		/* fetching column values */
+		switch (sqlite3_column_type (stmt, ic + 1))
+		  {
+		  case SQLITE_INTEGER:
+		      value_set_int (*(cursor->pVtab->Value + ic),
+				     sqlite3_column_int64 (stmt, ic + 1));
+		      break;
+		  case SQLITE_FLOAT:
+		      value_set_double (*(cursor->pVtab->Value + ic),
+					sqlite3_column_double (stmt, ic + 1));
+		      break;
+		  case SQLITE_TEXT:
+		      text = (char *) sqlite3_column_text (stmt, ic + 1);
+		      size = sqlite3_column_bytes (stmt, ic + 1);
+		      value_set_text (*(cursor->pVtab->Value + ic), text, size);
+		      break;
+		  case SQLITE_BLOB:
+		      blob = sqlite3_column_blob (stmt, ic + 1);
+		      size = sqlite3_column_bytes (stmt, ic + 1);
+		      value_set_blob (*(cursor->pVtab->Value + ic), blob, size);
+		      break;
+		  case SQLITE_NULL:
+		  default:
+		      value_set_null (*(cursor->pVtab->Value + ic));
+		      break;
+		  };
+	    }
+      }
+    else
+      {
+	  /* an error occurred */
+	  cursor->eof = 1;
+	  return;
+      }
+    cursor->eof = 0;
+    cursor->current_row = pk;
+}
+
+static int
+vgpkg_insert_row (VirtualGPKGPtr p_vt, sqlite3_int64 * rowid, int argc,
+		  sqlite3_value ** argv)
+{
+/* trying to insert a row into GPKG real-table */
+    sqlite3_stmt *stmt;
+    int ret;
+    int i;
+    int ic;
+    char prefix[16];
+    const char *text;
+    const unsigned char *blob;
+    gaiaOutBuffer sql_statement;
+    int size;
+    char *sql;
+    char buf[256];
+    char *xname;
+    gaiaOutBufferInitialize (&sql_statement);
+    xname = gaiaDoubleQuotedSql (p_vt->table);
+    sql = sqlite3_mprintf ("INSERT INTO \"%s\" ", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    for (ic = 0; ic < p_vt->nColumns; ic++)
+      {
+	  if (ic == 0)
+	      strcpy (prefix, "(");
+	  else
+	      strcpy (prefix, ", ");
+	  xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic));
+	  sql = sqlite3_mprintf ("%s%s", prefix, xname);
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    gaiaAppendToOutBuffer (&sql_statement, ") VALUES ");
+    for (ic = 0; ic < p_vt->nColumns; ic++)
+      {
+	  if (ic == 0)
+	      strcpy (prefix, "(");
+	  else
+	      strcpy (prefix, ", ");
+	  if (strcasecmp (*(p_vt->Column + ic), p_vt->GeoColumn) == 0)
+	    {
+		/* this is the geometry column */
+		sql = sqlite3_mprintf ("%sAsGPB(?)", prefix);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+	    }
+	  else
+	  {
+	      sprintf (buf, "%s?", prefix);
+	  gaiaAppendToOutBuffer (&sql_statement, buf);
+  }
+      }
+    gaiaAppendToOutBuffer (&sql_statement, ")");
+    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
+	ret =
+	    sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer,
+				strlen (sql_statement.Buffer), &stmt, NULL);
+    else
+	ret = SQLITE_ERROR;
+    gaiaOutBufferReset (&sql_statement);
+    if (ret != SQLITE_OK)
+	return SQLITE_ERROR;
+    for (i = 2; i < argc; i++)
+      {
+	  switch (sqlite3_value_type (argv[i]))
+	    {
+	    case SQLITE_INTEGER:
+		sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i]));
+		break;
+	    case SQLITE_FLOAT:
+		sqlite3_bind_double (stmt, i - 1,
+				     sqlite3_value_double (argv[i]));
+		break;
+	    case SQLITE_TEXT:
+		text = (char *) sqlite3_value_text (argv[i]);
+		size = sqlite3_value_bytes (argv[i]);
+		sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC);
+		break;
+	    case SQLITE_BLOB:
+		blob = sqlite3_value_blob (argv[i]);
+		size = sqlite3_value_bytes (argv[i]);
+		sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC);
+		break;
+	    case SQLITE_NULL:
+	    default:
+		sqlite3_bind_null (stmt, i - 1);
+		break;
+	    };
+      }
+    sqlite3_finalize (stmt);
+    *rowid = sqlite3_last_insert_rowid (p_vt->db);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_update_row (VirtualGPKGPtr p_vt, sqlite3_int64 rowid, int argc,
+		  sqlite3_value ** argv)
+{
+/* trying to update a row in GPKG real-table */
+    sqlite3_stmt *stmt;
+    int ret;
+    int i;
+    int ic;
+    char prefix[16];
+    const char *text;
+    const unsigned char *blob;
+    gaiaOutBuffer sql_statement;
+    int size;
+    char *sql;
+    char buf[256];
+    char *xname;
+    gaiaOutBufferInitialize (&sql_statement);
+    xname = gaiaDoubleQuotedSql (p_vt->table);
+    sql = sqlite3_mprintf ("UPDATE \"%s\" SET", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    for (ic = 0; ic < p_vt->nColumns; ic++)
+      {
+	  if (ic == 0)
+	      strcpy (prefix, " ");
+	  else
+	      strcpy (prefix, ", ");
+	  xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic));
+	  if (strcasecmp (*(p_vt->Column + ic), p_vt->GeoColumn) == 0)
+	    {
+		/* this is the geometry column */
+		sql = sqlite3_mprintf ("%s%s = AsGPB(?)", prefix, xname);
+	    }
+	  else
+	      sql = sqlite3_mprintf ("%s%s = ?", prefix, xname);
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    sprintf (buf, " WHERE ROWID = " FRMT64, rowid);
+    gaiaAppendToOutBuffer (&sql_statement, buf);
+    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
+	ret =
+	    sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer,
+				strlen (sql_statement.Buffer), &stmt, NULL);
+    else
+	ret = SQLITE_ERROR;
+    gaiaOutBufferReset (&sql_statement);
+    if (ret != SQLITE_OK)
+	return SQLITE_ERROR;
+    for (i = 2; i < argc; i++)
+      {
+	  switch (sqlite3_value_type (argv[i]))
+	    {
+	    case SQLITE_INTEGER:
+		sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i]));
+		break;
+	    case SQLITE_FLOAT:
+		sqlite3_bind_double (stmt, i - 1,
+				     sqlite3_value_double (argv[i]));
+		break;
+	    case SQLITE_TEXT:
+		text = (char *) sqlite3_value_text (argv[i]);
+		size = sqlite3_value_bytes (argv[i]);
+		sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC);
+		break;
+	    case SQLITE_BLOB:
+		blob = sqlite3_value_blob (argv[i]);
+		size = sqlite3_value_bytes (argv[i]);
+		sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC);
+		break;
+	    case SQLITE_NULL:
+	    default:
+		sqlite3_bind_null (stmt, i - 1);
+		break;
+	    };
+      }
+    ret = sqlite3_step (stmt);
+    if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+	;
+    else
+      {
+	  sqlite3_finalize (stmt);
+	  return ret;
+      }
+    sqlite3_finalize (stmt);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_delete_row (VirtualGPKGPtr p_vt, sqlite3_int64 rowid)
+{
+/* trying to delete a row from GPKG real-table */
+    char *sql_statement;
+    char dummy[256];
+    int ret;
+    char *xname;
+    xname = gaiaDoubleQuotedSql (p_vt->table);
+    sprintf (dummy, FRMT64, rowid);
+    sql_statement =
+	sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = %s", xname, dummy);
+    free (xname);
+    ret = sqlite3_exec (p_vt->db, sql_statement, NULL, NULL, NULL);
+    sqlite3_free (sql_statement);
+    return ret;
+}
+
+static void
+free_table (VirtualGPKGPtr p_vt)
+{
+/* memory cleanup; freeing the virtual table struct */
+    int i;
+    if (!p_vt)
+	return;
+    if (p_vt->table)
+	sqlite3_free (p_vt->table);
+    if (p_vt->Column)
+      {
+	  for (i = 0; i < p_vt->nColumns; i++)
+	    {
+		if (*(p_vt->Column + i))
+		    sqlite3_free (*(p_vt->Column + i));
+	    }
+	  sqlite3_free (p_vt->Column);
+      }
+    if (p_vt->Type)
+      {
+	  for (i = 0; i < p_vt->nColumns; i++)
+	    {
+		if (*(p_vt->Type + i))
+		    sqlite3_free (*(p_vt->Type + i));
+	    }
+	  sqlite3_free (p_vt->Type);
+      }
+    if (p_vt->NotNull)
+	sqlite3_free (p_vt->NotNull);
+    if (p_vt->Value)
+      {
+	  for (i = 0; i < p_vt->nColumns; i++)
+	    {
+		if (*(p_vt->Value + i))
+		    value_free (*(p_vt->Value + i));
+	    }
+	  sqlite3_free (p_vt->Value);
+      }
+    if (p_vt->GeoColumn)
+	sqlite3_free (p_vt->GeoColumn);
+    sqlite3_free (p_vt);
+}
+
+static int
+vgpkg_create (sqlite3 * db, void *pAux, int argc, const char *const *argv,
+	      sqlite3_vtab ** ppVTab, char **pzErr)
+{
+/* creates the virtual table connected to some GPKG table */
+    char *vtable = NULL;
+    char *table = NULL;
+    int ret;
+    int i;
+    int len;
+    int n_rows;
+    int n_columns;
+    const char *col_name;
+    const char *col_type;
+    int not_null;
+    const char *type;
+    int has_z;
+    int has_m;
+    char **results;
+    char *sql;
+    char prefix[16];
+    char *xname;
+    gaiaOutBuffer sql_statement;
+    VirtualGPKGPtr p_vt = NULL;
+    if (pAux)
+	pAux = pAux;		/* unused arg warning suppression */
+    gaiaOutBufferInitialize (&sql_statement);
+/* checking for table_name */
+    if (argc == 4)
+      {
+	  vtable = gaiaDequotedSql ((char *) argv[2]);
+	  table = gaiaDequotedSql ((char *) argv[3]);
+      }
+    else
+      {
+	  *pzErr =
+	      sqlite3_mprintf
+	      ("[VirtualGPKG module] CREATE VIRTUAL: illegal arg list {table_name}\n");
+	  goto error;
+      }
+/* retrieving the base table columns */
+    xname = gaiaDoubleQuotedSql (table);
+    sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname);
+    free (xname);
+    ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	goto illegal;
+    if (n_rows >= 1)
+      {
+	  p_vt = (VirtualGPKGPtr) sqlite3_malloc (sizeof (VirtualGPKG));
+	  if (!p_vt)
+	      return SQLITE_NOMEM;
+	  p_vt->db = db;
+	  p_vt->nRef = 0;
+	  p_vt->zErrMsg = NULL;
+	  len = strlen (table);
+	  p_vt->table = sqlite3_malloc (len + 1);
+	  strcpy (p_vt->table, table);
+	  p_vt->nColumns = n_rows;
+	  p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows);
+	  p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows);
+	  p_vt->NotNull = sqlite3_malloc (sizeof (int) * n_rows);
+	  p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows);
+	  for (i = 0; i < n_rows; i++)
+	    {
+		*(p_vt->Column + i) = NULL;
+		*(p_vt->Type + i) = NULL;
+		*(p_vt->NotNull + i) = -1;
+		*(p_vt->Value + i) = value_alloc ();
+	    }
+	  p_vt->GeoColumn = NULL;
+	  p_vt->Srid = -1;
+	  p_vt->GeoType = GAIA_UNKNOWN;
+	  for (i = 1; i <= n_rows; i++)
+	    {
+		col_name = results[(i * n_columns) + 1];
+		col_type = results[(i * n_columns) + 2];
+		if (atoi (results[(i * n_columns) + 3]) == 0)
+		    not_null = 0;
+		else
+		    not_null = 1;
+		len = strlen (col_name);
+		*(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1);
+		strcpy (*(p_vt->Column + (i - 1)), col_name);
+		len = strlen (col_type);
+		*(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1);
+		strcpy (*(p_vt->Type + (i - 1)), col_type);
+		*(p_vt->NotNull + (i - 1)) = not_null;
+	    }
+	  sqlite3_free_table (results);
+      }
+    else
+	goto illegal;
+/* retrieving the base table columns */
+    sql =
+	sqlite3_mprintf
+	("SELECT column_name, geometry_type_name, srs_id, z, m\n"
+	 "FROM gpkg_geometry_columns WHERE Upper(table_name) = Upper(%Q)",
+	 table);
+    ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+	goto illegal;
+    if (n_rows >= 1)
+      {
+	  col_name = results[n_columns + 0];
+	  type = results[n_columns + 1];
+	  p_vt->Srid = atoi (results[n_columns + 2]);
+	  has_z = atoi (results[n_columns + 3]);
+	  has_m = atoi (results[n_columns + 4]);
+	  len = strlen (col_name);
+	  p_vt->GeoColumn = sqlite3_malloc (len + 1);
+	  strcpy (p_vt->GeoColumn, col_name);
+	  if (strcasecmp (type, "POINT") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_POINTZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_POINTZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_POINTM;
+		else
+		    p_vt->GeoType = GAIA_POINT;
+	    }
+	  if (strcasecmp (type, "LINESTRING") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_LINESTRINGZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_LINESTRINGZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_LINESTRINGM;
+		else
+		    p_vt->GeoType = GAIA_LINESTRING;
+	    }
+	  if (strcasecmp (type, "POLYGON") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_POLYGONZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_POLYGONZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_POLYGONM;
+		else
+		    p_vt->GeoType = GAIA_POLYGON;
+	    }
+	  if (strcasecmp (type, "MULTIPOINT") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_MULTIPOINTZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_MULTIPOINTZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_MULTIPOINTM;
+		else
+		    p_vt->GeoType = GAIA_MULTIPOINT;
+	    }
+	  if (strcasecmp (type, "MULTILINESTRING") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_MULTILINESTRINGZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_MULTILINESTRINGZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_MULTILINESTRINGM;
+		else
+		    p_vt->GeoType = GAIA_MULTILINESTRING;
+	    }
+	  if (strcasecmp (type, "MULTIPOLYGON") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_MULTIPOLYGONZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_MULTIPOLYGONZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_MULTIPOLYGONM;
+		else
+		    p_vt->GeoType = GAIA_MULTIPOLYGON;
+	    }
+	  if (strcasecmp (type, "GEOMCOLLECTION") == 0)
+	    {
+		if (has_z && has_m)
+		    p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONZM;
+		else if (has_z)
+		    p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONZ;
+		else if (has_m)
+		    p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONM;
+		else
+		    p_vt->GeoType = GAIA_GEOMETRYCOLLECTION;
+	    }
+	  sqlite3_free_table (results);
+      }
+    else
+	goto illegal;
+/* preparing the COLUMNs for this VIRTUAL TABLE */
+    xname = gaiaDoubleQuotedSql (vtable);
+    sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    for (i = 0; i < p_vt->nColumns; i++)
+      {
+	  if (i == 0)
+	      strcpy (prefix, "(");
+	  else
+	      strcpy (prefix, ", ");
+	  xname = gaiaDoubleQuotedSql (*(p_vt->Column + i));
+	  if (*(p_vt->NotNull + i))
+	      sql =
+		  sqlite3_mprintf ("%s%s %s NOT NULL", prefix, xname,
+				   *(p_vt->Type + i));
+	  else
+	      sql =
+		  sqlite3_mprintf ("%s%s %s", prefix, xname, *(p_vt->Type + i));
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    gaiaAppendToOutBuffer (&sql_statement, ")");
+    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
+      {
+	  if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK)
+	    {
+		*pzErr =
+		    sqlite3_mprintf
+		    ("[VirtualGPKG module] CREATE VIRTUAL: invalid SQL statement \"%s\"",
+		     sql);
+		goto error;
+	    }
+	  gaiaOutBufferReset (&sql_statement);
+      }
+    else
+	goto error;
+    *ppVTab = (sqlite3_vtab *) p_vt;
+    free (vtable);
+    free (table);
+    return SQLITE_OK;
+  illegal:
+/* something is going the wrong way */
+    gaiaOutBufferReset (&sql_statement);
+    if (p_vt)
+	free_table (p_vt);
+    *pzErr =
+	sqlite3_mprintf
+	("[VirtualGPKG module] '%s' isn't a valid GPKG Geometry table\n",
+	 table);
+  error:
+    if (vtable)
+	free (vtable);
+    if (table)
+	free (table);
+    gaiaOutBufferReset (&sql_statement);
+    return SQLITE_ERROR;
+}
+
+static int
+vgpkg_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv,
+	       sqlite3_vtab ** ppVTab, char **pzErr)
+{
+/* connects the virtual table to some shapefile - simply aliases vgpkg_create() */
+    return vgpkg_create (db, pAux, argc, argv, ppVTab, pzErr);
+}
+
+static int
+vgpkg_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex)
+{
+/* best index selection */
+    if (pVTab || pIndex)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_disconnect (sqlite3_vtab * pVTab)
+{
+/* disconnects the virtual table */
+    VirtualGPKGPtr p_vt = (VirtualGPKGPtr) pVTab;
+    free_table (p_vt);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_destroy (sqlite3_vtab * pVTab)
+{
+/* destroys the virtual table - simply aliases vgpkg_disconnect() */
+    return vgpkg_disconnect (pVTab);
+}
+
+static int
+vgpkg_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor)
+{
+/* opening a new cursor */
+    sqlite3_stmt *stmt;
+    gaiaOutBuffer sql_statement;
+    int ret;
+    char *sql;
+    int ic;
+    char *xname;
+    VirtualGPKGCursorPtr cursor =
+	(VirtualGPKGCursorPtr) sqlite3_malloc (sizeof (VirtualGPKGCursor));
+    if (cursor == NULL)
+	return SQLITE_ERROR;
+    cursor->pVtab = (VirtualGPKGPtr) pVTab;
+    gaiaOutBufferInitialize (&sql_statement);
+    gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID");
+    for (ic = 0; ic < cursor->pVtab->nColumns; ic++)
+      {
+	  value_set_null (*(cursor->pVtab->Value + ic));
+	  xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic));
+	  if (strcasecmp
+	      (*(cursor->pVtab->Column + ic), cursor->pVtab->GeoColumn) == 0)
+	    {
+		/* this is the geometry column */
+		sql = sqlite3_mprintf (",GeomFromGPB(\"%s\")", xname);
+	    }
+	  else
+	      sql = sqlite3_mprintf (",\"%s\"", xname);
+	  free (xname);
+	  gaiaAppendToOutBuffer (&sql_statement, sql);
+	  sqlite3_free (sql);
+      }
+    xname = gaiaDoubleQuotedSql (cursor->pVtab->table);
+    sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname);
+    free (xname);
+    gaiaAppendToOutBuffer (&sql_statement, sql);
+    sqlite3_free (sql);
+    if (sql_statement.Error == 0 && sql_statement.Buffer != NULL)
+	ret =
+	    sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer,
+				strlen (sql_statement.Buffer), &stmt, NULL);
+    else
+	ret = SQLITE_ERROR;
+    gaiaOutBufferReset (&sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  /* an error occurred */
+	  cursor->eof = 1;
+	  return SQLITE_ERROR;
+      }
+    cursor->stmt = stmt;
+    cursor->current_row = LONG64_MIN;
+    cursor->eof = 0;
+    *ppCursor = (sqlite3_vtab_cursor *) cursor;
+    vgpkg_read_row (cursor);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_close (sqlite3_vtab_cursor * pCursor)
+{
+/* closing the cursor */
+    int ic;
+    VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor;
+    for (ic = 0; ic < cursor->pVtab->nColumns; ic++)
+	value_set_null (*(cursor->pVtab->Value + ic));
+    if (cursor->stmt)
+	sqlite3_finalize (cursor->stmt);
+    sqlite3_free (pCursor);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr,
+	      int argc, sqlite3_value ** argv)
+{
+/* setting up a cursor filter */
+    if (pCursor || idxNum || idxStr || argc || argv)
+	pCursor = pCursor;	/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_next (sqlite3_vtab_cursor * pCursor)
+{
+/* fetching next row from cursor */
+    VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor;
+    (cursor->current_row)++;
+    vgpkg_read_row (cursor);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_eof (sqlite3_vtab_cursor * pCursor)
+{
+/* cursor EOF */
+    VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor;
+    return cursor->eof;
+}
+
+static int
+vgpkg_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext,
+	      int column)
+{
+/* fetching value for the Nth column */
+    VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor;
+    SqliteValuePtr value;
+    if (column >= 0 && column < cursor->pVtab->nColumns)
+      {
+	  value = *(cursor->pVtab->Value + column);
+	  switch (value->Type)
+	    {
+	    case SQLITE_INTEGER:
+		sqlite3_result_int64 (pContext, value->IntValue);
+		break;
+	    case SQLITE_FLOAT:
+		sqlite3_result_double (pContext, value->DoubleValue);
+		break;
+	    case SQLITE_TEXT:
+		sqlite3_result_text (pContext, value->Text, value->Size,
+				     SQLITE_STATIC);
+		break;
+	    case SQLITE_BLOB:
+		sqlite3_result_blob (pContext, value->Blob, value->Size,
+				     SQLITE_STATIC);
+		break;
+	    default:
+		sqlite3_result_null (pContext);
+		break;
+	    };
+      }
+    else
+	sqlite3_result_null (pContext);
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid)
+{
+/* fetching the ROWID */
+    VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor;
+    *pRowid = cursor->current_row;
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv,
+	      sqlite_int64 * pRowid)
+{
+/* generic update [INSERT / UPDATE / DELETE */
+    sqlite3_int64 rowid = 0;
+    int ret;
+    VirtualGPKGPtr p_vt = (VirtualGPKGPtr) pVTab;
+    if (argc == 1)
+      {
+	  /* performing a DELETE */
+	  if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER)
+	    {
+		rowid = sqlite3_value_int64 (argv[0]);
+		ret = vgpkg_delete_row (p_vt, rowid);
+	    }
+	  else
+	      ret = SQLITE_MISMATCH;
+      }
+    else
+      {
+	  if (sqlite3_value_type (argv[0]) == SQLITE_NULL)
+	    {
+		/* performing an INSERT */
+		ret = vgpkg_insert_row (p_vt, &rowid, argc, argv);
+		if (ret == SQLITE_OK)
+		    *pRowid = rowid;
+	    }
+	  else
+	    {
+		/* performing an UPDATE */
+		rowid = sqlite3_value_int64 (argv[0]);
+		ret = vgpkg_update_row (p_vt, rowid, argc, argv);
+	    }
+      }
+    return ret;
+}
+
+static int
+vgpkg_begin (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_sync (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_commit (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+vgpkg_rollback (sqlite3_vtab * pVTab)
+{
+/* BEGIN TRANSACTION */
+    if (pVTab)
+	pVTab = pVTab;		/* unused arg warning suppression */
+    return SQLITE_OK;
+}
+
+static int
+spliteVirtualGPKGInit (sqlite3 * db)
+{
+    int rc = SQLITE_OK;
+    my_gpkg_module.iVersion = 1;
+    my_gpkg_module.xCreate = &vgpkg_create;
+    my_gpkg_module.xConnect = &vgpkg_connect;
+    my_gpkg_module.xBestIndex = &vgpkg_best_index;
+    my_gpkg_module.xDisconnect = &vgpkg_disconnect;
+    my_gpkg_module.xDestroy = &vgpkg_destroy;
+    my_gpkg_module.xOpen = &vgpkg_open;
+    my_gpkg_module.xClose = &vgpkg_close;
+    my_gpkg_module.xFilter = &vgpkg_filter;
+    my_gpkg_module.xNext = &vgpkg_next;
+    my_gpkg_module.xEof = &vgpkg_eof;
+    my_gpkg_module.xColumn = &vgpkg_column;
+    my_gpkg_module.xRowid = &vgpkg_rowid;
+    my_gpkg_module.xUpdate = &vgpkg_update;
+    my_gpkg_module.xBegin = &vgpkg_begin;
+    my_gpkg_module.xSync = &vgpkg_sync;
+    my_gpkg_module.xCommit = &vgpkg_commit;
+    my_gpkg_module.xRollback = &vgpkg_rollback;
+    my_gpkg_module.xFindFunction = NULL;
+    sqlite3_create_module_v2 (db, "VirtualGPKG", &my_gpkg_module, NULL, 0);
+    return rc;
+}
+
+SPATIALITE_PRIVATE int
+virtualgpkg_extension_init (void *xdb)
+{
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualGPKGInit (db);
+}
+
+#endif /* end GEOPACKAGE conditional */
diff --git a/src/spatialite/virtualnetwork.c b/src/spatialite/virtualnetwork.c
index 4f28bc8..1301280 100644
--- a/src/spatialite/virtualnetwork.c
+++ b/src/spatialite/virtualnetwork.c
@@ -2228,8 +2228,8 @@ vnet_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualNetworkInit (sqlite3 * db)
+static int
+spliteVirtualNetworkInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
     my_net_module.iVersion = 1;
@@ -2255,8 +2255,9 @@ sqlite3VirtualNetworkInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtualnetwork_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtualnetwork_extension_init (void *xdb)
 {
-    return sqlite3VirtualNetworkInit (db);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualNetworkInit (db);
 }
diff --git a/src/spatialite/virtualshape.c b/src/spatialite/virtualshape.c
index 784551b..c5b5b94 100644
--- a/src/spatialite/virtualshape.c
+++ b/src/spatialite/virtualshape.c
@@ -1157,8 +1157,8 @@ vshp_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualShapeInit (sqlite3 * db)
+static int
+spliteVirtualShapeInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
     my_shape_module.iVersion = 1;
@@ -1184,10 +1184,11 @@ sqlite3VirtualShapeInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtualshape_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtualshape_extension_init (void *xdb)
 {
-    return sqlite3VirtualShapeInit (db);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualShapeInit (db);
 }
 
 #endif /* ICONV enabled/disabled */
diff --git a/src/spatialite/virtualspatialindex.c b/src/spatialite/virtualspatialindex.c
index 2de5e1b..207db96 100644
--- a/src/spatialite/virtualspatialindex.c
+++ b/src/spatialite/virtualspatialindex.c
@@ -173,6 +173,12 @@ vspidx_check_view_rtree (sqlite3 * sqlite, const char *table_name,
     sqlite3_finalize (stmt);
     if (count != 1)
 	return 0;
+    if (!validateRowid (sqlite, table_name))
+      {
+	  free (rt);
+	  free (rg);
+	  return 0;
+      }
     *real_table = rt;
     *real_geom = rg;
     return 1;
@@ -888,8 +894,8 @@ vspidx_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualSpatialIndexInit (sqlite3 * db)
+static int
+spliteVirtualSpatialIndexInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
     my_spidx_module.iVersion = 1;
@@ -916,8 +922,9 @@ sqlite3VirtualSpatialIndexInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtual_spatialindex_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtual_spatialindex_extension_init (void *xdb)
 {
-    return sqlite3VirtualSpatialIndexInit (db);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualSpatialIndexInit (db);
 }
diff --git a/src/spatialite/virtualxpath.c b/src/spatialite/virtualxpath.c
index 870655e..7cb1a5b 100644
--- a/src/spatialite/virtualxpath.c
+++ b/src/spatialite/virtualxpath.c
@@ -72,9 +72,9 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <spatialite/sqlite.h>
 
 #include <spatialite/spatialite.h>
+#include <spatialite/debug.h>
 #include <spatialite/gaiaaux.h>
 #include <spatialite/gaiageo.h>
-#include <spatialite_private.h>
 
 #ifdef _WIN32
 #define strcasecmp	_stricmp
@@ -96,7 +96,7 @@ typedef struct VirtualXPathStruct
     int nRef;			/* # references: USED INTERNALLY BY SQLITE */
     char *zErrMsg;		/* error message: USE INTERNALLY BY SQLITE */
     sqlite3 *db;		/* the sqlite db holding the virtual table */
-    void *p_cache;		/* pointer to the internal cache */
+    const void *p_cache;	/* pointer to the internal cache */
     char *table;		/* the real-table name */
     char *column;		/* the real-column name */
 } VirtualXPath;
@@ -230,10 +230,10 @@ vxpath_feed_ns (struct vxpath_namespaces *ns_list, xmlNodePtr start)
 			      {
 				  /* a Namespace is defined */
 				  vxpath_add_ns (ns_list,
-						 (const char *) (attr->
-								 ns->prefix),
-						 (const char *) (attr->
-								 ns->href));
+						 (const char *) (attr->ns->
+								 prefix),
+						 (const char *) (attr->ns->
+								 href));
 			      }
 			}
 		      attr = attr->next;
@@ -258,17 +258,32 @@ vxpath_get_namespaces (void *p_xml_doc)
     return ns_list;
 }
 
+static int
+is_valid_cache (struct splite_internal_cache *cache)
+{
+/* testing if the passed cache is a valid one */
+    if (cache == NULL)
+	return 0;
+    if (cache->magic1 != SPATIALITE_CACHE_MAGIC1
+	|| cache->magic2 != SPATIALITE_CACHE_MAGIC2)
+	return 0;
+    return 1;
+}
+
 static void
 vxpathError (void *ctx, const char *msg, ...)
 {
 /* appending to the current XPath Error buffer */
     struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx;
-    gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors);
+    gaiaOutBufferPtr buf;
     char out[65536];
     va_list args;
 
     if (ctx != NULL)
 	ctx = NULL;		/* suppressing stupid compiler warnings (unused args) */
+    if (!is_valid_cache (cache))
+	return;
+    buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors);
 
     va_start (args, msg);
     vsnprintf (out, 65536, msg, args);
@@ -280,17 +295,23 @@ static void
 vxpathResetXmlErrors (struct splite_internal_cache *cache)
 {
 /* resetting the XPath Error buffer */
-    gaiaOutBufferPtr buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors);
+    gaiaOutBufferPtr buf;
+    if (!is_valid_cache (cache))
+	return;
+    buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors);
     gaiaOutBufferReset (buf);
 }
 
 GAIAGEO_DECLARE int
-gaiaIsValidXPathExpression (void *p_cache, const char *xpath_expr)
+gaiaIsValidXPathExpression (const void *p_cache, const char *xpath_expr)
 {
     struct splite_internal_cache *cache =
 	(struct splite_internal_cache *) p_cache;
     xmlXPathCompExprPtr result;
-    xmlGenericErrorFunc xpathError = (xmlGenericErrorFunc) vxpathError;
+    xmlGenericErrorFunc xpathError;
+    if (!is_valid_cache (cache))
+	return 0;
+    xpathError = (xmlGenericErrorFunc) vxpathError;
 
     vxpathResetXmlErrors (cache);
     xmlSetGenericErrorFunc (cache, xpathError);
@@ -307,7 +328,7 @@ gaiaIsValidXPathExpression (void *p_cache, const char *xpath_expr)
 }
 
 SPATIALITE_PRIVATE int
-vxpath_eval_expr (void *p_cache, void *x_xml_doc, const char *xpath_expr,
+vxpath_eval_expr (const void *p_cache, void *x_xml_doc, const char *xpath_expr,
 		  void *x_xpathCtx, void *x_xpathObj)
 {
     struct splite_internal_cache *cache =
@@ -324,8 +345,11 @@ vxpath_eval_expr (void *p_cache, void *x_xml_doc, const char *xpath_expr,
     struct vxpath_ns *ns;
     struct vxpath_namespaces *ns_list = vxpath_get_namespaces (xml_doc);
 
-    vxpathResetXmlErrors (cache);
-    xmlSetGenericErrorFunc (cache, xpathError);
+    if (is_valid_cache (cache))
+      {
+	  vxpathResetXmlErrors (cache);
+	  xmlSetGenericErrorFunc (cache, xpathError);
+      }
 
 /* creating an XPath context */
     xpathCtx = xmlXPathNewContext (xml_doc);
@@ -580,6 +604,8 @@ vxpath_create (sqlite3 * db, void *pAux, int argc, const char *const *argv,
 	return SQLITE_NOMEM;
     p_vt->db = db;
     p_vt->p_cache = pAux;
+    if (p_vt->p_cache == NULL)
+	spatialite_e ("VirtualXPath WARNING - no XML cache is available !!!\n");
     p_vt->nRef = 0;
     p_vt->zErrMsg = NULL;
     p_vt->table = table;
@@ -1085,8 +1111,8 @@ vxpath_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
-sqlite3VirtualXPathInit (sqlite3 * db, void *p_cache)
+static int
+spliteVirtualXPathInit (sqlite3 * db, void *p_cache)
 {
     int rc = SQLITE_OK;
     my_xpath_module.iVersion = 1;
@@ -1112,10 +1138,11 @@ sqlite3VirtualXPathInit (sqlite3 * db, void *p_cache)
     return rc;
 }
 
-int
-virtual_xpath_extension_init (sqlite3 * db, void *p_cache)
+SPATIALITE_PRIVATE int
+virtual_xpath_extension_init (void *xdb, const void *p_cache)
 {
-    return sqlite3VirtualXPathInit (db, p_cache);
+    sqlite3 *db = (sqlite3 *) xdb;
+    return spliteVirtualXPathInit (db, (void *) p_cache);
 }
 
 #endif /* end LIBXML2: supporting XML documents */
diff --git a/src/srsinit/Makefile.am b/src/srsinit/Makefile.am
index 8c5d375..1ae233e 100644
--- a/src/srsinit/Makefile.am
+++ b/src/srsinit/Makefile.am
@@ -1,12 +1,12 @@
 
 SUBDIRS = epsg_update
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libsrsinit.la
+noinst_LTLIBRARIES = libsrsinit.la srsinit.la
 
-libsrsinit_la_SOURCES = srs_init.c \
+SRSINIT_COMMON_SOURCES = srs_init.c \
 	epsg_inlined_00.c \
 	epsg_inlined_01.c \
 	epsg_inlined_02.c \
@@ -48,13 +48,29 @@ libsrsinit_la_SOURCES = srs_init.c \
 	epsg_inlined_38.c \
 	epsg_inlined_39.c \
 	epsg_inlined_40.c \
+	epsg_inlined_41.c \
+	epsg_inlined_42.c \
+	epsg_inlined_43.c \
+	epsg_inlined_44.c \
+	epsg_inlined_45.c \
 	epsg_inlined_wgs84_00.c \
 	epsg_inlined_wgs84_01.c \
 	epsg_inlined_prussian.c \
 	epsg_inlined_extra.c
 
+libsrsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES)
+
 libsrsinit_la_CFLAGS = -fvisibility=hidden
 
+srsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES)
+
+srsinit_la_CPPFLAGS = @CFLAGS@
+srsinit_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+srsinit_la_CPPFLAGS += -DLOADABLE_EXTENSION
+srsinit_la_CPPFLAGS += -fvisibility=hidden
+srsinit_la_LDFLAGS = -module
+srsinit_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 
 
diff --git a/src/srsinit/Makefile.in b/src/srsinit/Makefile.in
index 0d5c72a..bbd2474 100644
--- a/src/srsinit/Makefile.in
+++ b/src/srsinit/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/srsinit
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -66,7 +94,7 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libsrsinit_la_LIBADD =
-am_libsrsinit_la_OBJECTS = libsrsinit_la-srs_init.lo \
+am__objects_1 = libsrsinit_la-srs_init.lo \
 	libsrsinit_la-epsg_inlined_00.lo \
 	libsrsinit_la-epsg_inlined_01.lo \
 	libsrsinit_la-epsg_inlined_02.lo \
@@ -108,36 +136,102 @@ am_libsrsinit_la_OBJECTS = libsrsinit_la-srs_init.lo \
 	libsrsinit_la-epsg_inlined_38.lo \
 	libsrsinit_la-epsg_inlined_39.lo \
 	libsrsinit_la-epsg_inlined_40.lo \
+	libsrsinit_la-epsg_inlined_41.lo \
+	libsrsinit_la-epsg_inlined_42.lo \
+	libsrsinit_la-epsg_inlined_43.lo \
+	libsrsinit_la-epsg_inlined_44.lo \
+	libsrsinit_la-epsg_inlined_45.lo \
 	libsrsinit_la-epsg_inlined_wgs84_00.lo \
 	libsrsinit_la-epsg_inlined_wgs84_01.lo \
 	libsrsinit_la-epsg_inlined_prussian.lo \
 	libsrsinit_la-epsg_inlined_extra.lo
+am_libsrsinit_la_OBJECTS = $(am__objects_1)
 libsrsinit_la_OBJECTS = $(am_libsrsinit_la_OBJECTS)
-libsrsinit_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libsrsinit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsrsinit_la_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+srsinit_la_LIBADD =
+am__objects_2 = srsinit_la-srs_init.lo srsinit_la-epsg_inlined_00.lo \
+	srsinit_la-epsg_inlined_01.lo srsinit_la-epsg_inlined_02.lo \
+	srsinit_la-epsg_inlined_03.lo srsinit_la-epsg_inlined_04.lo \
+	srsinit_la-epsg_inlined_05.lo srsinit_la-epsg_inlined_06.lo \
+	srsinit_la-epsg_inlined_07.lo srsinit_la-epsg_inlined_08.lo \
+	srsinit_la-epsg_inlined_09.lo srsinit_la-epsg_inlined_10.lo \
+	srsinit_la-epsg_inlined_11.lo srsinit_la-epsg_inlined_12.lo \
+	srsinit_la-epsg_inlined_13.lo srsinit_la-epsg_inlined_14.lo \
+	srsinit_la-epsg_inlined_15.lo srsinit_la-epsg_inlined_16.lo \
+	srsinit_la-epsg_inlined_17.lo srsinit_la-epsg_inlined_18.lo \
+	srsinit_la-epsg_inlined_19.lo srsinit_la-epsg_inlined_20.lo \
+	srsinit_la-epsg_inlined_21.lo srsinit_la-epsg_inlined_22.lo \
+	srsinit_la-epsg_inlined_23.lo srsinit_la-epsg_inlined_24.lo \
+	srsinit_la-epsg_inlined_25.lo srsinit_la-epsg_inlined_26.lo \
+	srsinit_la-epsg_inlined_27.lo srsinit_la-epsg_inlined_28.lo \
+	srsinit_la-epsg_inlined_29.lo srsinit_la-epsg_inlined_30.lo \
+	srsinit_la-epsg_inlined_31.lo srsinit_la-epsg_inlined_32.lo \
+	srsinit_la-epsg_inlined_33.lo srsinit_la-epsg_inlined_34.lo \
+	srsinit_la-epsg_inlined_35.lo srsinit_la-epsg_inlined_36.lo \
+	srsinit_la-epsg_inlined_37.lo srsinit_la-epsg_inlined_38.lo \
+	srsinit_la-epsg_inlined_39.lo srsinit_la-epsg_inlined_40.lo \
+	srsinit_la-epsg_inlined_41.lo srsinit_la-epsg_inlined_42.lo \
+	srsinit_la-epsg_inlined_43.lo srsinit_la-epsg_inlined_44.lo \
+	srsinit_la-epsg_inlined_45.lo \
+	srsinit_la-epsg_inlined_wgs84_00.lo \
+	srsinit_la-epsg_inlined_wgs84_01.lo \
+	srsinit_la-epsg_inlined_prussian.lo \
+	srsinit_la-epsg_inlined_extra.lo
+am_srsinit_la_OBJECTS = $(am__objects_2)
+srsinit_la_OBJECTS = $(am_srsinit_la_OBJECTS)
+srsinit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(srsinit_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libsrsinit_la_SOURCES)
-DIST_SOURCES = $(libsrsinit_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libsrsinit_la_SOURCES) $(srsinit_la_SOURCES)
+DIST_SOURCES = $(libsrsinit_la_SOURCES) $(srsinit_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -145,9 +239,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -179,6 +293,7 @@ am__relativize = \
   reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -306,9 +421,9 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = epsg_update
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libsrsinit.la
-libsrsinit_la_SOURCES = srs_init.c \
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libsrsinit.la srsinit.la
+SRSINIT_COMMON_SOURCES = srs_init.c \
 	epsg_inlined_00.c \
 	epsg_inlined_01.c \
 	epsg_inlined_02.c \
@@ -350,12 +465,23 @@ libsrsinit_la_SOURCES = srs_init.c \
 	epsg_inlined_38.c \
 	epsg_inlined_39.c \
 	epsg_inlined_40.c \
+	epsg_inlined_41.c \
+	epsg_inlined_42.c \
+	epsg_inlined_43.c \
+	epsg_inlined_44.c \
+	epsg_inlined_45.c \
 	epsg_inlined_wgs84_00.c \
 	epsg_inlined_wgs84_01.c \
 	epsg_inlined_prussian.c \
 	epsg_inlined_extra.c
 
+libsrsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES)
 libsrsinit_la_CFLAGS = -fvisibility=hidden
+srsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES)
+srsinit_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION -fvisibility=hidden
+srsinit_la_LDFLAGS = -module
+srsinit_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-recursive
 
@@ -402,8 +528,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libsrsinit.la: $(libsrsinit_la_OBJECTS) $(libsrsinit_la_DEPENDENCIES) $(EXTRA_libsrsinit_la_DEPENDENCIES) 
-	$(libsrsinit_la_LINK)  $(libsrsinit_la_OBJECTS) $(libsrsinit_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(libsrsinit_la_LINK)  $(libsrsinit_la_OBJECTS) $(libsrsinit_la_LIBADD) $(LIBS)
+
+srsinit.la: $(srsinit_la_OBJECTS) $(srsinit_la_DEPENDENCIES) $(EXTRA_srsinit_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(srsinit_la_LINK)  $(srsinit_la_OBJECTS) $(srsinit_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -452,354 +582,802 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_41.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_42.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_43.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_44.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_45.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libsrsinit_la-srs_init.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_00.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_01.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_02.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_03.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_04.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_05.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_06.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_07.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_08.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_09.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_10.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_11.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_12.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_13.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_14.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_15.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_16.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_17.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_18.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_19.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_20.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_21.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_22.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_23.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_24.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_25.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_26.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_27.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_28.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_29.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_30.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_31.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_32.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_33.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_34.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_35.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_36.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_37.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_38.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_39.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_40.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_41.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_42.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_43.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_44.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_45.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_extra.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_prussian.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/srsinit_la-srs_init.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libsrsinit_la-srs_init.lo: srs_init.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-srs_init.Tpo -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-srs_init.Tpo $(DEPDIR)/libsrsinit_la-srs_init.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='srs_init.c' object='libsrsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-srs_init.Tpo -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-srs_init.Tpo $(DEPDIR)/libsrsinit_la-srs_init.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='srs_init.c' object='libsrsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c
 
 libsrsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_00.c' object='libsrsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_00.c' object='libsrsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c
 
 libsrsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_01.c' object='libsrsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_01.c' object='libsrsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c
 
 libsrsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_02.c' object='libsrsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_02.c' object='libsrsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c
 
 libsrsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_03.c' object='libsrsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_03.c' object='libsrsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c
 
 libsrsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_04.c' object='libsrsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_04.c' object='libsrsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c
 
 libsrsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_05.c' object='libsrsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_05.c' object='libsrsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c
 
 libsrsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_06.c' object='libsrsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_06.c' object='libsrsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c
 
 libsrsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_07.c' object='libsrsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_07.c' object='libsrsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c
 
 libsrsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_08.c' object='libsrsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_08.c' object='libsrsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c
 
 libsrsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_09.c' object='libsrsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_09.c' object='libsrsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c
 
 libsrsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_10.c' object='libsrsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_10.c' object='libsrsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c
 
 libsrsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_11.c' object='libsrsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_11.c' object='libsrsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c
 
 libsrsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_12.c' object='libsrsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_12.c' object='libsrsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c
 
 libsrsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_13.c' object='libsrsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_13.c' object='libsrsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c
 
 libsrsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_14.c' object='libsrsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_14.c' object='libsrsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c
 
 libsrsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_15.c' object='libsrsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_15.c' object='libsrsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c
 
 libsrsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_16.c' object='libsrsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_16.c' object='libsrsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c
 
 libsrsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_17.c' object='libsrsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_17.c' object='libsrsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c
 
 libsrsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_18.c' object='libsrsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_18.c' object='libsrsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c
 
 libsrsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_19.c' object='libsrsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_19.c' object='libsrsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c
 
 libsrsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_20.c' object='libsrsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_20.c' object='libsrsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c
 
 libsrsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_21.c' object='libsrsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_21.c' object='libsrsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c
 
 libsrsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_22.c' object='libsrsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_22.c' object='libsrsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c
 
 libsrsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_23.c' object='libsrsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_23.c' object='libsrsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c
 
 libsrsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_24.c' object='libsrsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_24.c' object='libsrsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c
 
 libsrsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_25.c' object='libsrsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_25.c' object='libsrsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c
 
 libsrsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_26.c' object='libsrsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_26.c' object='libsrsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c
 
 libsrsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_27.c' object='libsrsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_27.c' object='libsrsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c
 
 libsrsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_28.c' object='libsrsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_28.c' object='libsrsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c
 
 libsrsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_29.c' object='libsrsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_29.c' object='libsrsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c
 
 libsrsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_30.c' object='libsrsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_30.c' object='libsrsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c
 
 libsrsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_31.c' object='libsrsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_31.c' object='libsrsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c
 
 libsrsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_32.c' object='libsrsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_32.c' object='libsrsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c
 
 libsrsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_33.c' object='libsrsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_33.c' object='libsrsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c
 
 libsrsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_34.c' object='libsrsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_34.c' object='libsrsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c
 
 libsrsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_35.c' object='libsrsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_35.c' object='libsrsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c
 
 libsrsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_36.c' object='libsrsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_36.c' object='libsrsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c
 
 libsrsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_37.c' object='libsrsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_37.c' object='libsrsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c
 
 libsrsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_38.c' object='libsrsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_38.c' object='libsrsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c
 
 libsrsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_39.c' object='libsrsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_39.c' object='libsrsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c
 
 libsrsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_40.c' object='libsrsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_40.c' object='libsrsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c
+
+libsrsinit_la-epsg_inlined_41.lo: epsg_inlined_41.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_41.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Tpo -c -o libsrsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_41.c' object='libsrsinit_la-epsg_inlined_41.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c
+
+libsrsinit_la-epsg_inlined_42.lo: epsg_inlined_42.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_42.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Tpo -c -o libsrsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_42.c' object='libsrsinit_la-epsg_inlined_42.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c
+
+libsrsinit_la-epsg_inlined_43.lo: epsg_inlined_43.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_43.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Tpo -c -o libsrsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_43.c' object='libsrsinit_la-epsg_inlined_43.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c
+
+libsrsinit_la-epsg_inlined_44.lo: epsg_inlined_44.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_44.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Tpo -c -o libsrsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_44.c' object='libsrsinit_la-epsg_inlined_44.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c
+
+libsrsinit_la-epsg_inlined_45.lo: epsg_inlined_45.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_45.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Tpo -c -o libsrsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_45.c' object='libsrsinit_la-epsg_inlined_45.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c
 
 libsrsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_wgs84_00.c' object='libsrsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_wgs84_00.c' object='libsrsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c
 
 libsrsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_wgs84_01.c' object='libsrsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_wgs84_01.c' object='libsrsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c
 
 libsrsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_prussian.c' object='libsrsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_prussian.c' object='libsrsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c
 
 libsrsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epsg_inlined_extra.c' object='libsrsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_extra.c' object='libsrsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c
+
+srsinit_la-srs_init.lo: srs_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/srsinit_la-srs_init.Tpo -c -o srsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-srs_init.Tpo $(DEPDIR)/srsinit_la-srs_init.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='srs_init.c' object='srsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c
+
+srsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_00.Tpo -c -o srsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_00.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_00.c' object='srsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c
+
+srsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_01.Tpo -c -o srsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_01.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_01.c' object='srsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c
+
+srsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_02.Tpo -c -o srsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_02.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_02.c' object='srsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c
+
+srsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_03.Tpo -c -o srsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_03.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_03.c' object='srsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c
+
+srsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_04.Tpo -c -o srsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_04.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_04.c' object='srsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c
+
+srsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_05.Tpo -c -o srsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_05.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_05.c' object='srsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c
+
+srsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_06.Tpo -c -o srsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_06.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_06.c' object='srsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c
+
+srsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_07.Tpo -c -o srsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_07.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_07.c' object='srsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c
+
+srsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_08.Tpo -c -o srsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_08.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_08.c' object='srsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c
+
+srsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_09.Tpo -c -o srsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_09.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_09.c' object='srsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c
+
+srsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_10.Tpo -c -o srsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_10.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_10.c' object='srsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c
+
+srsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_11.Tpo -c -o srsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_11.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_11.c' object='srsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c
+
+srsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_12.Tpo -c -o srsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_12.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_12.c' object='srsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c
+
+srsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_13.Tpo -c -o srsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_13.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_13.c' object='srsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c
+
+srsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_14.Tpo -c -o srsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_14.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_14.c' object='srsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c
+
+srsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_15.Tpo -c -o srsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_15.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_15.c' object='srsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c
+
+srsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_16.Tpo -c -o srsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_16.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_16.c' object='srsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c
+
+srsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_17.Tpo -c -o srsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_17.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_17.c' object='srsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c
+
+srsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_18.Tpo -c -o srsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_18.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_18.c' object='srsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c
+
+srsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_19.Tpo -c -o srsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_19.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_19.c' object='srsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c
+
+srsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_20.Tpo -c -o srsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_20.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_20.c' object='srsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c
+
+srsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_21.Tpo -c -o srsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_21.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_21.c' object='srsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c
+
+srsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_22.Tpo -c -o srsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_22.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_22.c' object='srsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c
+
+srsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_23.Tpo -c -o srsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_23.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_23.c' object='srsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c
+
+srsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_24.Tpo -c -o srsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_24.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_24.c' object='srsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c
+
+srsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_25.Tpo -c -o srsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_25.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_25.c' object='srsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c
+
+srsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_26.Tpo -c -o srsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_26.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_26.c' object='srsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c
+
+srsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_27.Tpo -c -o srsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_27.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_27.c' object='srsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c
+
+srsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_28.Tpo -c -o srsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_28.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_28.c' object='srsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c
+
+srsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_29.Tpo -c -o srsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_29.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_29.c' object='srsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c
+
+srsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_30.Tpo -c -o srsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_30.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_30.c' object='srsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c
+
+srsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_31.Tpo -c -o srsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_31.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_31.c' object='srsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c
+
+srsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_32.Tpo -c -o srsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_32.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_32.c' object='srsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c
+
+srsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_33.Tpo -c -o srsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_33.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_33.c' object='srsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c
+
+srsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_34.Tpo -c -o srsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_34.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_34.c' object='srsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c
+
+srsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_35.Tpo -c -o srsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_35.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_35.c' object='srsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c
+
+srsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_36.Tpo -c -o srsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_36.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_36.c' object='srsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c
+
+srsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_37.Tpo -c -o srsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_37.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_37.c' object='srsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c
+
+srsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_38.Tpo -c -o srsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_38.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_38.c' object='srsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c
+
+srsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_39.Tpo -c -o srsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_39.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_39.c' object='srsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c
+
+srsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_40.Tpo -c -o srsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_40.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_40.c' object='srsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c
+
+srsinit_la-epsg_inlined_41.lo: epsg_inlined_41.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_41.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_41.Tpo -c -o srsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_41.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_41.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_41.c' object='srsinit_la-epsg_inlined_41.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c
+
+srsinit_la-epsg_inlined_42.lo: epsg_inlined_42.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_42.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_42.Tpo -c -o srsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_42.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_42.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_42.c' object='srsinit_la-epsg_inlined_42.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c
+
+srsinit_la-epsg_inlined_43.lo: epsg_inlined_43.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_43.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_43.Tpo -c -o srsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_43.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_43.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_43.c' object='srsinit_la-epsg_inlined_43.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c
+
+srsinit_la-epsg_inlined_44.lo: epsg_inlined_44.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_44.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_44.Tpo -c -o srsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_44.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_44.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_44.c' object='srsinit_la-epsg_inlined_44.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c
+
+srsinit_la-epsg_inlined_45.lo: epsg_inlined_45.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_45.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_45.Tpo -c -o srsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_45.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_45.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_45.c' object='srsinit_la-epsg_inlined_45.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c
+
+srsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Tpo -c -o srsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_wgs84_00.c' object='srsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c
+
+srsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Tpo -c -o srsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_wgs84_01.c' object='srsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c
+
+srsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Tpo -c -o srsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_prussian.c' object='srsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c
+
+srsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_extra.Tpo -c -o srsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_extra.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='epsg_inlined_extra.c' object='srsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -813,14 +1391,13 @@ clean-libtool:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -841,31 +1418,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -881,12 +1440,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -898,15 +1452,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -915,9 +1465,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
 
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -1095,24 +1646,22 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	clean-noinstLTLIBRARIES cscopelist cscopelist-recursive ctags \
-	ctags-recursive distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/srsinit/epsg_inlined_00.c b/src/srsinit/epsg_inlined_00.c
index 624440f..0bc77ff 100644
--- a/src/srsinit/epsg_inlined_00.c
+++ b/src/srsinit/epsg_inlined_00.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -337,9 +337,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "CS[\"NAD27(CGQ77)\",DATUM[\"North_American_Datum_1927_CG");
     add_srs_wkt (p, 2,
-        "Q77\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389");
+        "Q77\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390");
     add_srs_wkt (p, 3,
-        "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66");
+        "06,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 4,
         "09\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
@@ -369,7 +369,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -401,7 +401,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -433,7 +433,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -465,7 +465,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -497,7 +497,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -529,7 +529,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -561,7 +561,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -593,7 +593,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "GQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHERO");
     add_srs_wkt (p, 2,
-        "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY");
+        "ID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY");
     add_srs_wkt (p, 3,
         "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIME");
     add_srs_wkt (p, 4,
@@ -625,7 +625,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark");
     add_srs_wkt (p, 2,
-        "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",");
+        "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
@@ -657,7 +657,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark");
     add_srs_wkt (p, 2,
-        "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",");
+        "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
@@ -689,7 +689,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -721,7 +721,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -753,7 +753,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -785,7 +785,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -817,7 +817,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -849,7 +849,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -881,7 +881,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -913,7 +913,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -943,7 +943,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -973,7 +973,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -1003,7 +1003,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -1033,7 +1033,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
@@ -1063,7 +1063,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -1093,7 +1093,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -1123,7 +1123,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -1153,7 +1153,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -1183,7 +1183,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
         "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -1237,9 +1237,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "_northing\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA");
-    add_srs_wkt (p, 13,
-        "ST],AUTHORITY[\"EPSG\",\"2036\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2036\"]]");
     p = add_epsg_def (filter, first, last, 2037, "epsg", 2037,
         "NAD83(CSRS98) / UTM zone 19N (deprecated)");
     add_proj4text (p, 0,
@@ -1503,9 +1501,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"2044\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2044\"]]");
     p = add_epsg_def (filter, first, last, 2045, "epsg", 2045,
         "Hanoi 1972 / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
@@ -1537,9 +1533,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"2045\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2045\"]]");
     p = add_epsg_def (filter, first, last, 2046, "epsg", 2046,
         "Hartebeesthoek94 / Lo15");
     add_proj4text (p, 0,
@@ -1903,21 +1897,21 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "ITY[\"EPSG\",\"4150\"]],PROJECTION[\"Hotine_Oblique_Merc");
     add_srs_wkt (p, 7,
-        "ator\"],PARAMETER[\"latitude_of_center\",46.952405555555");
+        "ator_Azimuth_Center\"],PARAMETER[\"latitude_of_center\",");
     add_srs_wkt (p, 8,
-        "56],PARAMETER[\"longitude_of_center\",7.439583333333333]");
+        "46.95240555555556],PARAMETER[\"longitude_of_center\",7.4");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_an");
+        "39583333333333],PARAMETER[\"azimuth\",90],PARAMETER[\"re");
     add_srs_wkt (p, 10,
-        "gle\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+        "ctified_grid_angle\",90],PARAMETER[\"scale_factor\",1],P");
     add_srs_wkt (p, 11,
-        "e_easting\",2600000],PARAMETER[\"false_northing\",120000");
+        "ARAMETER[\"false_easting\",2600000],PARAMETER[\"false_no");
     add_srs_wkt (p, 12,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "rthing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 13,
-        "Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"2056\"]");
+        "9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 14,
-        "]");
+        "EPSG\",\"2056\"]]");
     p = add_epsg_def (filter, first, last, 2057, "epsg", 2057,
         "Rassadiran / Nakhl e Taqi");
     add_proj4text (p, 0,
@@ -1945,23 +1939,23 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "2\"]],AUTHORITY[\"EPSG\",\"4153\"]],PROJECTION[\"Hotine_");
     add_srs_wkt (p, 7,
-        "Oblique_Mercator\"],PARAMETER[\"latitude_of_center\",27.");
+        "Oblique_Mercator_Azimuth_Center\"],PARAMETER[\"latitude_");
     add_srs_wkt (p, 8,
-        "51882880555555],PARAMETER[\"longitude_of_center\",52.603");
+        "of_center\",27.51882880555555],PARAMETER[\"longitude_of_");
     add_srs_wkt (p, 9,
-        "53916666667],PARAMETER[\"azimuth\",0.5716611944444444],P");
+        "center\",52.60353916666667],PARAMETER[\"azimuth\",0.5716");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"rectified_grid_angle\",0.5716611944444444],PA");
+        "611944444444],PARAMETER[\"rectified_grid_angle\",0.57166");
     add_srs_wkt (p, 11,
-        "RAMETER[\"scale_factor\",0.999895934],PARAMETER[\"false_");
+        "11944444444],PARAMETER[\"scale_factor\",0.999895934],PAR");
     add_srs_wkt (p, 12,
-        "easting\",658377.437],PARAMETER[\"false_northing\",30449");
+        "AMETER[\"false_easting\",658377.437],PARAMETER[\"false_n");
     add_srs_wkt (p, 13,
-        "69.194],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "orthing\",3044969.194],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 14,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 15,
-        "[\"EPSG\",\"2057\"]]");
+        "ORTH],AUTHORITY[\"EPSG\",\"2057\"]]");
     p = add_epsg_def (filter, first, last, 2058, "epsg", 2058,
         "ED50(ED77) / UTM zone 38N");
     add_proj4text (p, 0,
@@ -2097,7 +2091,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 1,
         " +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.1426695");
     add_proj4text (p, 2,
-        "62 +pm=madrid +units=m +no_defs");
+        "61 +pm=madrid +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Madrid 1870 (Madrid) / Spain\",GEOGCS[\"Madrid ");
     add_srs_wkt (p, 1,
@@ -2135,7 +2129,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"");
+        "rke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"");
     add_srs_wkt (p, 3,
         "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
@@ -2167,7 +2161,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"");
+        "rke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"");
     add_srs_wkt (p, 3,
         "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
@@ -2241,7 +2235,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "lon\",DATUM[\"Mount_Dillon\",SPHEROID[\"Clarke 1858\",63");
     add_srs_wkt (p, 2,
-        "78293.645208759,294.2606763692654,AUTHORITY[\"EPSG\",\"7");
+        "78293.645208759,294.2606763692569,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
         "007\"]],AUTHORITY[\"EPSG\",\"6157\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
@@ -2755,9 +2749,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2081\"]]");
+        "\",\"2081\"]]");
     p = add_epsg_def (filter, first, last, 2082, "epsg", 2082,
         "Pampa del Castillo / Argentina 2");
     add_proj4text (p, 0,
@@ -2789,9 +2783,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2082\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2082\"]]");
     p = add_epsg_def (filter, first, last, 2083, "epsg", 2083,
         "Hito XVIII 1963 / Argentina 2");
     add_proj4text (p, 0,
@@ -2823,9 +2815,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2083\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2083\"]]");
     p = add_epsg_def (filter, first, last, 2084, "epsg", 2084,
         "Hito XVIII 1963 / UTM zone 19S");
     add_proj4text (p, 0,
@@ -2871,7 +2861,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "7\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clark");
     add_srs_wkt (p, 2,
-        "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",");
+        "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
@@ -2889,9 +2879,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "R[\"false_northing\",280296.016],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"2085\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2085\"]]");
     p = add_epsg_def (filter, first, last, 2086, "epsg", 2086,
         "NAD27 / Cuba Sur (deprecated)");
     add_proj4text (p, 0,
@@ -2905,7 +2893,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
         "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
@@ -2923,9 +2911,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "sting\",500000],PARAMETER[\"false_northing\",229126.939]");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"2086\"]]");
+        "Y[\"EPSG\",\"2086\"]]");
     p = add_epsg_def (filter, first, last, 2087, "epsg", 2087,
         "ELD79 / TM 12 NE");
     add_proj4text (p, 0,
@@ -2971,7 +2959,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2");
     add_srs_wkt (p, 2,
-        "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-");
+        "93.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
         "263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIMEM[");
     add_srs_wkt (p, 4,
@@ -3087,9 +3075,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"2091\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2091\"]]");
     p = add_epsg_def (filter, first, last, 2092, "epsg", 2092,
         "South Yemen / Gauss Kruger zone 9 (deprecated)");
     add_proj4text (p, 0,
@@ -3121,9 +3107,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"2092\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2092\"]]");
     p = add_epsg_def (filter, first, last, 2093, "epsg", 2093,
         "Hanoi 1972 / GK 106 NE");
     add_proj4text (p, 0,
@@ -3155,9 +3139,7 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 12,
-        ",\"2093\"]]");
+        "]],AUTHORITY[\"EPSG\",\"2093\"]]");
     p = add_epsg_def (filter, first, last, 2094, "epsg", 2094,
         "WGS 72BE / TM 106 NE");
     add_proj4text (p, 0,
@@ -3251,9 +3233,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ng\",200000],PARAMETER[\"false_northing\",500000],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2096\"]]");
+        "\",\"2096\"]]");
     p = add_epsg_def (filter, first, last, 2097, "epsg", 2097,
         "Korean 1985 / Central Belt");
     add_proj4text (p, 0,
@@ -3281,9 +3263,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ting\",200000],PARAMETER[\"false_northing\",500000],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2097\"]]");
+        "PSG\",\"2097\"]]");
     p = add_epsg_def (filter, first, last, 2098, "epsg", 2098,
         "Korean 1985 / West Belt");
     add_proj4text (p, 0,
@@ -3311,9 +3293,9 @@ initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ng\",200000],PARAMETER[\"false_northing\",500000],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2098\"]]");
+        "\",\"2098\"]]");
     p = add_epsg_def (filter, first, last, 2099, "epsg", 2099,
         "Qatar 1948 / Qatar Grid");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_inlined_01.c b/src/srsinit/epsg_inlined_01.c
index e0bc615..08a3cd2 100644
--- a/src/srsinit/epsg_inlined_01.c
+++ b/src/srsinit/epsg_inlined_01.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -219,11 +219,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_easting\",400000],PARAMETER[\"false_northing\",800");
     add_srs_wkt (p, 11,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTH");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 13,
-        "EPSG\",\"2105\"]]");
+        "ORITY[\"EPSG\",\"2105\"]]");
     p = add_epsg_def (filter, first, last, 2106, "epsg", 2106,
         "NZGD2000 / Bay of Plenty 2000");
     add_proj4text (p, 0,
@@ -255,11 +253,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "alse_easting\",400000],PARAMETER[\"false_northing\",8000");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"2106\"]]");
+        "RITY[\"EPSG\",\"2106\"]]");
     p = add_epsg_def (filter, first, last, 2107, "epsg", 2107,
         "NZGD2000 / Poverty Bay 2000");
     add_proj4text (p, 0,
@@ -291,11 +287,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "e_easting\",400000],PARAMETER[\"false_northing\",800000]");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 13,
-        "\",\"2107\"]]");
+        "Y[\"EPSG\",\"2107\"]]");
     p = add_epsg_def (filter, first, last, 2108, "epsg", 2108,
         "NZGD2000 / Hawkes Bay 2000");
     add_proj4text (p, 0,
@@ -327,11 +321,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",400000],PARAMETER[\"false_northing\",800000],");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"2108\"]]");
+        "[\"EPSG\",\"2108\"]]");
     p = add_epsg_def (filter, first, last, 2109, "epsg", 2109,
         "NZGD2000 / Taranaki 2000");
     add_proj4text (p, 0,
@@ -363,11 +355,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",400000],PARAMETER[\"false_northing\",800000],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"2109\"]]");
+        "EPSG\",\"2109\"]]");
     p = add_epsg_def (filter, first, last, 2110, "epsg", 2110,
         "NZGD2000 / Tuhirangi 2000");
     add_proj4text (p, 0,
@@ -399,11 +389,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "400000],PARAMETER[\"false_northing\",800000],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NO");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "RTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2110\"]");
-    add_srs_wkt (p, 13,
-        "]");
+        "2110\"]]");
     p = add_epsg_def (filter, first, last, 2111, "epsg", 2111,
         "NZGD2000 / Wanganui 2000");
     add_proj4text (p, 0,
@@ -435,11 +423,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",400000],PARAMETER[\"false_northing\",800000],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"2111\"]]");
+        "EPSG\",\"2111\"]]");
     p = add_epsg_def (filter, first, last, 2112, "epsg", 2112,
         "NZGD2000 / Wairarapa 2000");
     add_proj4text (p, 0,
@@ -471,11 +457,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",400000],PARAMETER[\"false_northing\",800000],");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"2112\"]]");
+        "[\"EPSG\",\"2112\"]]");
     p = add_epsg_def (filter, first, last, 2113, "epsg", 2113,
         "NZGD2000 / Wellington 2000");
     add_proj4text (p, 0,
@@ -507,11 +491,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "easting\",400000],PARAMETER[\"false_northing\",800000],U");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"2113\"]]");
+        "\"EPSG\",\"2113\"]]");
     p = add_epsg_def (filter, first, last, 2114, "epsg", 2114,
         "NZGD2000 / Collingwood 2000");
     add_proj4text (p, 0,
@@ -543,11 +525,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "e_easting\",400000],PARAMETER[\"false_northing\",800000]");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 13,
-        "\",\"2114\"]]");
+        "Y[\"EPSG\",\"2114\"]]");
     p = add_epsg_def (filter, first, last, 2115, "epsg", 2115,
         "NZGD2000 / Nelson 2000");
     add_proj4text (p, 0,
@@ -579,11 +559,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "sting\",400000],PARAMETER[\"false_northing\",800000],UNI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "2115\"]]");
+        "EPSG\",\"2115\"]]");
     p = add_epsg_def (filter, first, last, 2116, "epsg", 2116,
         "NZGD2000 / Karamea 2000");
     add_proj4text (p, 0,
@@ -615,11 +593,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",400000],PARAMETER[\"false_northing\",800000],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"2116\"]]");
+        "EPSG\",\"2116\"]]");
     p = add_epsg_def (filter, first, last, 2117, "epsg", 2117,
         "NZGD2000 / Buller 2000");
     add_proj4text (p, 0,
@@ -651,11 +627,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "sting\",400000],PARAMETER[\"false_northing\",800000],UNI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "2117\"]]");
+        "EPSG\",\"2117\"]]");
     p = add_epsg_def (filter, first, last, 2118, "epsg", 2118,
         "NZGD2000 / Grey 2000");
     add_proj4text (p, 0,
@@ -687,11 +661,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",400000],PARAMETER[\"false_northing\",800000],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\"");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2118");
-    add_srs_wkt (p, 13,
-        "\"]]");
+        "\",\"2118\"]]");
     p = add_epsg_def (filter, first, last, 2119, "epsg", 2119,
         "NZGD2000 / Amuri 2000");
     add_proj4text (p, 0,
@@ -723,9 +695,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2119");
     add_srs_wkt (p, 12,
-        "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2119\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2120, "epsg", 2120,
         "NZGD2000 / Marlborough 2000");
     add_proj4text (p, 0,
@@ -757,11 +729,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "e_easting\",400000],PARAMETER[\"false_northing\",800000]");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 13,
-        "\",\"2120\"]]");
+        "Y[\"EPSG\",\"2120\"]]");
     p = add_epsg_def (filter, first, last, 2121, "epsg", 2121,
         "NZGD2000 / Hokitika 2000");
     add_proj4text (p, 0,
@@ -793,11 +763,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",400000],PARAMETER[\"false_northing\",800000],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"2121\"]]");
+        "EPSG\",\"2121\"]]");
     p = add_epsg_def (filter, first, last, 2122, "epsg", 2122,
         "NZGD2000 / Okarito 2000");
     add_proj4text (p, 0,
@@ -829,9 +797,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",800000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2122\"]]");
+        "22\"]]");
     p = add_epsg_def (filter, first, last, 2123, "epsg", 2123,
         "NZGD2000 / Jacksons Bay 2000");
     add_proj4text (p, 0,
@@ -863,11 +831,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "e_easting\",400000],PARAMETER[\"false_northing\",800000]");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 13,
-        "\",\"2123\"]]");
+        "Y[\"EPSG\",\"2123\"]]");
     p = add_epsg_def (filter, first, last, 2124, "epsg", 2124,
         "NZGD2000 / Mount Pleasant 2000");
     add_proj4text (p, 0,
@@ -899,11 +865,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "alse_easting\",400000],PARAMETER[\"false_northing\",8000");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"2124\"]]");
+        "RITY[\"EPSG\",\"2124\"]]");
     p = add_epsg_def (filter, first, last, 2125, "epsg", 2125,
         "NZGD2000 / Gawler 2000");
     add_proj4text (p, 0,
@@ -935,11 +899,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "sting\",400000],PARAMETER[\"false_northing\",800000],UNI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "2125\"]]");
+        "EPSG\",\"2125\"]]");
     p = add_epsg_def (filter, first, last, 2126, "epsg", 2126,
         "NZGD2000 / Timaru 2000");
     add_proj4text (p, 0,
@@ -971,11 +933,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "sting\",400000],PARAMETER[\"false_northing\",800000],UNI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "2126\"]]");
+        "EPSG\",\"2126\"]]");
     p = add_epsg_def (filter, first, last, 2127, "epsg", 2127,
         "NZGD2000 / Lindis Peak 2000");
     add_proj4text (p, 0,
@@ -1007,9 +967,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2127\"]");
     add_srs_wkt (p, 12,
-        "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2127\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2128, "epsg", 2128,
         "NZGD2000 / Mount Nicholas 2000");
     add_proj4text (p, 0,
@@ -1041,11 +1001,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "alse_easting\",400000],PARAMETER[\"false_northing\",8000");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"2128\"]]");
+        "RITY[\"EPSG\",\"2128\"]]");
     p = add_epsg_def (filter, first, last, 2129, "epsg", 2129,
         "NZGD2000 / Mount York 2000");
     add_proj4text (p, 0,
@@ -1077,11 +1035,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",400000],PARAMETER[\"false_northing\",800000],");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"2129\"]]");
+        "[\"EPSG\",\"2129\"]]");
     p = add_epsg_def (filter, first, last, 2130, "epsg", 2130,
         "NZGD2000 / Observation Point 2000");
     add_proj4text (p, 0,
@@ -1113,11 +1069,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_easting\",400000],PARAMETER[\"false_northing\",800");
     add_srs_wkt (p, 11,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTH");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 13,
-        "EPSG\",\"2130\"]]");
+        "ORITY[\"EPSG\",\"2130\"]]");
     p = add_epsg_def (filter, first, last, 2131, "epsg", 2131,
         "NZGD2000 / North Taieri 2000");
     add_proj4text (p, 0,
@@ -1149,11 +1103,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",400000],PARAMETER[\"false_northing\",800000],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"2131\"]]");
+        "EPSG\",\"2131\"]]");
     p = add_epsg_def (filter, first, last, 2132, "epsg", 2132,
         "NZGD2000 / Bluff 2000");
     add_proj4text (p, 0,
@@ -1185,9 +1137,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2132\"");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2132\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2133, "epsg", 2133,
         "NZGD2000 / UTM zone 58S");
     add_proj4text (p, 0,
@@ -1363,7 +1315,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "CGQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHER");
     add_srs_wkt (p, 2,
-        "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT");
+        "OID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORIT");
     add_srs_wkt (p, 3,
         "Y[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIM");
     add_srs_wkt (p, 4,
@@ -1965,7 +1917,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294");
     add_srs_wkt (p, 3,
-        ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11");
+        ".9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11");
     add_srs_wkt (p, 4,
         "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[");
     add_srs_wkt (p, 5,
@@ -2353,9 +2305,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21");
     add_srs_wkt (p, 12,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2166\"]]");
+        "66\"]]");
     p = add_epsg_def (filter, first, last, 2167, "epsg", 2167,
         "Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)");
     add_proj4text (p, 0,
@@ -2387,9 +2339,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21");
     add_srs_wkt (p, 12,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2167\"]]");
+        "67\"]]");
     p = add_epsg_def (filter, first, last, 2168, "epsg", 2168,
         "Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)");
     add_proj4text (p, 0,
@@ -2421,9 +2373,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21");
     add_srs_wkt (p, 12,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2168\"]]");
+        "68\"]]");
     p = add_epsg_def (filter, first, last, 2169, "epsg", 2169,
         "Luxembourg 1930 / Gauss");
     add_proj4text (p, 0,
@@ -2459,9 +2411,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "ETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 13,
-        "],AUTHORITY[\"EPSG\",\"2169\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2169\"]]");
     p = add_epsg_def (filter, first, last, 2170, "epsg", 2170,
         "MGI / Slovenia Grid (deprecated)");
     add_proj4text (p, 0,
@@ -2493,9 +2443,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 12,
-        "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2");
-    add_srs_wkt (p, 13,
-        "170\"]]");
+        "UTHORITY[\"EPSG\",\"2170\"]]");
     p = add_epsg_def (filter, first, last, 2171, "epsg", 2171,
         "Pulkovo 1942(58) / Poland zone I (deprecated)");
     add_proj4text (p, 0,
@@ -2531,9 +2479,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "PARAMETER[\"false_northing\",5647000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2171\"");
     add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"2171\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2172, "epsg", 2172,
         "Pulkovo 1942(58) / Poland zone II");
     add_proj4text (p, 0,
@@ -2569,9 +2517,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "AMETER[\"false_northing\",5806000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 13,
-        "AST],AUTHORITY[\"EPSG\",\"2172\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2172\"]]");
     p = add_epsg_def (filter, first, last, 2173, "epsg", 2173,
         "Pulkovo 1942(58) / Poland zone III");
     add_proj4text (p, 0,
@@ -2607,9 +2553,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "PARAMETER[\"false_northing\",5999000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2173\"");
     add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"2173\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2174, "epsg", 2174,
         "Pulkovo 1942(58) / Poland zone IV");
     add_proj4text (p, 0,
@@ -2645,9 +2591,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "AMETER[\"false_northing\",5627000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 13,
-        "AST],AUTHORITY[\"EPSG\",\"2174\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2174\"]]");
     p = add_epsg_def (filter, first, last, 2175, "epsg", 2175,
         "Pulkovo 1942(58) / Poland zone V");
     add_proj4text (p, 0,
@@ -2681,9 +2625,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "thing\",-4700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 13,
-        "EPSG\",\"2175\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"2175\"]]");
     p = add_epsg_def (filter, first, last, 2176, "epsg", 2176,
         "ETRS89 / Poland CS2000 zone 5");
     add_proj4text (p, 0,
@@ -2715,9 +2657,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2176");
     add_srs_wkt (p, 12,
-        "y\",EAST],AUTHORITY[\"EPSG\",\"2176\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2177, "epsg", 2177,
         "ETRS89 / Poland CS2000 zone 6");
     add_proj4text (p, 0,
@@ -2749,9 +2691,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2177");
     add_srs_wkt (p, 12,
-        "y\",EAST],AUTHORITY[\"EPSG\",\"2177\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2178, "epsg", 2178,
         "ETRS89 / Poland CS2000 zone 7");
     add_proj4text (p, 0,
@@ -2783,9 +2725,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2178");
     add_srs_wkt (p, 12,
-        "y\",EAST],AUTHORITY[\"EPSG\",\"2178\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2179, "epsg", 2179,
         "ETRS89 / Poland CS2000 zone 8");
     add_proj4text (p, 0,
@@ -2817,9 +2759,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2179");
     add_srs_wkt (p, 12,
-        "y\",EAST],AUTHORITY[\"EPSG\",\"2179\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2180, "epsg", 2180,
         "ETRS89 / Poland CS92");
     add_proj4text (p, 0,
@@ -2851,9 +2793,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "METER[\"false_northing\",-5300000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2180\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2180\"]]");
     p = add_epsg_def (filter, first, last, 2188, "epsg", 2188,
         "Azores Occidental 1939 / UTM zone 25N");
     add_proj4text (p, 0,
@@ -2987,7 +2927,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 12,
         "G\",\"2191\"]]");
     p = add_epsg_def (filter, first, last, 2192, "epsg", 2192,
-        "ED50 / France EuroLambert");
+        "ED50 / France EuroLambert (deprecated)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.3372291666666");
     add_proj4text (p, 1,
@@ -2995,31 +2935,33 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "+towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / France EuroLambert\",GEOGCS[\"ED50\",DAT");
+        "PROJCS[\"ED50 / France EuroLambert (deprecated)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "UM[\"European_Datum_1950\",SPHEROID[\"International 1924");
+        "[\"ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Inter");
     add_srs_wkt (p, 2,
-        "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87");
+        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
     add_srs_wkt (p, 3,
-        ",-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[");
+        "],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"623");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Lambert_Confor");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"L");
     add_srs_wkt (p, 7,
-        "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.8],");
+        "ambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",2.337229166666667],PARAME");
+        "igin\",46.8],PARAMETER[\"central_meridian\",2.3372291666");
     add_srs_wkt (p, 9,
-        "TER[\"scale_factor\",0.99987742],PARAMETER[\"false_easti");
+        "66667],PARAMETER[\"scale_factor\",0.99987742],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ng\",600000],PARAMETER[\"false_northing\",2200000],UNIT[");
+        "\"false_easting\",600000],PARAMETER[\"false_northing\",2");
     add_srs_wkt (p, 11,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+        "200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 12,
-        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2192\"]]");
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2");
+    add_srs_wkt (p, 13,
+        "192\"]]");
     p = add_epsg_def (filter, first, last, 2193, "epsg", 2193,
         "NZGD2000 / New Zealand Transverse Mercator 2000");
     add_proj4text (p, 0,
@@ -3051,11 +2993,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",1600000],PARAMETER[\"false_northing\",10000000],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"2193\"]]");
+        "EPSG\",\"2193\"]]");
     p = add_epsg_def (filter, first, last, 2194, "epsg", 2194,
         "American Samoa 1962 / American Samoa Lambert (deprecated)");
     add_proj4text (p, 0,
@@ -3073,7 +3013,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294");
     add_srs_wkt (p, 3,
-        ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11");
+        ".9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11");
     add_srs_wkt (p, 4,
         "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[");
     add_srs_wkt (p, 5,
@@ -3255,11 +3195,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ER[\"false_easting\",4500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 10,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 11,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"219");
-    add_srs_wkt (p, 12,
-        "9\"]]");
+        "HORITY[\"EPSG\",\"2199\"]]");
     p = add_epsg_def (filter, first, last, 2200, "epsg", 2200,
         "ATS77 / New Brunswick Stereographic (ATS77)");
     add_proj4text (p, 0,
@@ -3291,11 +3229,9 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",300000],PARAMETER[\"false_northing\",800000],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2200\"");
-    add_srs_wkt (p, 13,
-        "]]");
+        "\"2200\"]]");
     p = add_epsg_def (filter, first, last, 2201, "epsg", 2201,
         "REGVEN / UTM zone 18N");
     add_proj4text (p, 0,
@@ -3405,7 +3341,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "rth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",63782");
     add_srs_wkt (p, 2,
-        "06.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUT");
+        "06.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUT");
     add_srs_wkt (p, 3,
         "HORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
@@ -3495,9 +3431,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"2206\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"2206\"]]");
     p = add_epsg_def (filter, first, last, 2207, "epsg", 2207,
         "ED50 / 3-degree Gauss-Kruger zone 10");
     add_proj4text (p, 0,
@@ -3529,9 +3463,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2207\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2207\"]]");
     p = add_epsg_def (filter, first, last, 2208, "epsg", 2208,
         "ED50 / 3-degree Gauss-Kruger zone 11");
     add_proj4text (p, 0,
@@ -3563,9 +3495,7 @@ initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2208\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2208\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_02.c b/src/srsinit/epsg_inlined_02.c
index 6d65a9f..fc9ac22 100644
--- a/src/srsinit/epsg_inlined_02.c
+++ b/src/srsinit/epsg_inlined_02.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -83,9 +83,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2209\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2209\"]]");
     p = add_epsg_def (filter, first, last, 2210, "epsg", 2210,
         "ED50 / 3-degree Gauss-Kruger zone 13");
     add_proj4text (p, 0,
@@ -117,9 +115,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2210\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2210\"]]");
     p = add_epsg_def (filter, first, last, 2211, "epsg", 2211,
         "ED50 / 3-degree Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -151,9 +147,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2211\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2211\"]]");
     p = add_epsg_def (filter, first, last, 2212, "epsg", 2212,
         "ED50 / 3-degree Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -185,9 +179,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"2212\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"2212\"]]");
     p = add_epsg_def (filter, first, last, 2213, "epsg", 2213,
         "ETRS89 / TM 30 NE");
     add_proj4text (p, 0,
@@ -267,7 +259,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "62\",DATUM[\"Manoca_1962\",SPHEROID[\"Clarke 1880 (IGN)\"");
     add_srs_wkt (p, 2,
-        ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"");
+        ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"");
     add_srs_wkt (p, 3,
         "]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
@@ -3323,7 +3315,7 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1858\",6378293.645208759,294.2606763692654,AUTHORITY");
+        "rke 1858\",6378293.645208759,294.2606763692569,AUTHORITY");
     add_srs_wkt (p, 3,
         "[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0");
     add_srs_wkt (p, 4,
@@ -3511,9 +3503,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2319\"]]");
+        "PSG\",\"2319\"]]");
     p = add_epsg_def (filter, first, last, 2320, "epsg", 2320,
         "ED50 / TM30");
     add_proj4text (p, 0,
@@ -3543,9 +3535,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2320\"]]");
+        "PSG\",\"2320\"]]");
     p = add_epsg_def (filter, first, last, 2321, "epsg", 2321,
         "ED50 / TM33");
     add_proj4text (p, 0,
@@ -3575,9 +3567,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2321\"]]");
+        "PSG\",\"2321\"]]");
     p = add_epsg_def (filter, first, last, 2322, "epsg", 2322,
         "ED50 / TM36");
     add_proj4text (p, 0,
@@ -3607,9 +3599,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2322\"]]");
+        "PSG\",\"2322\"]]");
     p = add_epsg_def (filter, first, last, 2323, "epsg", 2323,
         "ED50 / TM39");
     add_proj4text (p, 0,
@@ -3639,9 +3631,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2323\"]]");
+        "PSG\",\"2323\"]]");
     p = add_epsg_def (filter, first, last, 2324, "epsg", 2324,
         "ED50 / TM42");
     add_proj4text (p, 0,
@@ -3671,9 +3663,9 @@ initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2324\"]]");
+        "PSG\",\"2324\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_03.c b/src/srsinit/epsg_inlined_03.c
index 217f758..5c19b68 100644
--- a/src/srsinit/epsg_inlined_03.c
+++ b/src/srsinit/epsg_inlined_03.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -81,9 +81,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2325\"]]");
+        "PSG\",\"2325\"]]");
     p = add_epsg_def (filter, first, last, 2326, "epsg", 2326,
         "Hong Kong 1980 Grid System");
     add_proj4text (p, 0,
@@ -119,9 +119,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "05],PARAMETER[\"false_northing\",819069.8],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 13,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2326\"]]");
+        "26\"]]");
     p = add_epsg_def (filter, first, last, 2327, "epsg", 2327,
         "Xian 1980 / Gauss-Kruger zone 13");
     add_proj4text (p, 0,
@@ -149,9 +149,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 10,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 11,
-        "ST],AUTHORITY[\"EPSG\",\"2327\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2327\"]]");
     p = add_epsg_def (filter, first, last, 2328, "epsg", 2328,
         "Xian 1980 / Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -179,9 +177,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 10,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 11,
-        "ST],AUTHORITY[\"EPSG\",\"2328\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2328\"]]");
     p = add_epsg_def (filter, first, last, 2329, "epsg", 2329,
         "Xian 1980 / Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -209,9 +205,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 10,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 11,
-        "ST],AUTHORITY[\"EPSG\",\"2329\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2329\"]]");
     p = add_epsg_def (filter, first, last, 2330, "epsg", 2330,
         "Xian 1980 / Gauss-Kruger zone 16");
     add_proj4text (p, 0,
@@ -239,9 +233,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 10,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 11,
-        "ST],AUTHORITY[\"EPSG\",\"2330\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2330\"]]");
     p = add_epsg_def (filter, first, last, 2331, "epsg", 2331,
         "Xian 1980 / Gauss-Kruger zone 17");
     add_proj4text (p, 0,
@@ -269,9 +261,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 10,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 11,
-        "ST],AUTHORITY[\"EPSG\",\"2331\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2331\"]]");
     p = add_epsg_def (filter, first, last, 2332, "epsg", 2332,
         "Xian 1980 / Gauss-Kruger zone 18");
     add_proj4text (p, 0,
@@ -299,9 +289,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 11,
-        "AST],AUTHORITY[\"EPSG\",\"2332\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2332\"]]");
     p = add_epsg_def (filter, first, last, 2333, "epsg", 2333,
         "Xian 1980 / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
@@ -329,9 +317,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 11,
-        "AST],AUTHORITY[\"EPSG\",\"2333\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2333\"]]");
     p = add_epsg_def (filter, first, last, 2334, "epsg", 2334,
         "Xian 1980 / Gauss-Kruger zone 20");
     add_proj4text (p, 0,
@@ -359,9 +345,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 11,
-        "AST],AUTHORITY[\"EPSG\",\"2334\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2334\"]]");
     p = add_epsg_def (filter, first, last, 2335, "epsg", 2335,
         "Xian 1980 / Gauss-Kruger zone 21");
     add_proj4text (p, 0,
@@ -389,9 +373,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 11,
-        "AST],AUTHORITY[\"EPSG\",\"2335\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2335\"]]");
     p = add_epsg_def (filter, first, last, 2336, "epsg", 2336,
         "Xian 1980 / Gauss-Kruger zone 22");
     add_proj4text (p, 0,
@@ -419,9 +401,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 11,
-        "AST],AUTHORITY[\"EPSG\",\"2336\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2336\"]]");
     p = add_epsg_def (filter, first, last, 2337, "epsg", 2337,
         "Xian 1980 / Gauss-Kruger zone 23");
     add_proj4text (p, 0,
@@ -449,9 +429,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 11,
-        "AST],AUTHORITY[\"EPSG\",\"2337\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2337\"]]");
     p = add_epsg_def (filter, first, last, 2338, "epsg", 2338,
         "Xian 1980 / Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -479,9 +457,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"2338\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2338\"]]");
     p = add_epsg_def (filter, first, last, 2339, "epsg", 2339,
         "Xian 1980 / Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -509,9 +485,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"2339\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2339\"]]");
     p = add_epsg_def (filter, first, last, 2340, "epsg", 2340,
         "Xian 1980 / Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -539,9 +513,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"2340\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2340\"]]");
     p = add_epsg_def (filter, first, last, 2341, "epsg", 2341,
         "Xian 1980 / Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -569,9 +541,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"2341\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2341\"]]");
     p = add_epsg_def (filter, first, last, 2342, "epsg", 2342,
         "Xian 1980 / Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -599,9 +569,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"2342\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2342\"]]");
     p = add_epsg_def (filter, first, last, 2343, "epsg", 2343,
         "Xian 1980 / Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -629,9 +597,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"2343\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2343\"]]");
     p = add_epsg_def (filter, first, last, 2344, "epsg", 2344,
         "Xian 1980 / Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -659,9 +625,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"2344\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2344\"]]");
     p = add_epsg_def (filter, first, last, 2345, "epsg", 2345,
         "Xian 1980 / Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -689,9 +653,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"2345\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2345\"]]");
     p = add_epsg_def (filter, first, last, 2346, "epsg", 2346,
         "Xian 1980 / Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -719,9 +681,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"2346\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2346\"]]");
     p = add_epsg_def (filter, first, last, 2347, "epsg", 2347,
         "Xian 1980 / Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -749,9 +709,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"2347\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2347\"]]");
     p = add_epsg_def (filter, first, last, 2348, "epsg", 2348,
         "Xian 1980 / Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -779,9 +737,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"2348\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2348\"]]");
     p = add_epsg_def (filter, first, last, 2349, "epsg", 2349,
         "Xian 1980 / 3-degree Gauss-Kruger zone 25");
     add_proj4text (p, 0,
@@ -809,9 +765,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "25500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2349\"]]");
+        "49\"]]");
     p = add_epsg_def (filter, first, last, 2350, "epsg", 2350,
         "Xian 1980 / 3-degree Gauss-Kruger zone 26");
     add_proj4text (p, 0,
@@ -839,9 +795,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "26500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2350\"]]");
+        "50\"]]");
     p = add_epsg_def (filter, first, last, 2351, "epsg", 2351,
         "Xian 1980 / 3-degree Gauss-Kruger zone 27");
     add_proj4text (p, 0,
@@ -869,9 +825,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "27500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2351\"]]");
+        "51\"]]");
     p = add_epsg_def (filter, first, last, 2352, "epsg", 2352,
         "Xian 1980 / 3-degree Gauss-Kruger zone 28");
     add_proj4text (p, 0,
@@ -899,9 +855,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "28500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2352\"]]");
+        "52\"]]");
     p = add_epsg_def (filter, first, last, 2353, "epsg", 2353,
         "Xian 1980 / 3-degree Gauss-Kruger zone 29");
     add_proj4text (p, 0,
@@ -929,9 +885,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "29500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2353\"]]");
+        "53\"]]");
     p = add_epsg_def (filter, first, last, 2354, "epsg", 2354,
         "Xian 1980 / 3-degree Gauss-Kruger zone 30");
     add_proj4text (p, 0,
@@ -959,9 +915,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "30500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2354\"]]");
+        "54\"]]");
     p = add_epsg_def (filter, first, last, 2355, "epsg", 2355,
         "Xian 1980 / 3-degree Gauss-Kruger zone 31");
     add_proj4text (p, 0,
@@ -989,9 +945,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2355\"]]");
+        "55\"]]");
     p = add_epsg_def (filter, first, last, 2356, "epsg", 2356,
         "Xian 1980 / 3-degree Gauss-Kruger zone 32");
     add_proj4text (p, 0,
@@ -1019,9 +975,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2356\"]]");
+        "56\"]]");
     p = add_epsg_def (filter, first, last, 2357, "epsg", 2357,
         "Xian 1980 / 3-degree Gauss-Kruger zone 33");
     add_proj4text (p, 0,
@@ -1049,9 +1005,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "33500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2357\"]]");
+        "57\"]]");
     p = add_epsg_def (filter, first, last, 2358, "epsg", 2358,
         "Xian 1980 / 3-degree Gauss-Kruger zone 34");
     add_proj4text (p, 0,
@@ -1079,9 +1035,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",34500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2358\"]]");
+        "58\"]]");
     p = add_epsg_def (filter, first, last, 2359, "epsg", 2359,
         "Xian 1980 / 3-degree Gauss-Kruger zone 35");
     add_proj4text (p, 0,
@@ -1109,9 +1065,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",35500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2359\"]]");
+        "59\"]]");
     p = add_epsg_def (filter, first, last, 2360, "epsg", 2360,
         "Xian 1980 / 3-degree Gauss-Kruger zone 36");
     add_proj4text (p, 0,
@@ -1139,9 +1095,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",36500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2360\"]]");
+        "60\"]]");
     p = add_epsg_def (filter, first, last, 2361, "epsg", 2361,
         "Xian 1980 / 3-degree Gauss-Kruger zone 37");
     add_proj4text (p, 0,
@@ -1169,9 +1125,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",37500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2361\"]]");
+        "61\"]]");
     p = add_epsg_def (filter, first, last, 2362, "epsg", 2362,
         "Xian 1980 / 3-degree Gauss-Kruger zone 38");
     add_proj4text (p, 0,
@@ -1199,9 +1155,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",38500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2362\"]]");
+        "62\"]]");
     p = add_epsg_def (filter, first, last, 2363, "epsg", 2363,
         "Xian 1980 / 3-degree Gauss-Kruger zone 39");
     add_proj4text (p, 0,
@@ -1229,9 +1185,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",39500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2363\"]]");
+        "63\"]]");
     p = add_epsg_def (filter, first, last, 2364, "epsg", 2364,
         "Xian 1980 / 3-degree Gauss-Kruger zone 40");
     add_proj4text (p, 0,
@@ -1259,9 +1215,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",40500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2364\"]]");
+        "64\"]]");
     p = add_epsg_def (filter, first, last, 2365, "epsg", 2365,
         "Xian 1980 / 3-degree Gauss-Kruger zone 41");
     add_proj4text (p, 0,
@@ -1289,9 +1245,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",41500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2365\"]]");
+        "65\"]]");
     p = add_epsg_def (filter, first, last, 2366, "epsg", 2366,
         "Xian 1980 / 3-degree Gauss-Kruger zone 42");
     add_proj4text (p, 0,
@@ -1319,9 +1275,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",42500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2366\"]]");
+        "66\"]]");
     p = add_epsg_def (filter, first, last, 2367, "epsg", 2367,
         "Xian 1980 / 3-degree Gauss-Kruger zone 43");
     add_proj4text (p, 0,
@@ -1349,9 +1305,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",43500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2367\"]]");
+        "67\"]]");
     p = add_epsg_def (filter, first, last, 2368, "epsg", 2368,
         "Xian 1980 / 3-degree Gauss-Kruger zone 44");
     add_proj4text (p, 0,
@@ -1379,9 +1335,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",44500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2368\"]]");
+        "68\"]]");
     p = add_epsg_def (filter, first, last, 2369, "epsg", 2369,
         "Xian 1980 / 3-degree Gauss-Kruger zone 45");
     add_proj4text (p, 0,
@@ -1409,9 +1365,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",45500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"23");
     add_srs_wkt (p, 11,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2369\"]]");
+        "69\"]]");
     p = add_epsg_def (filter, first, last, 2370, "epsg", 2370,
         "Xian 1980 / 3-degree Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -1439,9 +1395,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2370");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2370\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2371, "epsg", 2371,
         "Xian 1980 / 3-degree Gauss-Kruger CM 78E");
     add_proj4text (p, 0,
@@ -1469,9 +1425,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2371");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2371\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2372, "epsg", 2372,
         "Xian 1980 / 3-degree Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -1499,9 +1455,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2372");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2372\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2373, "epsg", 2373,
         "Xian 1980 / 3-degree Gauss-Kruger CM 84E");
     add_proj4text (p, 0,
@@ -1529,9 +1485,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2373");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2373\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2374, "epsg", 2374,
         "Xian 1980 / 3-degree Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -1559,9 +1515,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2374");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2374\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2375, "epsg", 2375,
         "Xian 1980 / 3-degree Gauss-Kruger CM 90E");
     add_proj4text (p, 0,
@@ -1589,9 +1545,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2375");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2375\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2376, "epsg", 2376,
         "Xian 1980 / 3-degree Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -1619,9 +1575,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2376");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2376\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2377, "epsg", 2377,
         "Xian 1980 / 3-degree Gauss-Kruger CM 96E");
     add_proj4text (p, 0,
@@ -1649,9 +1605,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2377");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2377\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2378, "epsg", 2378,
         "Xian 1980 / 3-degree Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -1679,9 +1635,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2378");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2378\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2379, "epsg", 2379,
         "Xian 1980 / 3-degree Gauss-Kruger CM 102E");
     add_proj4text (p, 0,
@@ -1709,9 +1665,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"237");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2379\"]]");
+        "9\"]]");
     p = add_epsg_def (filter, first, last, 2380, "epsg", 2380,
         "Xian 1980 / 3-degree Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -1739,9 +1695,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2380\"]]");
+        "0\"]]");
     p = add_epsg_def (filter, first, last, 2381, "epsg", 2381,
         "Xian 1980 / 3-degree Gauss-Kruger CM 108E");
     add_proj4text (p, 0,
@@ -1769,9 +1725,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2381\"]]");
+        "1\"]]");
     p = add_epsg_def (filter, first, last, 2382, "epsg", 2382,
         "Xian 1980 / 3-degree Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -1799,9 +1755,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2382\"]]");
+        "2\"]]");
     p = add_epsg_def (filter, first, last, 2383, "epsg", 2383,
         "Xian 1980 / 3-degree Gauss-Kruger CM 114E");
     add_proj4text (p, 0,
@@ -1829,9 +1785,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2383\"]]");
+        "3\"]]");
     p = add_epsg_def (filter, first, last, 2384, "epsg", 2384,
         "Xian 1980 / 3-degree Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -1859,9 +1815,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2384\"]]");
+        "4\"]]");
     p = add_epsg_def (filter, first, last, 2385, "epsg", 2385,
         "Xian 1980 / 3-degree Gauss-Kruger CM 120E");
     add_proj4text (p, 0,
@@ -1889,9 +1845,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2385\"]]");
+        "5\"]]");
     p = add_epsg_def (filter, first, last, 2386, "epsg", 2386,
         "Xian 1980 / 3-degree Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -1919,9 +1875,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2386\"]]");
+        "6\"]]");
     p = add_epsg_def (filter, first, last, 2387, "epsg", 2387,
         "Xian 1980 / 3-degree Gauss-Kruger CM 126E");
     add_proj4text (p, 0,
@@ -1949,9 +1905,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2387\"]]");
+        "7\"]]");
     p = add_epsg_def (filter, first, last, 2388, "epsg", 2388,
         "Xian 1980 / 3-degree Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -1979,9 +1935,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2388\"]]");
+        "8\"]]");
     p = add_epsg_def (filter, first, last, 2389, "epsg", 2389,
         "Xian 1980 / 3-degree Gauss-Kruger CM 132E");
     add_proj4text (p, 0,
@@ -2009,9 +1965,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"238");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2389\"]]");
+        "9\"]]");
     p = add_epsg_def (filter, first, last, 2390, "epsg", 2390,
         "Xian 1980 / 3-degree Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -2039,9 +1995,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"239");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2390\"]]");
+        "0\"]]");
     p = add_epsg_def (filter, first, last, 2391, "epsg", 2391,
         "KKJ / Finland zone 1");
     add_proj4text (p, 0,
@@ -2073,9 +2029,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2391\"]]");
+        "\",\"2391\"]]");
     p = add_epsg_def (filter, first, last, 2392, "epsg", 2392,
         "KKJ / Finland zone 2");
     add_proj4text (p, 0,
@@ -2107,9 +2063,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2392\"]]");
+        "\",\"2392\"]]");
     p = add_epsg_def (filter, first, last, 2393, "epsg", 2393,
         "KKJ / Finland Uniform Coordinate System");
     add_proj4text (p, 0,
@@ -2143,9 +2099,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"2393\"]]");
+        "]],AUTHORITY[\"EPSG\",\"2393\"]]");
     p = add_epsg_def (filter, first, last, 2394, "epsg", 2394,
         "KKJ / Finland zone 4");
     add_proj4text (p, 0,
@@ -2177,9 +2131,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2394\"]]");
+        "\",\"2394\"]]");
     p = add_epsg_def (filter, first, last, 2395, "epsg", 2395,
         "South Yemen / Gauss-Kruger zone 8");
     add_proj4text (p, 0,
@@ -2211,9 +2165,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 12,
-        "G\",\"2395\"]]");
+        "1\"]],AUTHORITY[\"EPSG\",\"2395\"]]");
     p = add_epsg_def (filter, first, last, 2396, "epsg", 2396,
         "South Yemen / Gauss-Kruger zone 9");
     add_proj4text (p, 0,
@@ -2245,9 +2197,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 12,
-        "G\",\"2396\"]]");
+        "1\"]],AUTHORITY[\"EPSG\",\"2396\"]]");
     p = add_epsg_def (filter, first, last, 2397, "epsg", 2397,
         "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3");
     add_proj4text (p, 0,
@@ -2279,9 +2229,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2397\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2397\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2398, "epsg", 2398,
         "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -2313,9 +2263,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2398\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2398\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2399, "epsg", 2399,
         "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5");
     add_proj4text (p, 0,
@@ -2347,9 +2297,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2399\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2399\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2400, "epsg", 2400,
         "RT90 2.5 gon W (deprecated)");
     add_proj4text (p, 0,
@@ -2381,9 +2331,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_easting\",1500000],PARAMETER[\"false_northing\",0]");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2400\"]]");
+        "Y[\"EPSG\",\"2400\"]]");
     p = add_epsg_def (filter, first, last, 2401, "epsg", 2401,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 25");
     add_proj4text (p, 0,
@@ -2415,9 +2365,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2401\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2401\"]]");
     p = add_epsg_def (filter, first, last, 2402, "epsg", 2402,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 26");
     add_proj4text (p, 0,
@@ -2449,9 +2397,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2402\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2402\"]]");
     p = add_epsg_def (filter, first, last, 2403, "epsg", 2403,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 27");
     add_proj4text (p, 0,
@@ -2483,9 +2429,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2403\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2403\"]]");
     p = add_epsg_def (filter, first, last, 2404, "epsg", 2404,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 28");
     add_proj4text (p, 0,
@@ -2517,9 +2461,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2404\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2404\"]]");
     p = add_epsg_def (filter, first, last, 2405, "epsg", 2405,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 29");
     add_proj4text (p, 0,
@@ -2551,9 +2493,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2405\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2405\"]]");
     p = add_epsg_def (filter, first, last, 2406, "epsg", 2406,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 30");
     add_proj4text (p, 0,
@@ -2585,9 +2525,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2406\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2406\"]]");
     p = add_epsg_def (filter, first, last, 2407, "epsg", 2407,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 31");
     add_proj4text (p, 0,
@@ -2619,9 +2557,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2407\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2407\"]]");
     p = add_epsg_def (filter, first, last, 2408, "epsg", 2408,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 32");
     add_proj4text (p, 0,
@@ -2653,9 +2589,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2408\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2408\"]]");
     p = add_epsg_def (filter, first, last, 2409, "epsg", 2409,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 33");
     add_proj4text (p, 0,
@@ -2687,9 +2621,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2409\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2409\"]]");
     p = add_epsg_def (filter, first, last, 2410, "epsg", 2410,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 34");
     add_proj4text (p, 0,
@@ -2721,9 +2653,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2410\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2410\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2411, "epsg", 2411,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 35");
     add_proj4text (p, 0,
@@ -2755,9 +2687,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2411\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2411\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2412, "epsg", 2412,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 36");
     add_proj4text (p, 0,
@@ -2789,9 +2721,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2412\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2412\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2413, "epsg", 2413,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 37");
     add_proj4text (p, 0,
@@ -2823,9 +2755,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2413\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2413\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2414, "epsg", 2414,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 38");
     add_proj4text (p, 0,
@@ -2857,9 +2789,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2414\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2414\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2415, "epsg", 2415,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 39");
     add_proj4text (p, 0,
@@ -2891,9 +2823,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2415\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2415\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2416, "epsg", 2416,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 40");
     add_proj4text (p, 0,
@@ -2925,9 +2857,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2416\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2416\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2417, "epsg", 2417,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 41");
     add_proj4text (p, 0,
@@ -2959,9 +2891,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2417\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2417\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2418, "epsg", 2418,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 42");
     add_proj4text (p, 0,
@@ -2993,9 +2925,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2418\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2418\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2419, "epsg", 2419,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 43");
     add_proj4text (p, 0,
@@ -3027,9 +2959,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2419\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2419\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2420, "epsg", 2420,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 44");
     add_proj4text (p, 0,
@@ -3061,9 +2993,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2420\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2420\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2421, "epsg", 2421,
         "Beijing 1954 / 3-degree Gauss-Kruger zone 45");
     add_proj4text (p, 0,
@@ -3095,9 +3027,9 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2421\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2421\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2422, "epsg", 2422,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -3129,9 +3061,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2422\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2422\"]]");
     p = add_epsg_def (filter, first, last, 2423, "epsg", 2423,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 78E");
     add_proj4text (p, 0,
@@ -3163,9 +3093,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2423\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2423\"]]");
     p = add_epsg_def (filter, first, last, 2424, "epsg", 2424,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -3197,9 +3125,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2424\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2424\"]]");
     p = add_epsg_def (filter, first, last, 2425, "epsg", 2425,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 84E");
     add_proj4text (p, 0,
@@ -3231,9 +3157,7 @@ initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2425\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2425\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_04.c b/src/srsinit/epsg_inlined_04.c
index f4f0967..e80e580 100644
--- a/src/srsinit/epsg_inlined_04.c
+++ b/src/srsinit/epsg_inlined_04.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -83,9 +83,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2426\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2426\"]]");
     p = add_epsg_def (filter, first, last, 2427, "epsg", 2427,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 90E");
     add_proj4text (p, 0,
@@ -117,9 +115,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2427\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2427\"]]");
     p = add_epsg_def (filter, first, last, 2428, "epsg", 2428,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -151,9 +147,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2428\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2428\"]]");
     p = add_epsg_def (filter, first, last, 2429, "epsg", 2429,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 96E");
     add_proj4text (p, 0,
@@ -185,9 +179,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2429\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2429\"]]");
     p = add_epsg_def (filter, first, last, 2430, "epsg", 2430,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -219,9 +211,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2430\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2430\"]]");
     p = add_epsg_def (filter, first, last, 2431, "epsg", 2431,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 102E");
     add_proj4text (p, 0,
@@ -253,9 +243,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2431\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2431\"]]");
     p = add_epsg_def (filter, first, last, 2432, "epsg", 2432,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -287,9 +275,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2432\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2432\"]]");
     p = add_epsg_def (filter, first, last, 2433, "epsg", 2433,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 108E");
     add_proj4text (p, 0,
@@ -321,9 +307,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2433\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2433\"]]");
     p = add_epsg_def (filter, first, last, 2434, "epsg", 2434,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -355,9 +339,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2434\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2434\"]]");
     p = add_epsg_def (filter, first, last, 2435, "epsg", 2435,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 114E");
     add_proj4text (p, 0,
@@ -389,9 +371,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2435\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2435\"]]");
     p = add_epsg_def (filter, first, last, 2436, "epsg", 2436,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -423,9 +403,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2436\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2436\"]]");
     p = add_epsg_def (filter, first, last, 2437, "epsg", 2437,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 120E");
     add_proj4text (p, 0,
@@ -457,9 +435,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2437\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2437\"]]");
     p = add_epsg_def (filter, first, last, 2438, "epsg", 2438,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -491,9 +467,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2438\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2438\"]]");
     p = add_epsg_def (filter, first, last, 2439, "epsg", 2439,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 126E");
     add_proj4text (p, 0,
@@ -525,9 +499,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2439\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2439\"]]");
     p = add_epsg_def (filter, first, last, 2440, "epsg", 2440,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -559,9 +531,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2440\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2440\"]]");
     p = add_epsg_def (filter, first, last, 2441, "epsg", 2441,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 132E");
     add_proj4text (p, 0,
@@ -593,9 +563,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2441\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2441\"]]");
     p = add_epsg_def (filter, first, last, 2442, "epsg", 2442,
         "Beijing 1954 / 3-degree Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -627,9 +595,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2442\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2442\"]]");
     p = add_epsg_def (filter, first, last, 2443, "epsg", 2443,
         "JGD2000 / Japan Plane Rectangular CS I");
     add_proj4text (p, 0,
@@ -659,9 +625,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
-    add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"2443\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2443\"]]");
     p = add_epsg_def (filter, first, last, 2444, "epsg", 2444,
         "JGD2000 / Japan Plane Rectangular CS II");
     add_proj4text (p, 0,
@@ -691,9 +655,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"2444\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2444\"]]");
     p = add_epsg_def (filter, first, last, 2445, "epsg", 2445,
         "JGD2000 / Japan Plane Rectangular CS III");
     add_proj4text (p, 0,
@@ -725,9 +687,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2445\"]]");
+        "2445\"]]");
     p = add_epsg_def (filter, first, last, 2446, "epsg", 2446,
         "JGD2000 / Japan Plane Rectangular CS IV");
     add_proj4text (p, 0,
@@ -757,9 +719,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"2446\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2446\"]]");
     p = add_epsg_def (filter, first, last, 2447, "epsg", 2447,
         "JGD2000 / Japan Plane Rectangular CS V");
     add_proj4text (p, 0,
@@ -791,9 +751,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2447\"]]");
+        "2447\"]]");
     p = add_epsg_def (filter, first, last, 2448, "epsg", 2448,
         "JGD2000 / Japan Plane Rectangular CS VI");
     add_proj4text (p, 0,
@@ -823,9 +783,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"2448\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2448\"]]");
     p = add_epsg_def (filter, first, last, 2449, "epsg", 2449,
         "JGD2000 / Japan Plane Rectangular CS VII");
     add_proj4text (p, 0,
@@ -857,9 +815,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2449\"]]");
+        "2449\"]]");
     p = add_epsg_def (filter, first, last, 2450, "epsg", 2450,
         "JGD2000 / Japan Plane Rectangular CS VIII");
     add_proj4text (p, 0,
@@ -889,9 +847,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2450\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2450\"]]");
     p = add_epsg_def (filter, first, last, 2451, "epsg", 2451,
         "JGD2000 / Japan Plane Rectangular CS IX");
     add_proj4text (p, 0,
@@ -923,9 +879,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2451\"]]");
+        "2451\"]]");
     p = add_epsg_def (filter, first, last, 2452, "epsg", 2452,
         "JGD2000 / Japan Plane Rectangular CS X");
     add_proj4text (p, 0,
@@ -957,9 +913,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2452\"]]");
+        "2452\"]]");
     p = add_epsg_def (filter, first, last, 2453, "epsg", 2453,
         "JGD2000 / Japan Plane Rectangular CS XI");
     add_proj4text (p, 0,
@@ -991,9 +947,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"2453\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2453\"]]");
     p = add_epsg_def (filter, first, last, 2454, "epsg", 2454,
         "JGD2000 / Japan Plane Rectangular CS XII");
     add_proj4text (p, 0,
@@ -1025,9 +979,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"2454\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2454\"]]");
     p = add_epsg_def (filter, first, last, 2455, "epsg", 2455,
         "JGD2000 / Japan Plane Rectangular CS XIII");
     add_proj4text (p, 0,
@@ -1059,9 +1011,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"2455\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2455\"]]");
     p = add_epsg_def (filter, first, last, 2456, "epsg", 2456,
         "JGD2000 / Japan Plane Rectangular CS XIV");
     add_proj4text (p, 0,
@@ -1091,9 +1041,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"2456\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2456\"]]");
     p = add_epsg_def (filter, first, last, 2457, "epsg", 2457,
         "JGD2000 / Japan Plane Rectangular CS XV");
     add_proj4text (p, 0,
@@ -1123,9 +1071,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"2457\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2457\"]]");
     p = add_epsg_def (filter, first, last, 2458, "epsg", 2458,
         "JGD2000 / Japan Plane Rectangular CS XVI");
     add_proj4text (p, 0,
@@ -1155,9 +1101,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"2458\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2458\"]]");
     p = add_epsg_def (filter, first, last, 2459, "epsg", 2459,
         "JGD2000 / Japan Plane Rectangular CS XVII");
     add_proj4text (p, 0,
@@ -1187,9 +1131,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"2459\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2459\"]]");
     p = add_epsg_def (filter, first, last, 2460, "epsg", 2460,
         "JGD2000 / Japan Plane Rectangular CS XVIII");
     add_proj4text (p, 0,
@@ -1219,9 +1161,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"2460\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2460\"]]");
     p = add_epsg_def (filter, first, last, 2461, "epsg", 2461,
         "JGD2000 / Japan Plane Rectangular CS XIX");
     add_proj4text (p, 0,
@@ -1251,9 +1191,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"2461\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2461\"]]");
     p = add_epsg_def (filter, first, last, 2462, "epsg", 2462,
         "Albanian 1987 / Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -1281,9 +1219,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 10,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2462\"]]");
+        ",\"2462\"]]");
     p = add_epsg_def (filter, first, last, 2463, "epsg", 2463,
         "Pulkovo 1995 / Gauss-Kruger CM 21E");
     add_proj4text (p, 0,
@@ -1315,9 +1253,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2463\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2463\"]]");
     p = add_epsg_def (filter, first, last, 2464, "epsg", 2464,
         "Pulkovo 1995 / Gauss-Kruger CM 27E");
     add_proj4text (p, 0,
@@ -1349,9 +1285,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2464\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2464\"]]");
     p = add_epsg_def (filter, first, last, 2465, "epsg", 2465,
         "Pulkovo 1995 / Gauss-Kruger CM 33E");
     add_proj4text (p, 0,
@@ -1383,9 +1317,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2465\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2465\"]]");
     p = add_epsg_def (filter, first, last, 2466, "epsg", 2466,
         "Pulkovo 1995 / Gauss-Kruger CM 39E");
     add_proj4text (p, 0,
@@ -1417,9 +1349,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2466\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2466\"]]");
     p = add_epsg_def (filter, first, last, 2467, "epsg", 2467,
         "Pulkovo 1995 / Gauss-Kruger CM 45E");
     add_proj4text (p, 0,
@@ -1451,9 +1381,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2467\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2467\"]]");
     p = add_epsg_def (filter, first, last, 2468, "epsg", 2468,
         "Pulkovo 1995 / Gauss-Kruger CM 51E");
     add_proj4text (p, 0,
@@ -1485,9 +1413,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2468\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2468\"]]");
     p = add_epsg_def (filter, first, last, 2469, "epsg", 2469,
         "Pulkovo 1995 / Gauss-Kruger CM 57E");
     add_proj4text (p, 0,
@@ -1519,9 +1445,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2469\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2469\"]]");
     p = add_epsg_def (filter, first, last, 2470, "epsg", 2470,
         "Pulkovo 1995 / Gauss-Kruger CM 63E");
     add_proj4text (p, 0,
@@ -1553,9 +1477,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2470\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2470\"]]");
     p = add_epsg_def (filter, first, last, 2471, "epsg", 2471,
         "Pulkovo 1995 / Gauss-Kruger CM 69E");
     add_proj4text (p, 0,
@@ -1587,9 +1509,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2471\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2471\"]]");
     p = add_epsg_def (filter, first, last, 2472, "epsg", 2472,
         "Pulkovo 1995 / Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -1621,9 +1541,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2472\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2472\"]]");
     p = add_epsg_def (filter, first, last, 2473, "epsg", 2473,
         "Pulkovo 1995 / Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -1655,9 +1573,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2473\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2473\"]]");
     p = add_epsg_def (filter, first, last, 2474, "epsg", 2474,
         "Pulkovo 1995 / Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -1689,9 +1605,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2474\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2474\"]]");
     p = add_epsg_def (filter, first, last, 2475, "epsg", 2475,
         "Pulkovo 1995 / Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -1723,9 +1637,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2475\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2475\"]]");
     p = add_epsg_def (filter, first, last, 2476, "epsg", 2476,
         "Pulkovo 1995 / Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -1757,9 +1669,7 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"2476\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2476\"]]");
     p = add_epsg_def (filter, first, last, 2477, "epsg", 2477,
         "Pulkovo 1995 / Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -1791,9 +1701,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2477\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2477\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2478, "epsg", 2478,
         "Pulkovo 1995 / Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -1825,9 +1735,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2478\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2478\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2479, "epsg", 2479,
         "Pulkovo 1995 / Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -1859,9 +1769,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2479\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2479\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2480, "epsg", 2480,
         "Pulkovo 1995 / Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -1893,9 +1803,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2480\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2480\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2481, "epsg", 2481,
         "Pulkovo 1995 / Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -1927,9 +1837,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2481\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2481\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2482, "epsg", 2482,
         "Pulkovo 1995 / Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -1961,9 +1871,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2482\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2482\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2483, "epsg", 2483,
         "Pulkovo 1995 / Gauss-Kruger CM 141E");
     add_proj4text (p, 0,
@@ -1995,9 +1905,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2483\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2483\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2484, "epsg", 2484,
         "Pulkovo 1995 / Gauss-Kruger CM 147E");
     add_proj4text (p, 0,
@@ -2029,9 +1939,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2484\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2484\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2485, "epsg", 2485,
         "Pulkovo 1995 / Gauss-Kruger CM 153E");
     add_proj4text (p, 0,
@@ -2063,9 +1973,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2485\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2485\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2486, "epsg", 2486,
         "Pulkovo 1995 / Gauss-Kruger CM 159E");
     add_proj4text (p, 0,
@@ -2097,9 +2007,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2486\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2486\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2487, "epsg", 2487,
         "Pulkovo 1995 / Gauss-Kruger CM 165E");
     add_proj4text (p, 0,
@@ -2131,9 +2041,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2487\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2487\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2488, "epsg", 2488,
         "Pulkovo 1995 / Gauss-Kruger CM 171E");
     add_proj4text (p, 0,
@@ -2165,9 +2075,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2488\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2488\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2489, "epsg", 2489,
         "Pulkovo 1995 / Gauss-Kruger CM 177E");
     add_proj4text (p, 0,
@@ -2199,9 +2109,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2489\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2489\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2490, "epsg", 2490,
         "Pulkovo 1995 / Gauss-Kruger CM 177W");
     add_proj4text (p, 0,
@@ -2233,9 +2143,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2490\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2490\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2491, "epsg", 2491,
         "Pulkovo 1995 / Gauss-Kruger CM 171W");
     add_proj4text (p, 0,
@@ -2267,9 +2177,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2491\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2491\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2492, "epsg", 2492,
         "Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)");
     add_proj4text (p, 0,
@@ -2301,9 +2211,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2492\"]]");
+        "\"2492\"]]");
     p = add_epsg_def (filter, first, last, 2493, "epsg", 2493,
         "Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)");
     add_proj4text (p, 0,
@@ -2335,9 +2245,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2493\"]]");
+        "\",\"2493\"]]");
     p = add_epsg_def (filter, first, last, 2494, "epsg", 2494,
         "Pulkovo 1942 / Gauss-Kruger CM 21E");
     add_proj4text (p, 0,
@@ -2369,9 +2279,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2494\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2494\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2495, "epsg", 2495,
         "Pulkovo 1942 / Gauss-Kruger CM 27E");
     add_proj4text (p, 0,
@@ -2403,9 +2313,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2495\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2495\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2496, "epsg", 2496,
         "Pulkovo 1942 / Gauss-Kruger CM 33E");
     add_proj4text (p, 0,
@@ -2437,9 +2347,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2496\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2496\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2497, "epsg", 2497,
         "Pulkovo 1942 / Gauss-Kruger CM 39E");
     add_proj4text (p, 0,
@@ -2471,9 +2381,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2497\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2497\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2498, "epsg", 2498,
         "Pulkovo 1942 / Gauss-Kruger CM 45E");
     add_proj4text (p, 0,
@@ -2505,9 +2415,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2498\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2498\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2499, "epsg", 2499,
         "Pulkovo 1942 / Gauss-Kruger CM 51E");
     add_proj4text (p, 0,
@@ -2539,9 +2449,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2499\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2499\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2500, "epsg", 2500,
         "Pulkovo 1942 / Gauss-Kruger CM 57E");
     add_proj4text (p, 0,
@@ -2573,9 +2483,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2500\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2500\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2501, "epsg", 2501,
         "Pulkovo 1942 / Gauss-Kruger CM 63E");
     add_proj4text (p, 0,
@@ -2607,9 +2517,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2501\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2501\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2502, "epsg", 2502,
         "Pulkovo 1942 / Gauss-Kruger CM 69E");
     add_proj4text (p, 0,
@@ -2641,9 +2551,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2502\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2502\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2503, "epsg", 2503,
         "Pulkovo 1942 / Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -2675,9 +2585,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2503\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2503\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2504, "epsg", 2504,
         "Pulkovo 1942 / Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -2709,9 +2619,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2504\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2504\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2505, "epsg", 2505,
         "Pulkovo 1942 / Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -2743,9 +2653,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2505\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2505\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2506, "epsg", 2506,
         "Pulkovo 1942 / Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -2777,9 +2687,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2506\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2506\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2507, "epsg", 2507,
         "Pulkovo 1942 / Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -2811,9 +2721,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2507\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"2507\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 2508, "epsg", 2508,
         "Pulkovo 1942 / Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -2845,9 +2755,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2508\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2508\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2509, "epsg", 2509,
         "Pulkovo 1942 / Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -2879,9 +2789,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2509\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2509\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2510, "epsg", 2510,
         "Pulkovo 1942 / Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -2913,9 +2823,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2510\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2510\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2511, "epsg", 2511,
         "Pulkovo 1942 / Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -2947,9 +2857,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2511\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2511\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2512, "epsg", 2512,
         "Pulkovo 1942 / Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -2981,9 +2891,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2512\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2512\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2513, "epsg", 2513,
         "Pulkovo 1942 / Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -3015,9 +2925,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2513\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2513\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2514, "epsg", 2514,
         "Pulkovo 1942 / Gauss-Kruger CM 141E");
     add_proj4text (p, 0,
@@ -3049,9 +2959,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2514\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2514\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2515, "epsg", 2515,
         "Pulkovo 1942 / Gauss-Kruger CM 147E");
     add_proj4text (p, 0,
@@ -3083,9 +2993,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2515\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2515\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2516, "epsg", 2516,
         "Pulkovo 1942 / Gauss-Kruger CM 153E");
     add_proj4text (p, 0,
@@ -3117,9 +3027,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2516\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2516\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2517, "epsg", 2517,
         "Pulkovo 1942 / Gauss-Kruger CM 159E");
     add_proj4text (p, 0,
@@ -3151,9 +3061,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2517\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2517\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2518, "epsg", 2518,
         "Pulkovo 1942 / Gauss-Kruger CM 165E");
     add_proj4text (p, 0,
@@ -3185,9 +3095,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2518\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2518\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2519, "epsg", 2519,
         "Pulkovo 1942 / Gauss-Kruger CM 171E");
     add_proj4text (p, 0,
@@ -3219,9 +3129,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2519\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2519\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2520, "epsg", 2520,
         "Pulkovo 1942 / Gauss-Kruger CM 177E");
     add_proj4text (p, 0,
@@ -3253,9 +3163,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2520\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"2520\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 2521, "epsg", 2521,
         "Pulkovo 1942 / Gauss-Kruger CM 177W");
     add_proj4text (p, 0,
@@ -3287,9 +3197,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2521");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2521\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2522, "epsg", 2522,
         "Pulkovo 1942 / Gauss-Kruger CM 171W");
     add_proj4text (p, 0,
@@ -3321,9 +3231,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2522");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"2522\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 2523, "epsg", 2523,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 7");
     add_proj4text (p, 0,
@@ -3355,9 +3265,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",7500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2523\"]]");
+        "\"2523\"]]");
     p = add_epsg_def (filter, first, last, 2524, "epsg", 2524,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 8");
     add_proj4text (p, 0,
@@ -3389,9 +3299,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",8500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2524\"]]");
+        "\"2524\"]]");
     p = add_epsg_def (filter, first, last, 2525, "epsg", 2525,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 9");
     add_proj4text (p, 0,
@@ -3423,9 +3333,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",9500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2525\"]]");
+        "\"2525\"]]");
     p = add_epsg_def (filter, first, last, 2526, "epsg", 2526,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 10");
     add_proj4text (p, 0,
@@ -3457,9 +3367,9 @@ initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",10500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2526\"]]");
+        ",\"2526\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_05.c b/src/srsinit/epsg_inlined_05.c
index 5cc4275..bc7c0f3 100644
--- a/src/srsinit/epsg_inlined_05.c
+++ b/src/srsinit/epsg_inlined_05.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -83,9 +83,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",11500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2527\"]]");
+        ",\"2527\"]]");
     p = add_epsg_def (filter, first, last, 2528, "epsg", 2528,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 12");
     add_proj4text (p, 0,
@@ -117,9 +117,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",12500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2528\"]]");
+        ",\"2528\"]]");
     p = add_epsg_def (filter, first, last, 2529, "epsg", 2529,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 13");
     add_proj4text (p, 0,
@@ -151,9 +151,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2529\"]]");
+        ",\"2529\"]]");
     p = add_epsg_def (filter, first, last, 2530, "epsg", 2530,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -185,9 +185,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2530\"]]");
+        ",\"2530\"]]");
     p = add_epsg_def (filter, first, last, 2531, "epsg", 2531,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -219,9 +219,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2531\"]]");
+        ",\"2531\"]]");
     p = add_epsg_def (filter, first, last, 2532, "epsg", 2532,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 16");
     add_proj4text (p, 0,
@@ -253,9 +253,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2532\"]]");
+        ",\"2532\"]]");
     p = add_epsg_def (filter, first, last, 2533, "epsg", 2533,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 17");
     add_proj4text (p, 0,
@@ -287,9 +287,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2533\"]]");
+        ",\"2533\"]]");
     p = add_epsg_def (filter, first, last, 2534, "epsg", 2534,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 18");
     add_proj4text (p, 0,
@@ -321,9 +321,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2534\"]]");
+        ",\"2534\"]]");
     p = add_epsg_def (filter, first, last, 2535, "epsg", 2535,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 19");
     add_proj4text (p, 0,
@@ -355,9 +355,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2535\"]]");
+        ",\"2535\"]]");
     p = add_epsg_def (filter, first, last, 2536, "epsg", 2536,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 20");
     add_proj4text (p, 0,
@@ -389,9 +389,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2536\"]]");
+        ",\"2536\"]]");
     p = add_epsg_def (filter, first, last, 2537, "epsg", 2537,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 21");
     add_proj4text (p, 0,
@@ -423,9 +423,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2537\"]]");
+        ",\"2537\"]]");
     p = add_epsg_def (filter, first, last, 2538, "epsg", 2538,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 22");
     add_proj4text (p, 0,
@@ -457,9 +457,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2538\"]]");
+        ",\"2538\"]]");
     p = add_epsg_def (filter, first, last, 2539, "epsg", 2539,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 23");
     add_proj4text (p, 0,
@@ -491,9 +491,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2539\"]]");
+        ",\"2539\"]]");
     p = add_epsg_def (filter, first, last, 2540, "epsg", 2540,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 24");
     add_proj4text (p, 0,
@@ -525,9 +525,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",24500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2540\"]]");
+        ",\"2540\"]]");
     p = add_epsg_def (filter, first, last, 2541, "epsg", 2541,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 25");
     add_proj4text (p, 0,
@@ -559,9 +559,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2541\"]]");
+        ",\"2541\"]]");
     p = add_epsg_def (filter, first, last, 2542, "epsg", 2542,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 26");
     add_proj4text (p, 0,
@@ -593,9 +593,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2542\"]]");
+        ",\"2542\"]]");
     p = add_epsg_def (filter, first, last, 2543, "epsg", 2543,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 27");
     add_proj4text (p, 0,
@@ -627,9 +627,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2543\"]]");
+        ",\"2543\"]]");
     p = add_epsg_def (filter, first, last, 2544, "epsg", 2544,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 28");
     add_proj4text (p, 0,
@@ -661,9 +661,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2544\"]]");
+        ",\"2544\"]]");
     p = add_epsg_def (filter, first, last, 2545, "epsg", 2545,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 29");
     add_proj4text (p, 0,
@@ -695,9 +695,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2545\"]]");
+        ",\"2545\"]]");
     p = add_epsg_def (filter, first, last, 2546, "epsg", 2546,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 30");
     add_proj4text (p, 0,
@@ -729,9 +729,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2546\"]]");
+        ",\"2546\"]]");
     p = add_epsg_def (filter, first, last, 2547, "epsg", 2547,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 31");
     add_proj4text (p, 0,
@@ -763,9 +763,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2547\"]]");
+        ",\"2547\"]]");
     p = add_epsg_def (filter, first, last, 2548, "epsg", 2548,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 32");
     add_proj4text (p, 0,
@@ -797,9 +797,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2548\"]]");
+        ",\"2548\"]]");
     p = add_epsg_def (filter, first, last, 2549, "epsg", 2549,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 33");
     add_proj4text (p, 0,
@@ -831,9 +831,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2549\"]]");
+        ",\"2549\"]]");
     p = add_epsg_def (filter, first, last, 2550, "epsg", 2550,
         "Samboja / UTM zone 50S (deprecated)");
     add_proj4text (p, 0,
@@ -897,9 +897,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2551\"]]");
+        ",\"2551\"]]");
     p = add_epsg_def (filter, first, last, 2552, "epsg", 2552,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 35");
     add_proj4text (p, 0,
@@ -931,9 +931,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2552\"]]");
+        ",\"2552\"]]");
     p = add_epsg_def (filter, first, last, 2553, "epsg", 2553,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 36");
     add_proj4text (p, 0,
@@ -965,9 +965,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2553\"]]");
+        ",\"2553\"]]");
     p = add_epsg_def (filter, first, last, 2554, "epsg", 2554,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 37");
     add_proj4text (p, 0,
@@ -999,9 +999,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2554\"]]");
+        ",\"2554\"]]");
     p = add_epsg_def (filter, first, last, 2555, "epsg", 2555,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 38");
     add_proj4text (p, 0,
@@ -1033,9 +1033,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2555\"]]");
+        ",\"2555\"]]");
     p = add_epsg_def (filter, first, last, 2556, "epsg", 2556,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 39");
     add_proj4text (p, 0,
@@ -1067,9 +1067,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2556\"]]");
+        ",\"2556\"]]");
     p = add_epsg_def (filter, first, last, 2557, "epsg", 2557,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 40");
     add_proj4text (p, 0,
@@ -1101,9 +1101,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2557\"]]");
+        ",\"2557\"]]");
     p = add_epsg_def (filter, first, last, 2558, "epsg", 2558,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 41");
     add_proj4text (p, 0,
@@ -1135,9 +1135,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2558\"]]");
+        ",\"2558\"]]");
     p = add_epsg_def (filter, first, last, 2559, "epsg", 2559,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 42");
     add_proj4text (p, 0,
@@ -1169,9 +1169,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2559\"]]");
+        ",\"2559\"]]");
     p = add_epsg_def (filter, first, last, 2560, "epsg", 2560,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 43");
     add_proj4text (p, 0,
@@ -1203,9 +1203,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2560\"]]");
+        ",\"2560\"]]");
     p = add_epsg_def (filter, first, last, 2561, "epsg", 2561,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 44");
     add_proj4text (p, 0,
@@ -1237,9 +1237,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2561\"]]");
+        ",\"2561\"]]");
     p = add_epsg_def (filter, first, last, 2562, "epsg", 2562,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 45");
     add_proj4text (p, 0,
@@ -1271,9 +1271,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2562\"]]");
+        ",\"2562\"]]");
     p = add_epsg_def (filter, first, last, 2563, "epsg", 2563,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 46");
     add_proj4text (p, 0,
@@ -1305,9 +1305,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",46500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2563\"]]");
+        ",\"2563\"]]");
     p = add_epsg_def (filter, first, last, 2564, "epsg", 2564,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 47");
     add_proj4text (p, 0,
@@ -1339,9 +1339,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",47500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2564\"]]");
+        ",\"2564\"]]");
     p = add_epsg_def (filter, first, last, 2565, "epsg", 2565,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 48");
     add_proj4text (p, 0,
@@ -1373,9 +1373,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",48500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2565\"]]");
+        ",\"2565\"]]");
     p = add_epsg_def (filter, first, last, 2566, "epsg", 2566,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 49");
     add_proj4text (p, 0,
@@ -1407,9 +1407,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",49500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2566\"]]");
+        ",\"2566\"]]");
     p = add_epsg_def (filter, first, last, 2567, "epsg", 2567,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 50");
     add_proj4text (p, 0,
@@ -1441,9 +1441,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",50500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2567\"]]");
+        ",\"2567\"]]");
     p = add_epsg_def (filter, first, last, 2568, "epsg", 2568,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 51");
     add_proj4text (p, 0,
@@ -1475,9 +1475,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",51500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2568\"]]");
+        ",\"2568\"]]");
     p = add_epsg_def (filter, first, last, 2569, "epsg", 2569,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 52");
     add_proj4text (p, 0,
@@ -1509,9 +1509,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",52500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2569\"]]");
+        ",\"2569\"]]");
     p = add_epsg_def (filter, first, last, 2570, "epsg", 2570,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 53");
     add_proj4text (p, 0,
@@ -1543,9 +1543,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",53500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2570\"]]");
+        ",\"2570\"]]");
     p = add_epsg_def (filter, first, last, 2571, "epsg", 2571,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 54");
     add_proj4text (p, 0,
@@ -1577,9 +1577,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",54500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2571\"]]");
+        ",\"2571\"]]");
     p = add_epsg_def (filter, first, last, 2572, "epsg", 2572,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 55");
     add_proj4text (p, 0,
@@ -1611,9 +1611,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",55500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2572\"]]");
+        ",\"2572\"]]");
     p = add_epsg_def (filter, first, last, 2573, "epsg", 2573,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 56");
     add_proj4text (p, 0,
@@ -1645,9 +1645,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",56500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2573\"]]");
+        ",\"2573\"]]");
     p = add_epsg_def (filter, first, last, 2574, "epsg", 2574,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 57");
     add_proj4text (p, 0,
@@ -1679,9 +1679,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",57500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2574\"]]");
+        ",\"2574\"]]");
     p = add_epsg_def (filter, first, last, 2575, "epsg", 2575,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 58");
     add_proj4text (p, 0,
@@ -1713,9 +1713,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",58500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2575\"]]");
+        ",\"2575\"]]");
     p = add_epsg_def (filter, first, last, 2576, "epsg", 2576,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 59");
     add_proj4text (p, 0,
@@ -1747,9 +1747,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",59500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2576\"]]");
+        ",\"2576\"]]");
     p = add_epsg_def (filter, first, last, 2577, "epsg", 2577,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)");
     add_proj4text (p, 0,
@@ -1781,11 +1781,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "R[\"false_easting\",60000000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"257");
-    add_srs_wkt (p, 13,
-        "7\"]]");
+        "HORITY[\"EPSG\",\"2577\"]]");
     p = add_epsg_def (filter, first, last, 2578, "epsg", 2578,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 61");
     add_proj4text (p, 0,
@@ -1817,9 +1815,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",61500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2578\"]]");
+        "\",\"2578\"]]");
     p = add_epsg_def (filter, first, last, 2579, "epsg", 2579,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 62");
     add_proj4text (p, 0,
@@ -1851,9 +1849,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",62500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2579\"]]");
+        "\",\"2579\"]]");
     p = add_epsg_def (filter, first, last, 2580, "epsg", 2580,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 63");
     add_proj4text (p, 0,
@@ -1885,9 +1883,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",63500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2580\"]]");
+        "\",\"2580\"]]");
     p = add_epsg_def (filter, first, last, 2581, "epsg", 2581,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 64");
     add_proj4text (p, 0,
@@ -1919,9 +1917,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",64500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2581\"]]");
+        "\",\"2581\"]]");
     p = add_epsg_def (filter, first, last, 2582, "epsg", 2582,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E");
     add_proj4text (p, 0,
@@ -1953,9 +1951,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2582\"]]");
+        "2582\"]]");
     p = add_epsg_def (filter, first, last, 2583, "epsg", 2583,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E");
     add_proj4text (p, 0,
@@ -1987,9 +1985,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2583\"]]");
+        "2583\"]]");
     p = add_epsg_def (filter, first, last, 2584, "epsg", 2584,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E");
     add_proj4text (p, 0,
@@ -2021,9 +2019,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2584\"]]");
+        "2584\"]]");
     p = add_epsg_def (filter, first, last, 2585, "epsg", 2585,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E");
     add_proj4text (p, 0,
@@ -2055,9 +2053,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2585\"]]");
+        "2585\"]]");
     p = add_epsg_def (filter, first, last, 2586, "epsg", 2586,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E");
     add_proj4text (p, 0,
@@ -2089,9 +2087,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2586\"]]");
+        "2586\"]]");
     p = add_epsg_def (filter, first, last, 2587, "epsg", 2587,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E");
     add_proj4text (p, 0,
@@ -2123,9 +2121,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2587\"]]");
+        "2587\"]]");
     p = add_epsg_def (filter, first, last, 2588, "epsg", 2588,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E");
     add_proj4text (p, 0,
@@ -2157,9 +2155,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2588\"]]");
+        "2588\"]]");
     p = add_epsg_def (filter, first, last, 2589, "epsg", 2589,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E");
     add_proj4text (p, 0,
@@ -2191,9 +2189,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2589\"]]");
+        "2589\"]]");
     p = add_epsg_def (filter, first, last, 2590, "epsg", 2590,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E");
     add_proj4text (p, 0,
@@ -2225,9 +2223,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2590\"]]");
+        "2590\"]]");
     p = add_epsg_def (filter, first, last, 2591, "epsg", 2591,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E");
     add_proj4text (p, 0,
@@ -2259,9 +2257,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2591\"]]");
+        "2591\"]]");
     p = add_epsg_def (filter, first, last, 2592, "epsg", 2592,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E");
     add_proj4text (p, 0,
@@ -2293,9 +2291,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2592\"]]");
+        "2592\"]]");
     p = add_epsg_def (filter, first, last, 2593, "epsg", 2593,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E");
     add_proj4text (p, 0,
@@ -2327,9 +2325,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2593\"]]");
+        "2593\"]]");
     p = add_epsg_def (filter, first, last, 2594, "epsg", 2594,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E");
     add_proj4text (p, 0,
@@ -2361,9 +2359,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2594\"]]");
+        "2594\"]]");
     p = add_epsg_def (filter, first, last, 2595, "epsg", 2595,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E");
     add_proj4text (p, 0,
@@ -2395,9 +2393,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2595\"]]");
+        "2595\"]]");
     p = add_epsg_def (filter, first, last, 2596, "epsg", 2596,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E");
     add_proj4text (p, 0,
@@ -2429,9 +2427,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2596\"]]");
+        "2596\"]]");
     p = add_epsg_def (filter, first, last, 2597, "epsg", 2597,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E");
     add_proj4text (p, 0,
@@ -2463,9 +2461,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2597\"]]");
+        "2597\"]]");
     p = add_epsg_def (filter, first, last, 2598, "epsg", 2598,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E");
     add_proj4text (p, 0,
@@ -2497,9 +2495,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2598\"]]");
+        "2598\"]]");
     p = add_epsg_def (filter, first, last, 2599, "epsg", 2599,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E");
     add_proj4text (p, 0,
@@ -2531,9 +2529,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2599\"]]");
+        "2599\"]]");
     p = add_epsg_def (filter, first, last, 2600, "epsg", 2600,
         "Lietuvos Koordinoei Sistema 1994 (deprecated)");
     add_proj4text (p, 0,
@@ -2565,9 +2563,7 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"2600\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2600\"]]");
     p = add_epsg_def (filter, first, last, 2601, "epsg", 2601,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -2599,9 +2595,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2601\"]]");
+        "2601\"]]");
     p = add_epsg_def (filter, first, last, 2602, "epsg", 2602,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E");
     add_proj4text (p, 0,
@@ -2633,9 +2629,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2602\"]]");
+        "2602\"]]");
     p = add_epsg_def (filter, first, last, 2603, "epsg", 2603,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -2667,9 +2663,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2603\"]]");
+        "2603\"]]");
     p = add_epsg_def (filter, first, last, 2604, "epsg", 2604,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E");
     add_proj4text (p, 0,
@@ -2701,9 +2697,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2604\"]]");
+        "2604\"]]");
     p = add_epsg_def (filter, first, last, 2605, "epsg", 2605,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -2735,9 +2731,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2605\"]]");
+        "2605\"]]");
     p = add_epsg_def (filter, first, last, 2606, "epsg", 2606,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E");
     add_proj4text (p, 0,
@@ -2769,9 +2765,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2606\"]]");
+        "2606\"]]");
     p = add_epsg_def (filter, first, last, 2607, "epsg", 2607,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -2803,9 +2799,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2607\"]]");
+        "2607\"]]");
     p = add_epsg_def (filter, first, last, 2608, "epsg", 2608,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E");
     add_proj4text (p, 0,
@@ -2837,9 +2833,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2608\"]]");
+        "2608\"]]");
     p = add_epsg_def (filter, first, last, 2609, "epsg", 2609,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -2871,9 +2867,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2609\"]]");
+        "2609\"]]");
     p = add_epsg_def (filter, first, last, 2610, "epsg", 2610,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E");
     add_proj4text (p, 0,
@@ -2905,9 +2901,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2610\"]]");
+        "\"2610\"]]");
     p = add_epsg_def (filter, first, last, 2611, "epsg", 2611,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -2939,9 +2935,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2611\"]]");
+        "\"2611\"]]");
     p = add_epsg_def (filter, first, last, 2612, "epsg", 2612,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E");
     add_proj4text (p, 0,
@@ -2973,9 +2969,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2612\"]]");
+        "\"2612\"]]");
     p = add_epsg_def (filter, first, last, 2613, "epsg", 2613,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -3007,9 +3003,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2613\"]]");
+        "\"2613\"]]");
     p = add_epsg_def (filter, first, last, 2614, "epsg", 2614,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E");
     add_proj4text (p, 0,
@@ -3041,9 +3037,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2614\"]]");
+        "\"2614\"]]");
     p = add_epsg_def (filter, first, last, 2615, "epsg", 2615,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -3075,9 +3071,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2615\"]]");
+        "\"2615\"]]");
     p = add_epsg_def (filter, first, last, 2616, "epsg", 2616,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E");
     add_proj4text (p, 0,
@@ -3109,9 +3105,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2616\"]]");
+        "\"2616\"]]");
     p = add_epsg_def (filter, first, last, 2617, "epsg", 2617,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -3143,9 +3139,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2617\"]]");
+        "\"2617\"]]");
     p = add_epsg_def (filter, first, last, 2618, "epsg", 2618,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E");
     add_proj4text (p, 0,
@@ -3177,9 +3173,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2618\"]]");
+        "\"2618\"]]");
     p = add_epsg_def (filter, first, last, 2619, "epsg", 2619,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -3211,9 +3207,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2619\"]]");
+        "\"2619\"]]");
     p = add_epsg_def (filter, first, last, 2620, "epsg", 2620,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E");
     add_proj4text (p, 0,
@@ -3245,9 +3241,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2620\"]]");
+        "\"2620\"]]");
     p = add_epsg_def (filter, first, last, 2621, "epsg", 2621,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -3279,9 +3275,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2621\"]]");
+        "\"2621\"]]");
     p = add_epsg_def (filter, first, last, 2622, "epsg", 2622,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E");
     add_proj4text (p, 0,
@@ -3313,9 +3309,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2622\"]]");
+        "\"2622\"]]");
     p = add_epsg_def (filter, first, last, 2623, "epsg", 2623,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E");
     add_proj4text (p, 0,
@@ -3347,9 +3343,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2623\"]]");
+        "\"2623\"]]");
     p = add_epsg_def (filter, first, last, 2624, "epsg", 2624,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E");
     add_proj4text (p, 0,
@@ -3381,9 +3377,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2624\"]]");
+        "\"2624\"]]");
     p = add_epsg_def (filter, first, last, 2625, "epsg", 2625,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E");
     add_proj4text (p, 0,
@@ -3415,9 +3411,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2625\"]]");
+        "\"2625\"]]");
     p = add_epsg_def (filter, first, last, 2626, "epsg", 2626,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E");
     add_proj4text (p, 0,
@@ -3449,9 +3445,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2626\"]]");
+        "\"2626\"]]");
     p = add_epsg_def (filter, first, last, 2627, "epsg", 2627,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E");
     add_proj4text (p, 0,
@@ -3483,9 +3479,9 @@ initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2627\"]]");
+        "\"2627\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_06.c b/src/srsinit/epsg_inlined_06.c
index 0f5d3fa..43cd909 100644
--- a/src/srsinit/epsg_inlined_06.c
+++ b/src/srsinit/epsg_inlined_06.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -83,9 +83,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2628\"]]");
+        "\"2628\"]]");
     p = add_epsg_def (filter, first, last, 2629, "epsg", 2629,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E");
     add_proj4text (p, 0,
@@ -117,9 +117,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2629\"]]");
+        "\"2629\"]]");
     p = add_epsg_def (filter, first, last, 2630, "epsg", 2630,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E");
     add_proj4text (p, 0,
@@ -151,9 +151,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2630\"]]");
+        "\"2630\"]]");
     p = add_epsg_def (filter, first, last, 2631, "epsg", 2631,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E");
     add_proj4text (p, 0,
@@ -185,9 +185,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2631\"]]");
+        "\"2631\"]]");
     p = add_epsg_def (filter, first, last, 2632, "epsg", 2632,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E");
     add_proj4text (p, 0,
@@ -219,9 +219,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2632\"]]");
+        "\"2632\"]]");
     p = add_epsg_def (filter, first, last, 2633, "epsg", 2633,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E");
     add_proj4text (p, 0,
@@ -253,9 +253,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2633\"]]");
+        "\"2633\"]]");
     p = add_epsg_def (filter, first, last, 2634, "epsg", 2634,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E");
     add_proj4text (p, 0,
@@ -287,9 +287,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2634\"]]");
+        "\"2634\"]]");
     p = add_epsg_def (filter, first, last, 2635, "epsg", 2635,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E");
     add_proj4text (p, 0,
@@ -321,9 +321,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2635\"]]");
+        "\"2635\"]]");
     p = add_epsg_def (filter, first, last, 2636, "epsg", 2636,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E");
     add_proj4text (p, 0,
@@ -355,9 +355,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2636\"]]");
+        "\"2636\"]]");
     p = add_epsg_def (filter, first, last, 2637, "epsg", 2637,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W");
     add_proj4text (p, 0,
@@ -389,9 +389,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2637\"]]");
+        ",\"2637\"]]");
     p = add_epsg_def (filter, first, last, 2638, "epsg", 2638,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W");
     add_proj4text (p, 0,
@@ -423,9 +423,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2638\"]]");
+        ",\"2638\"]]");
     p = add_epsg_def (filter, first, last, 2639, "epsg", 2639,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W");
     add_proj4text (p, 0,
@@ -457,9 +457,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2639\"]]");
+        ",\"2639\"]]");
     p = add_epsg_def (filter, first, last, 2640, "epsg", 2640,
         "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W");
     add_proj4text (p, 0,
@@ -491,9 +491,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2640\"]]");
+        ",\"2640\"]]");
     p = add_epsg_def (filter, first, last, 2641, "epsg", 2641,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 7");
     add_proj4text (p, 0,
@@ -525,9 +525,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",7500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2641\"]]");
+        "2641\"]]");
     p = add_epsg_def (filter, first, last, 2642, "epsg", 2642,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 8");
     add_proj4text (p, 0,
@@ -559,9 +559,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",8500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2642\"]]");
+        "2642\"]]");
     p = add_epsg_def (filter, first, last, 2643, "epsg", 2643,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 9");
     add_proj4text (p, 0,
@@ -593,9 +593,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",9500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2643\"]]");
+        "2643\"]]");
     p = add_epsg_def (filter, first, last, 2644, "epsg", 2644,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 10");
     add_proj4text (p, 0,
@@ -627,9 +627,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",10500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2644\"]]");
+        ",\"2644\"]]");
     p = add_epsg_def (filter, first, last, 2645, "epsg", 2645,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 11");
     add_proj4text (p, 0,
@@ -661,9 +661,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",11500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2645\"]]");
+        ",\"2645\"]]");
     p = add_epsg_def (filter, first, last, 2646, "epsg", 2646,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 12");
     add_proj4text (p, 0,
@@ -695,9 +695,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",12500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2646\"]]");
+        ",\"2646\"]]");
     p = add_epsg_def (filter, first, last, 2647, "epsg", 2647,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 13");
     add_proj4text (p, 0,
@@ -729,9 +729,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2647\"]]");
+        ",\"2647\"]]");
     p = add_epsg_def (filter, first, last, 2648, "epsg", 2648,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -763,9 +763,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2648\"]]");
+        ",\"2648\"]]");
     p = add_epsg_def (filter, first, last, 2649, "epsg", 2649,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -797,9 +797,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2649\"]]");
+        ",\"2649\"]]");
     p = add_epsg_def (filter, first, last, 2650, "epsg", 2650,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 16");
     add_proj4text (p, 0,
@@ -831,9 +831,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2650\"]]");
+        ",\"2650\"]]");
     p = add_epsg_def (filter, first, last, 2651, "epsg", 2651,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 17");
     add_proj4text (p, 0,
@@ -865,9 +865,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2651\"]]");
+        ",\"2651\"]]");
     p = add_epsg_def (filter, first, last, 2652, "epsg", 2652,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 18");
     add_proj4text (p, 0,
@@ -899,9 +899,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2652\"]]");
+        ",\"2652\"]]");
     p = add_epsg_def (filter, first, last, 2653, "epsg", 2653,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 19");
     add_proj4text (p, 0,
@@ -933,9 +933,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2653\"]]");
+        ",\"2653\"]]");
     p = add_epsg_def (filter, first, last, 2654, "epsg", 2654,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 20");
     add_proj4text (p, 0,
@@ -967,9 +967,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2654\"]]");
+        ",\"2654\"]]");
     p = add_epsg_def (filter, first, last, 2655, "epsg", 2655,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 21");
     add_proj4text (p, 0,
@@ -1001,9 +1001,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2655\"]]");
+        ",\"2655\"]]");
     p = add_epsg_def (filter, first, last, 2656, "epsg", 2656,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 22");
     add_proj4text (p, 0,
@@ -1035,9 +1035,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2656\"]]");
+        ",\"2656\"]]");
     p = add_epsg_def (filter, first, last, 2657, "epsg", 2657,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 23");
     add_proj4text (p, 0,
@@ -1069,9 +1069,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2657\"]]");
+        ",\"2657\"]]");
     p = add_epsg_def (filter, first, last, 2658, "epsg", 2658,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 24");
     add_proj4text (p, 0,
@@ -1103,9 +1103,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",24500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2658\"]]");
+        ",\"2658\"]]");
     p = add_epsg_def (filter, first, last, 2659, "epsg", 2659,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 25");
     add_proj4text (p, 0,
@@ -1137,9 +1137,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2659\"]]");
+        ",\"2659\"]]");
     p = add_epsg_def (filter, first, last, 2660, "epsg", 2660,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 26");
     add_proj4text (p, 0,
@@ -1171,9 +1171,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2660\"]]");
+        ",\"2660\"]]");
     p = add_epsg_def (filter, first, last, 2661, "epsg", 2661,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 27");
     add_proj4text (p, 0,
@@ -1205,9 +1205,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2661\"]]");
+        ",\"2661\"]]");
     p = add_epsg_def (filter, first, last, 2662, "epsg", 2662,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 28");
     add_proj4text (p, 0,
@@ -1239,9 +1239,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2662\"]]");
+        ",\"2662\"]]");
     p = add_epsg_def (filter, first, last, 2663, "epsg", 2663,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 29");
     add_proj4text (p, 0,
@@ -1273,9 +1273,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2663\"]]");
+        ",\"2663\"]]");
     p = add_epsg_def (filter, first, last, 2664, "epsg", 2664,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 30");
     add_proj4text (p, 0,
@@ -1307,9 +1307,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2664\"]]");
+        ",\"2664\"]]");
     p = add_epsg_def (filter, first, last, 2665, "epsg", 2665,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 31");
     add_proj4text (p, 0,
@@ -1341,9 +1341,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2665\"]]");
+        ",\"2665\"]]");
     p = add_epsg_def (filter, first, last, 2666, "epsg", 2666,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 32");
     add_proj4text (p, 0,
@@ -1375,9 +1375,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2666\"]]");
+        ",\"2666\"]]");
     p = add_epsg_def (filter, first, last, 2667, "epsg", 2667,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 33");
     add_proj4text (p, 0,
@@ -1409,9 +1409,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2667\"]]");
+        ",\"2667\"]]");
     p = add_epsg_def (filter, first, last, 2668, "epsg", 2668,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 34");
     add_proj4text (p, 0,
@@ -1443,9 +1443,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2668\"]]");
+        ",\"2668\"]]");
     p = add_epsg_def (filter, first, last, 2669, "epsg", 2669,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 35");
     add_proj4text (p, 0,
@@ -1477,9 +1477,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2669\"]]");
+        ",\"2669\"]]");
     p = add_epsg_def (filter, first, last, 2670, "epsg", 2670,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 36");
     add_proj4text (p, 0,
@@ -1511,9 +1511,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2670\"]]");
+        ",\"2670\"]]");
     p = add_epsg_def (filter, first, last, 2671, "epsg", 2671,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 37");
     add_proj4text (p, 0,
@@ -1545,9 +1545,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2671\"]]");
+        ",\"2671\"]]");
     p = add_epsg_def (filter, first, last, 2672, "epsg", 2672,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 38");
     add_proj4text (p, 0,
@@ -1579,9 +1579,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2672\"]]");
+        ",\"2672\"]]");
     p = add_epsg_def (filter, first, last, 2673, "epsg", 2673,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 39");
     add_proj4text (p, 0,
@@ -1613,9 +1613,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2673\"]]");
+        ",\"2673\"]]");
     p = add_epsg_def (filter, first, last, 2674, "epsg", 2674,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 40");
     add_proj4text (p, 0,
@@ -1647,9 +1647,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2674\"]]");
+        ",\"2674\"]]");
     p = add_epsg_def (filter, first, last, 2675, "epsg", 2675,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 41");
     add_proj4text (p, 0,
@@ -1681,9 +1681,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2675\"]]");
+        ",\"2675\"]]");
     p = add_epsg_def (filter, first, last, 2676, "epsg", 2676,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 42");
     add_proj4text (p, 0,
@@ -1715,9 +1715,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2676\"]]");
+        ",\"2676\"]]");
     p = add_epsg_def (filter, first, last, 2677, "epsg", 2677,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 43");
     add_proj4text (p, 0,
@@ -1749,9 +1749,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2677\"]]");
+        ",\"2677\"]]");
     p = add_epsg_def (filter, first, last, 2678, "epsg", 2678,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 44");
     add_proj4text (p, 0,
@@ -1783,9 +1783,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2678\"]]");
+        ",\"2678\"]]");
     p = add_epsg_def (filter, first, last, 2679, "epsg", 2679,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 45");
     add_proj4text (p, 0,
@@ -1817,9 +1817,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2679\"]]");
+        ",\"2679\"]]");
     p = add_epsg_def (filter, first, last, 2680, "epsg", 2680,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 46");
     add_proj4text (p, 0,
@@ -1851,9 +1851,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",46500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2680\"]]");
+        ",\"2680\"]]");
     p = add_epsg_def (filter, first, last, 2681, "epsg", 2681,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 47");
     add_proj4text (p, 0,
@@ -1885,9 +1885,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",47500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2681\"]]");
+        ",\"2681\"]]");
     p = add_epsg_def (filter, first, last, 2682, "epsg", 2682,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 48");
     add_proj4text (p, 0,
@@ -1919,9 +1919,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",48500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2682\"]]");
+        ",\"2682\"]]");
     p = add_epsg_def (filter, first, last, 2683, "epsg", 2683,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 49");
     add_proj4text (p, 0,
@@ -1953,9 +1953,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",49500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2683\"]]");
+        ",\"2683\"]]");
     p = add_epsg_def (filter, first, last, 2684, "epsg", 2684,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 50");
     add_proj4text (p, 0,
@@ -1987,9 +1987,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",50500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2684\"]]");
+        ",\"2684\"]]");
     p = add_epsg_def (filter, first, last, 2685, "epsg", 2685,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 51");
     add_proj4text (p, 0,
@@ -2021,9 +2021,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",51500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2685\"]]");
+        ",\"2685\"]]");
     p = add_epsg_def (filter, first, last, 2686, "epsg", 2686,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 52");
     add_proj4text (p, 0,
@@ -2055,9 +2055,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",52500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2686\"]]");
+        ",\"2686\"]]");
     p = add_epsg_def (filter, first, last, 2687, "epsg", 2687,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 53");
     add_proj4text (p, 0,
@@ -2089,9 +2089,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",53500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2687\"]]");
+        ",\"2687\"]]");
     p = add_epsg_def (filter, first, last, 2688, "epsg", 2688,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 54");
     add_proj4text (p, 0,
@@ -2123,9 +2123,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",54500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2688\"]]");
+        ",\"2688\"]]");
     p = add_epsg_def (filter, first, last, 2689, "epsg", 2689,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 55");
     add_proj4text (p, 0,
@@ -2157,9 +2157,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",55500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2689\"]]");
+        ",\"2689\"]]");
     p = add_epsg_def (filter, first, last, 2690, "epsg", 2690,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 56");
     add_proj4text (p, 0,
@@ -2191,9 +2191,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",56500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2690\"]]");
+        ",\"2690\"]]");
     p = add_epsg_def (filter, first, last, 2691, "epsg", 2691,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 57");
     add_proj4text (p, 0,
@@ -2225,9 +2225,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",57500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2691\"]]");
+        ",\"2691\"]]");
     p = add_epsg_def (filter, first, last, 2692, "epsg", 2692,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 58");
     add_proj4text (p, 0,
@@ -2259,9 +2259,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",58500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2692\"]]");
+        ",\"2692\"]]");
     p = add_epsg_def (filter, first, last, 2693, "epsg", 2693,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 59");
     add_proj4text (p, 0,
@@ -2293,9 +2293,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",59500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2693\"]]");
+        ",\"2693\"]]");
     p = add_epsg_def (filter, first, last, 2694, "epsg", 2694,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)");
     add_proj4text (p, 0,
@@ -2327,11 +2327,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "R[\"false_easting\",60000000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"269");
-    add_srs_wkt (p, 13,
-        "4\"]]");
+        "HORITY[\"EPSG\",\"2694\"]]");
     p = add_epsg_def (filter, first, last, 2695, "epsg", 2695,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 61");
     add_proj4text (p, 0,
@@ -2363,9 +2361,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",61500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2695\"]]");
+        "\",\"2695\"]]");
     p = add_epsg_def (filter, first, last, 2696, "epsg", 2696,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 62");
     add_proj4text (p, 0,
@@ -2397,9 +2395,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",62500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2696\"]]");
+        "\",\"2696\"]]");
     p = add_epsg_def (filter, first, last, 2697, "epsg", 2697,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 63");
     add_proj4text (p, 0,
@@ -2431,9 +2429,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",63500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2697\"]]");
+        "\",\"2697\"]]");
     p = add_epsg_def (filter, first, last, 2698, "epsg", 2698,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 64");
     add_proj4text (p, 0,
@@ -2465,9 +2463,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",64500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2698\"]]");
+        "\",\"2698\"]]");
     p = add_epsg_def (filter, first, last, 2699, "epsg", 2699,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E");
     add_proj4text (p, 0,
@@ -2499,9 +2497,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2699\"]]");
+        "2699\"]]");
     p = add_epsg_def (filter, first, last, 2700, "epsg", 2700,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E");
     add_proj4text (p, 0,
@@ -2533,9 +2531,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2700\"]]");
+        "2700\"]]");
     p = add_epsg_def (filter, first, last, 2701, "epsg", 2701,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E");
     add_proj4text (p, 0,
@@ -2567,9 +2565,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2701\"]]");
+        "2701\"]]");
     p = add_epsg_def (filter, first, last, 2702, "epsg", 2702,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E");
     add_proj4text (p, 0,
@@ -2601,9 +2599,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2702\"]]");
+        "2702\"]]");
     p = add_epsg_def (filter, first, last, 2703, "epsg", 2703,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E");
     add_proj4text (p, 0,
@@ -2635,9 +2633,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2703\"]]");
+        "2703\"]]");
     p = add_epsg_def (filter, first, last, 2704, "epsg", 2704,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E");
     add_proj4text (p, 0,
@@ -2669,9 +2667,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2704\"]]");
+        "2704\"]]");
     p = add_epsg_def (filter, first, last, 2705, "epsg", 2705,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E");
     add_proj4text (p, 0,
@@ -2703,9 +2701,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2705\"]]");
+        "2705\"]]");
     p = add_epsg_def (filter, first, last, 2706, "epsg", 2706,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E");
     add_proj4text (p, 0,
@@ -2737,9 +2735,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2706\"]]");
+        "2706\"]]");
     p = add_epsg_def (filter, first, last, 2707, "epsg", 2707,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E");
     add_proj4text (p, 0,
@@ -2771,9 +2769,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2707\"]]");
+        "2707\"]]");
     p = add_epsg_def (filter, first, last, 2708, "epsg", 2708,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E");
     add_proj4text (p, 0,
@@ -2805,9 +2803,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2708\"]]");
+        "2708\"]]");
     p = add_epsg_def (filter, first, last, 2709, "epsg", 2709,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E");
     add_proj4text (p, 0,
@@ -2839,9 +2837,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2709\"]]");
+        "2709\"]]");
     p = add_epsg_def (filter, first, last, 2710, "epsg", 2710,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E");
     add_proj4text (p, 0,
@@ -2873,9 +2871,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2710\"]]");
+        "2710\"]]");
     p = add_epsg_def (filter, first, last, 2711, "epsg", 2711,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E");
     add_proj4text (p, 0,
@@ -2907,9 +2905,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2711\"]]");
+        "2711\"]]");
     p = add_epsg_def (filter, first, last, 2712, "epsg", 2712,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E");
     add_proj4text (p, 0,
@@ -2941,9 +2939,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2712\"]]");
+        "2712\"]]");
     p = add_epsg_def (filter, first, last, 2713, "epsg", 2713,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E");
     add_proj4text (p, 0,
@@ -2975,9 +2973,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2713\"]]");
+        "2713\"]]");
     p = add_epsg_def (filter, first, last, 2714, "epsg", 2714,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E");
     add_proj4text (p, 0,
@@ -3009,9 +3007,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2714\"]]");
+        "2714\"]]");
     p = add_epsg_def (filter, first, last, 2715, "epsg", 2715,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E");
     add_proj4text (p, 0,
@@ -3043,9 +3041,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2715\"]]");
+        "2715\"]]");
     p = add_epsg_def (filter, first, last, 2716, "epsg", 2716,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E");
     add_proj4text (p, 0,
@@ -3077,9 +3075,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2716\"]]");
+        "2716\"]]");
     p = add_epsg_def (filter, first, last, 2717, "epsg", 2717,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -3111,9 +3109,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2717\"]]");
+        "2717\"]]");
     p = add_epsg_def (filter, first, last, 2718, "epsg", 2718,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E");
     add_proj4text (p, 0,
@@ -3145,9 +3143,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2718\"]]");
+        "2718\"]]");
     p = add_epsg_def (filter, first, last, 2719, "epsg", 2719,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -3179,9 +3177,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2719\"]]");
+        "2719\"]]");
     p = add_epsg_def (filter, first, last, 2720, "epsg", 2720,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E");
     add_proj4text (p, 0,
@@ -3213,9 +3211,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2720\"]]");
+        "2720\"]]");
     p = add_epsg_def (filter, first, last, 2721, "epsg", 2721,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -3247,9 +3245,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2721\"]]");
+        "2721\"]]");
     p = add_epsg_def (filter, first, last, 2722, "epsg", 2722,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E");
     add_proj4text (p, 0,
@@ -3281,9 +3279,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2722\"]]");
+        "2722\"]]");
     p = add_epsg_def (filter, first, last, 2723, "epsg", 2723,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -3315,9 +3313,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2723\"]]");
+        "2723\"]]");
     p = add_epsg_def (filter, first, last, 2724, "epsg", 2724,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E");
     add_proj4text (p, 0,
@@ -3349,9 +3347,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2724\"]]");
+        "2724\"]]");
     p = add_epsg_def (filter, first, last, 2725, "epsg", 2725,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -3383,9 +3381,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2725\"]]");
+        "2725\"]]");
     p = add_epsg_def (filter, first, last, 2726, "epsg", 2726,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E");
     add_proj4text (p, 0,
@@ -3417,9 +3415,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2726\"]]");
+        "\"2726\"]]");
     p = add_epsg_def (filter, first, last, 2727, "epsg", 2727,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -3451,9 +3449,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2727\"]]");
+        "\"2727\"]]");
     p = add_epsg_def (filter, first, last, 2728, "epsg", 2728,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E");
     add_proj4text (p, 0,
@@ -3485,9 +3483,9 @@ initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2728\"]]");
+        "\"2728\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_07.c b/src/srsinit/epsg_inlined_07.c
index 2347f74..e1cda86 100644
--- a/src/srsinit/epsg_inlined_07.c
+++ b/src/srsinit/epsg_inlined_07.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -83,9 +83,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2729\"]]");
+        "\"2729\"]]");
     p = add_epsg_def (filter, first, last, 2730, "epsg", 2730,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E");
     add_proj4text (p, 0,
@@ -117,9 +117,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2730\"]]");
+        "\"2730\"]]");
     p = add_epsg_def (filter, first, last, 2731, "epsg", 2731,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -151,9 +151,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2731\"]]");
+        "\"2731\"]]");
     p = add_epsg_def (filter, first, last, 2732, "epsg", 2732,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E");
     add_proj4text (p, 0,
@@ -185,9 +185,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2732\"]]");
+        "\"2732\"]]");
     p = add_epsg_def (filter, first, last, 2733, "epsg", 2733,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -219,9 +219,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2733\"]]");
+        "\"2733\"]]");
     p = add_epsg_def (filter, first, last, 2734, "epsg", 2734,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E");
     add_proj4text (p, 0,
@@ -253,9 +253,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2734\"]]");
+        "\"2734\"]]");
     p = add_epsg_def (filter, first, last, 2735, "epsg", 2735,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -287,77 +287,77 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2735\"]]");
+        "\"2735\"]]");
     p = add_epsg_def (filter, first, last, 2736, "epsg", 2736,
         "Tete / UTM zone 36S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +south +ellps=clrk66 +towgs84=219.315");
+        "+proj=utm +zone=36 +south +ellps=clrk66 +towgs84=-73.472");
     add_proj4text (p, 1,
-        ",168.975,-166.145,0.198,5.926,-2.356,-57.104 +units=m +n");
+        ",-51.66,-112.482,0.953,4.6,-2.368,0.586 +units=m +no_def");
     add_proj4text (p, 2,
-        "o_defs");
+        "s");
     add_srs_wkt (p, 0,
         "PROJCS[\"Tete / UTM zone 36S\",GEOGCS[\"Tete\",DATUM[\"T");
     add_srs_wkt (p, 1,
-        "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389");
+        "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390");
     add_srs_wkt (p, 2,
-        "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[219.315,168.975");
+        "06,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-73.472,-51.66,");
     add_srs_wkt (p, 3,
-        ",-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY[\"EPSG\"");
+        "-112.482,0.953,4.6,-2.368,0.586],AUTHORITY[\"EPSG\",\"61");
     add_srs_wkt (p, 4,
-        ",\"6127\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "27\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTI");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s");
+        "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",");
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2736\"]]");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2736\"]]");
     p = add_epsg_def (filter, first, last, 2737, "epsg", 2737,
         "Tete / UTM zone 37S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +south +ellps=clrk66 +towgs84=219.315");
+        "+proj=utm +zone=37 +south +ellps=clrk66 +towgs84=-73.472");
     add_proj4text (p, 1,
-        ",168.975,-166.145,0.198,5.926,-2.356,-57.104 +units=m +n");
+        ",-51.66,-112.482,0.953,4.6,-2.368,0.586 +units=m +no_def");
     add_proj4text (p, 2,
-        "o_defs");
+        "s");
     add_srs_wkt (p, 0,
         "PROJCS[\"Tete / UTM zone 37S\",GEOGCS[\"Tete\",DATUM[\"T");
     add_srs_wkt (p, 1,
-        "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389");
+        "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390");
     add_srs_wkt (p, 2,
-        "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[219.315,168.975");
+        "06,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-73.472,-51.66,");
     add_srs_wkt (p, 3,
-        ",-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY[\"EPSG\"");
+        "-112.482,0.953,4.6,-2.368,0.586],AUTHORITY[\"EPSG\",\"61");
     add_srs_wkt (p, 4,
-        ",\"6127\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "27\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTI");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s");
+        "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",");
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2737\"]]");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2737\"]]");
     p = add_epsg_def (filter, first, last, 2738, "epsg", 2738,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E");
     add_proj4text (p, 0,
@@ -389,9 +389,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2738\"]]");
+        "\"2738\"]]");
     p = add_epsg_def (filter, first, last, 2739, "epsg", 2739,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -423,9 +423,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2739\"]]");
+        "\"2739\"]]");
     p = add_epsg_def (filter, first, last, 2740, "epsg", 2740,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E");
     add_proj4text (p, 0,
@@ -457,9 +457,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2740\"]]");
+        "\"2740\"]]");
     p = add_epsg_def (filter, first, last, 2741, "epsg", 2741,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E");
     add_proj4text (p, 0,
@@ -491,9 +491,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2741\"]]");
+        "\"2741\"]]");
     p = add_epsg_def (filter, first, last, 2742, "epsg", 2742,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E");
     add_proj4text (p, 0,
@@ -525,9 +525,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2742\"]]");
+        "\"2742\"]]");
     p = add_epsg_def (filter, first, last, 2743, "epsg", 2743,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E");
     add_proj4text (p, 0,
@@ -559,9 +559,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2743\"]]");
+        "\"2743\"]]");
     p = add_epsg_def (filter, first, last, 2744, "epsg", 2744,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E");
     add_proj4text (p, 0,
@@ -593,9 +593,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2744\"]]");
+        "\"2744\"]]");
     p = add_epsg_def (filter, first, last, 2745, "epsg", 2745,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E");
     add_proj4text (p, 0,
@@ -627,9 +627,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2745\"]]");
+        "\"2745\"]]");
     p = add_epsg_def (filter, first, last, 2746, "epsg", 2746,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E");
     add_proj4text (p, 0,
@@ -661,9 +661,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2746\"]]");
+        "\"2746\"]]");
     p = add_epsg_def (filter, first, last, 2747, "epsg", 2747,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E");
     add_proj4text (p, 0,
@@ -695,9 +695,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2747\"]]");
+        "\"2747\"]]");
     p = add_epsg_def (filter, first, last, 2748, "epsg", 2748,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E");
     add_proj4text (p, 0,
@@ -729,9 +729,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2748\"]]");
+        "\"2748\"]]");
     p = add_epsg_def (filter, first, last, 2749, "epsg", 2749,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E");
     add_proj4text (p, 0,
@@ -763,9 +763,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2749\"]]");
+        "\"2749\"]]");
     p = add_epsg_def (filter, first, last, 2750, "epsg", 2750,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E");
     add_proj4text (p, 0,
@@ -797,9 +797,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2750\"]]");
+        "\"2750\"]]");
     p = add_epsg_def (filter, first, last, 2751, "epsg", 2751,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E");
     add_proj4text (p, 0,
@@ -831,9 +831,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2751\"]]");
+        "\"2751\"]]");
     p = add_epsg_def (filter, first, last, 2752, "epsg", 2752,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E");
     add_proj4text (p, 0,
@@ -865,9 +865,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2752\"]]");
+        "\"2752\"]]");
     p = add_epsg_def (filter, first, last, 2753, "epsg", 2753,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E");
     add_proj4text (p, 0,
@@ -899,9 +899,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2753\"]]");
+        "\"2753\"]]");
     p = add_epsg_def (filter, first, last, 2754, "epsg", 2754,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E");
     add_proj4text (p, 0,
@@ -933,9 +933,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2754\"]]");
+        "\"2754\"]]");
     p = add_epsg_def (filter, first, last, 2755, "epsg", 2755,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W");
     add_proj4text (p, 0,
@@ -967,9 +967,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2755\"]]");
+        ",\"2755\"]]");
     p = add_epsg_def (filter, first, last, 2756, "epsg", 2756,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W");
     add_proj4text (p, 0,
@@ -1001,9 +1001,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2756\"]]");
+        ",\"2756\"]]");
     p = add_epsg_def (filter, first, last, 2757, "epsg", 2757,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W");
     add_proj4text (p, 0,
@@ -1035,9 +1035,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2757\"]]");
+        ",\"2757\"]]");
     p = add_epsg_def (filter, first, last, 2758, "epsg", 2758,
         "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W");
     add_proj4text (p, 0,
@@ -1069,9 +1069,9 @@ initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2758\"]]");
+        ",\"2758\"]]");
     p = add_epsg_def (filter, first, last, 2759, "epsg", 2759,
         "NAD83(HARN) / Alabama East");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_inlined_08.c b/src/srsinit/epsg_inlined_08.c
index b0be7fe..431dc41 100644
--- a/src/srsinit/epsg_inlined_08.c
+++ b/src/srsinit/epsg_inlined_08.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
diff --git a/src/srsinit/epsg_inlined_09.c b/src/srsinit/epsg_inlined_09.c
index b2e6f07..1a02152 100644
--- a/src/srsinit/epsg_inlined_09.c
+++ b/src/srsinit/epsg_inlined_09.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -65,7 +65,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"Beduaram\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2");
     add_srs_wkt (p, 2,
-        "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-");
+        "93.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
         "106,-87,188,0,0,0,0],AUTHORITY[\"EPSG\",\"6213\"]],PRIME");
     add_srs_wkt (p, 4,
@@ -221,11 +221,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",1300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293");
-    add_srs_wkt (p, 13,
-        "5\"]]");
+        "HORITY[\"EPSG\",\"2935\"]]");
     p = add_epsg_def (filter, first, last, 2936, "epsg", 2936,
         "Pulkovo 1942 / CS63 zone A2");
     add_proj4text (p, 0,
@@ -257,11 +255,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",2300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293");
-    add_srs_wkt (p, 13,
-        "6\"]]");
+        "HORITY[\"EPSG\",\"2936\"]]");
     p = add_epsg_def (filter, first, last, 2937, "epsg", 2937,
         "Pulkovo 1942 / CS63 zone A3");
     add_proj4text (p, 0,
@@ -293,11 +289,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",3300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293");
-    add_srs_wkt (p, 13,
-        "7\"]]");
+        "HORITY[\"EPSG\",\"2937\"]]");
     p = add_epsg_def (filter, first, last, 2938, "epsg", 2938,
         "Pulkovo 1942 / CS63 zone A4");
     add_proj4text (p, 0,
@@ -329,11 +323,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",4300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293");
-    add_srs_wkt (p, 13,
-        "8\"]]");
+        "HORITY[\"EPSG\",\"2938\"]]");
     p = add_epsg_def (filter, first, last, 2939, "epsg", 2939,
         "Pulkovo 1942 / CS63 zone K2");
     add_proj4text (p, 0,
@@ -365,11 +357,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",2300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"293");
-    add_srs_wkt (p, 13,
-        "9\"]]");
+        "HORITY[\"EPSG\",\"2939\"]]");
     p = add_epsg_def (filter, first, last, 2940, "epsg", 2940,
         "Pulkovo 1942 / CS63 zone K3");
     add_proj4text (p, 0,
@@ -401,11 +391,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",3300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"294");
-    add_srs_wkt (p, 13,
-        "0\"]]");
+        "HORITY[\"EPSG\",\"2940\"]]");
     p = add_epsg_def (filter, first, last, 2941, "epsg", 2941,
         "Pulkovo 1942 / CS63 zone K4");
     add_proj4text (p, 0,
@@ -437,11 +425,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",4300000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"294");
-    add_srs_wkt (p, 13,
-        "1\"]]");
+        "HORITY[\"EPSG\",\"2941\"]]");
     p = add_epsg_def (filter, first, last, 2942, "epsg", 2942,
         "Porto Santo / UTM zone 28N");
     add_proj4text (p, 0,
@@ -845,9 +831,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"2953\"]]");
+        "]],AUTHORITY[\"EPSG\",\"2953\"]]");
     p = add_epsg_def (filter, first, last, 2954, "epsg", 2954,
         "NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)");
     add_proj4text (p, 0,
@@ -1151,7 +1135,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -1825,7 +1809,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820");
     add_srs_wkt (p, 3,
-        "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG");
+        "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWG");
     add_srs_wkt (p, 4,
         "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR");
     add_srs_wkt (p, 5,
@@ -2479,9 +2463,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3006\"]]");
+        "06\"]]");
     p = add_epsg_def (filter, first, last, 3007, "epsg", 3007,
         "SWEREF99 12 00");
     add_proj4text (p, 0,
@@ -2509,9 +2493,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3007");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3007\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3008, "epsg", 3008,
         "SWEREF99 13 30");
     add_proj4text (p, 0,
@@ -2539,9 +2523,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"300");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3008\"]]");
+        "8\"]]");
     p = add_epsg_def (filter, first, last, 3009, "epsg", 3009,
         "SWEREF99 15 00");
     add_proj4text (p, 0,
@@ -2569,9 +2553,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3009");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3009\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3010, "epsg", 3010,
         "SWEREF99 16 30");
     add_proj4text (p, 0,
@@ -2599,9 +2583,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3010\"]]");
+        "0\"]]");
     p = add_epsg_def (filter, first, last, 3011, "epsg", 3011,
         "SWEREF99 18 00");
     add_proj4text (p, 0,
@@ -2629,9 +2613,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3011");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3011\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3012, "epsg", 3012,
         "SWEREF99 14 15");
     add_proj4text (p, 0,
@@ -2659,9 +2643,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3012\"]]");
+        "12\"]]");
     p = add_epsg_def (filter, first, last, 3013, "epsg", 3013,
         "SWEREF99 15 45");
     add_proj4text (p, 0,
@@ -2689,9 +2673,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3013\"]]");
+        "13\"]]");
     p = add_epsg_def (filter, first, last, 3014, "epsg", 3014,
         "SWEREF99 17 15");
     add_proj4text (p, 0,
@@ -2719,9 +2703,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3014\"]]");
+        "14\"]]");
     p = add_epsg_def (filter, first, last, 3015, "epsg", 3015,
         "SWEREF99 18 45");
     add_proj4text (p, 0,
@@ -2749,9 +2733,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3015\"]]");
+        "15\"]]");
     p = add_epsg_def (filter, first, last, 3016, "epsg", 3016,
         "SWEREF99 20 15");
     add_proj4text (p, 0,
@@ -2779,9 +2763,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3016\"]]");
+        "16\"]]");
     p = add_epsg_def (filter, first, last, 3017, "epsg", 3017,
         "SWEREF99 21 45");
     add_proj4text (p, 0,
@@ -2809,9 +2793,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3017\"]]");
+        "17\"]]");
     p = add_epsg_def (filter, first, last, 3018, "epsg", 3018,
         "SWEREF99 23 15");
     add_proj4text (p, 0,
@@ -2839,9 +2823,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 10,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3018\"]]");
+        "18\"]]");
     p = add_epsg_def (filter, first, last, 3019, "epsg", 3019,
         "RT90 7.5 gon V");
     add_proj4text (p, 0,
@@ -2873,9 +2857,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3019\"]]");
+        "3019\"]]");
     p = add_epsg_def (filter, first, last, 3020, "epsg", 3020,
         "RT90 5 gon V");
     add_proj4text (p, 0,
@@ -2907,9 +2891,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3020\"]]");
+        "3020\"]]");
     p = add_epsg_def (filter, first, last, 3021, "epsg", 3021,
         "RT90 2.5 gon V");
     add_proj4text (p, 0,
@@ -2941,9 +2925,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3021\"]]");
+        "3021\"]]");
     p = add_epsg_def (filter, first, last, 3022, "epsg", 3022,
         "RT90 0 gon");
     add_proj4text (p, 0,
@@ -2975,9 +2959,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"302");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"3022\"]]");
+        "2\"]]");
     p = add_epsg_def (filter, first, last, 3023, "epsg", 3023,
         "RT90 2.5 gon O");
     add_proj4text (p, 0,
@@ -3009,9 +2993,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3023\"]]");
+        "3023\"]]");
     p = add_epsg_def (filter, first, last, 3024, "epsg", 3024,
         "RT90 5 gon O");
     add_proj4text (p, 0,
@@ -3043,9 +3027,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3024\"]]");
+        "3024\"]]");
     p = add_epsg_def (filter, first, last, 3025, "epsg", 3025,
         "RT38 7.5 gon V");
     add_proj4text (p, 0,
@@ -3073,9 +3057,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3025");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"3025\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3026, "epsg", 3026,
         "RT38 5 gon V");
     add_proj4text (p, 0,
@@ -3103,9 +3087,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 10,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3026\"");
     add_srs_wkt (p, 11,
-        "\",EAST],AUTHORITY[\"EPSG\",\"3026\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3027, "epsg", 3027,
         "RT38 2.5 gon V");
     add_proj4text (p, 0,
@@ -3133,9 +3117,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3027");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"3027\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3028, "epsg", 3028,
         "RT38 0 gon");
     add_proj4text (p, 0,
@@ -3163,9 +3147,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 10,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 11,
-        "EAST],AUTHORITY[\"EPSG\",\"3028\"]]");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3028\"]]");
     p = add_epsg_def (filter, first, last, 3029, "epsg", 3029,
         "RT38 2.5 gon O");
     add_proj4text (p, 0,
@@ -3193,9 +3175,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 10,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3029");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"3029\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3030, "epsg", 3030,
         "RT38 5 gon O");
     add_proj4text (p, 0,
@@ -3223,9 +3205,9 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 10,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3030\"");
     add_srs_wkt (p, 11,
-        "\",EAST],AUTHORITY[\"EPSG\",\"3030\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3031, "epsg", 3031,
         "WGS 84 / Antarctic Polar Stereographic");
     add_proj4text (p, 0,
@@ -3357,9 +3339,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "false_northing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting");
-    add_srs_wkt (p, 13,
-        "\",EAST],AUTHORITY[\"EPSG\",\"3034\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3034\"]]");
     p = add_epsg_def (filter, first, last, 3035, "epsg", 3035,
         "ETRS89 / LAEA Europe");
     add_proj4text (p, 0,
@@ -3389,9 +3369,7 @@ initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",3210000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 12,
-        ",\"3035\"]]");
+        "]],AUTHORITY[\"EPSG\",\"3035\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_10.c b/src/srsinit/epsg_inlined_10.c
index 6a15682..004d6cd 100644
--- a/src/srsinit/epsg_inlined_10.c
+++ b/src/srsinit/epsg_inlined_10.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -117,453 +117,425 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 12,
         "\"EPSG\",\"3037\"]]");
     p = add_epsg_def (filter, first, last, 3038, "epsg", 3038,
-        "ETRS89 / TM26");
+        "ETRS89 / TM26 (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM26\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / TM26 (deprecated)\",GEOGCS[\"ETRS89\",");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-27],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",-27],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3038\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3038\"]]");
     p = add_epsg_def (filter, first, last, 3039, "epsg", 3039,
-        "ETRS89 / TM27");
+        "ETRS89 / TM27 (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM27\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / TM27 (deprecated)\",GEOGCS[\"ETRS89\",");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-21],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",-21],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3039\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3039\"]]");
     p = add_epsg_def (filter, first, last, 3040, "epsg", 3040,
-        "ETRS89 / TM28");
+        "ETRS89 / UTM zone 28N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM28\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 28N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3040\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3040\"]]");
     p = add_epsg_def (filter, first, last, 3041, "epsg", 3041,
-        "ETRS89 / TM29");
+        "ETRS89 / UTM zone 29N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM29\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 29N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-9],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3041\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3041\"]]");
     p = add_epsg_def (filter, first, last, 3042, "epsg", 3042,
-        "ETRS89 / TM30");
+        "ETRS89 / UTM zone 30N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM30\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 30N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-3],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",-3],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3042\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3042\"]]");
     p = add_epsg_def (filter, first, last, 3043, "epsg", 3043,
-        "ETRS89 / TM31");
+        "ETRS89 / UTM zone 31N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM31\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 31N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",3],PARAMETER[\"scale_factor\",");
+        "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3043\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3043\"]]");
     p = add_epsg_def (filter, first, last, 3044, "epsg", 3044,
-        "ETRS89 / TM32");
+        "ETRS89 / UTM zone 32N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM32\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 32N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",9],PARAMETER[\"scale_factor\",");
+        "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3044\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3044\"]]");
     p = add_epsg_def (filter, first, last, 3045, "epsg", 3045,
-        "ETRS89 / TM33");
+        "ETRS89 / UTM zone 33N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM33\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 33N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",15],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3045\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3045\"]]");
     p = add_epsg_def (filter, first, last, 3046, "epsg", 3046,
-        "ETRS89 / TM34");
+        "ETRS89 / UTM zone 34N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM34\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 34N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",21],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3046\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3046\"]]");
     p = add_epsg_def (filter, first, last, 3047, "epsg", 3047,
-        "ETRS89 / TM35");
+        "ETRS89 / UTM zone 35N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM35\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 35N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",27],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3047\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3047\"]]");
     p = add_epsg_def (filter, first, last, 3048, "epsg", 3048,
-        "ETRS89 / TM36");
+        "ETRS89 / UTM zone 36N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM36\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 36N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",33],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3048\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3048\"]]");
     p = add_epsg_def (filter, first, last, 3049, "epsg", 3049,
-        "ETRS89 / TM37");
+        "ETRS89 / UTM zone 37N (N-E)");
     add_proj4text (p, 0,
         "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM37\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / UTM zone 37N (N-E)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",39],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3049\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3049\"]]");
     p = add_epsg_def (filter, first, last, 3050, "epsg", 3050,
-        "ETRS89 / TM38");
+        "ETRS89 / TM38 (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM38\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / TM38 (deprecated)\",GEOGCS[\"ETRS89\",");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",45],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3050\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3050\"]]");
     p = add_epsg_def (filter, first, last, 3051, "epsg", 3051,
-        "ETRS89 / TM39");
+        "ETRS89 / TM39 (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM39\",GEOGCS[\"ETRS89\",DATUM[\"Europ");
+        "PROJCS[\"ETRS89 / TM39 (deprecated)\",GEOGCS[\"ETRS89\",");
     add_srs_wkt (p, 1,
-        "ean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1");
+        "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH");
     add_srs_wkt (p, 2,
-        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],P");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transver");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",51],PARAMETER[\"scale_factor\"");
+        "in\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3051\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3051\"]]");
     p = add_epsg_def (filter, first, last, 3054, "epsg", 3054,
         "Hjorsey 1955 / UTM zone 26N");
     add_proj4text (p, 0,
@@ -727,9 +699,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ting\",50000],PARAMETER[\"false_northing\",-7800000],UNI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"3058\"]]");
+        "EPSG\",\"3058\"]]");
     p = add_epsg_def (filter, first, last, 3059, "epsg", 3059,
         "LKS92 / Latvia TM");
     add_proj4text (p, 0,
@@ -759,9 +731,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",-6000000],");
     add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3059\"]]");
+        "[\"EPSG\",\"3059\"]]");
     p = add_epsg_def (filter, first, last, 3060, "epsg", 3060,
         "IGN72 Grande Terre / UTM zone 58S");
     add_proj4text (p, 0,
@@ -1057,9 +1029,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",10000],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3068\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"3068\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 3069, "epsg", 3069,
         "NAD27 / Wisconsin Transverse Mercator");
     add_proj4text (p, 0,
@@ -1071,7 +1043,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP");
+        "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
         "SG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
@@ -1369,9 +1341,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33");
     add_proj4text (p, 1,
-        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga");
+        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no");
     add_proj4text (p, 2,
-        "mma=337.25556 +datum=NAD83 +units=m +no_defs");
+        "_uoff +gamma=337.25556 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"NAD83 / Michigan Oblique Mercator\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
@@ -1407,11 +1379,11 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33");
     add_proj4text (p, 1,
-        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga");
+        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no");
     add_proj4text (p, 2,
-        "mma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units");
+        "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0");
     add_proj4text (p, 3,
-        "=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"NAD83(HARN) / Michigan Oblique Mercator\",GEOGC");
     add_srs_wkt (p, 1,
@@ -1455,7 +1427,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -2223,9 +2195,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19");
     add_srs_wkt (p, 2,
-        "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898");
+        "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900");
     add_srs_wkt (p, 3,
-        "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0");
+        "6,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0");
     add_srs_wkt (p, 4,
         ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
@@ -2343,9 +2315,9 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_");
     add_proj4text (p, 1,
-        "0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=283.7,7");
+        "0=0 +a=6377276.345 +b=6356075.41314024 +towgs84=283.7,73");
     add_proj4text (p, 2,
-        "35.9,261.1,0,0,0,0 +units=m +no_defs");
+        "5.9,261.1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Gulshan 303 / Bangladesh Transverse Mercator\",");
     add_srs_wkt (p, 1,
@@ -2661,9 +2633,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting");
-    add_srs_wkt (p, 13,
-        "\",EAST],AUTHORITY[\"EPSG\",\"3114\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3114\"]]");
     p = add_epsg_def (filter, first, last, 3115, "epsg", 3115,
         "MAGNA-SIRGAS / Colombia West zone");
     add_proj4text (p, 0,
@@ -2697,9 +2667,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 13,
-        "EAST],AUTHORITY[\"EPSG\",\"3115\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3115\"]]");
     p = add_epsg_def (filter, first, last, 3116, "epsg", 3116,
         "MAGNA-SIRGAS / Colombia Bogota zone");
     add_proj4text (p, 0,
@@ -2733,9 +2701,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "alse_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"3116\"]]");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3116\"]]");
     p = add_epsg_def (filter, first, last, 3117, "epsg", 3117,
         "MAGNA-SIRGAS / Colombia East Central zone");
     add_proj4text (p, 0,
@@ -2769,9 +2735,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea");
-    add_srs_wkt (p, 13,
-        "sting\",EAST],AUTHORITY[\"EPSG\",\"3117\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3117\"]]");
     p = add_epsg_def (filter, first, last, 3118, "epsg", 3118,
         "MAGNA-SIRGAS / Colombia East zone");
     add_proj4text (p, 0,
@@ -2805,9 +2769,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 13,
-        "EAST],AUTHORITY[\"EPSG\",\"3118\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3118\"]]");
     p = add_epsg_def (filter, first, last, 3119, "epsg", 3119,
         "Douala 1948 / AEF west");
     add_proj4text (p, 0,
@@ -2877,9 +2839,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "lse_northing\",5467000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
-    add_srs_wkt (p, 13,
-        "ITY[\"EPSG\",\"3120\"]]");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"3120\"]]");
     p = add_epsg_def (filter, first, last, 3121, "epsg", 3121,
         "PRS92 / Philippines zone 1");
     add_proj4text (p, 0,
@@ -2893,7 +2853,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1");
     add_srs_wkt (p, 4,
@@ -2929,7 +2889,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1");
     add_srs_wkt (p, 4,
@@ -2965,7 +2925,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1");
     add_srs_wkt (p, 4,
@@ -3001,7 +2961,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1");
     add_srs_wkt (p, 4,
@@ -3037,7 +2997,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1");
     add_srs_wkt (p, 4,
@@ -3089,9 +3049,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3126\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3126\"]]");
     p = add_epsg_def (filter, first, last, 3127, "epsg", 3127,
         "ETRS89 / ETRS-GK20FIN");
     add_proj4text (p, 0,
@@ -3121,9 +3079,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3127\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3127\"]]");
     p = add_epsg_def (filter, first, last, 3128, "epsg", 3128,
         "ETRS89 / ETRS-GK21FIN");
     add_proj4text (p, 0,
@@ -3153,9 +3109,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3128\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3128\"]]");
     p = add_epsg_def (filter, first, last, 3129, "epsg", 3129,
         "ETRS89 / ETRS-GK22FIN");
     add_proj4text (p, 0,
@@ -3185,9 +3139,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3129\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3129\"]]");
     p = add_epsg_def (filter, first, last, 3130, "epsg", 3130,
         "ETRS89 / ETRS-GK23FIN");
     add_proj4text (p, 0,
@@ -3217,9 +3169,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3130\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3130\"]]");
     p = add_epsg_def (filter, first, last, 3131, "epsg", 3131,
         "ETRS89 / ETRS-GK24FIN");
     add_proj4text (p, 0,
@@ -3249,9 +3199,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3131\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3131\"]]");
     p = add_epsg_def (filter, first, last, 3132, "epsg", 3132,
         "ETRS89 / ETRS-GK25FIN");
     add_proj4text (p, 0,
@@ -3281,9 +3229,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3132\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3132\"]]");
     p = add_epsg_def (filter, first, last, 3133, "epsg", 3133,
         "ETRS89 / ETRS-GK26FIN");
     add_proj4text (p, 0,
@@ -3313,9 +3259,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3133\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3133\"]]");
     p = add_epsg_def (filter, first, last, 3134, "epsg", 3134,
         "ETRS89 / ETRS-GK27FIN");
     add_proj4text (p, 0,
@@ -3345,9 +3289,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3134\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3134\"]]");
     p = add_epsg_def (filter, first, last, 3135, "epsg", 3135,
         "ETRS89 / ETRS-GK28FIN");
     add_proj4text (p, 0,
@@ -3377,9 +3319,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3135\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3135\"]]");
     p = add_epsg_def (filter, first, last, 3136, "epsg", 3136,
         "ETRS89 / ETRS-GK29FIN");
     add_proj4text (p, 0,
@@ -3409,9 +3349,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3136\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3136\"]]");
     p = add_epsg_def (filter, first, last, 3137, "epsg", 3137,
         "ETRS89 / ETRS-GK30FIN");
     add_proj4text (p, 0,
@@ -3441,9 +3379,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3137\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3137\"]]");
     p = add_epsg_def (filter, first, last, 3138, "epsg", 3138,
         "ETRS89 / ETRS-GK31FIN");
     add_proj4text (p, 0,
@@ -3473,9 +3409,7 @@ initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"3138\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"3138\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_11.c b/src/srsinit/epsg_inlined_11.c
index 2498f16..c3ed588 100644
--- a/src/srsinit/epsg_inlined_11.c
+++ b/src/srsinit/epsg_inlined_11.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -67,7 +67,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "1880 (international foot)\",6378306.3696,293.46630765563");
     add_srs_wkt (p, 3,
-        "61,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51,391,-36,0,0,");
+        "49,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51,391,-36,0,0,");
     add_srs_wkt (p, 4,
         "0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 5,
@@ -83,9 +83,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",704000],UNIT[\"link\",0.201168,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9098\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"3140\"]]");
+        "Y[\"EPSG\",\"9098\"]],AUTHORITY[\"EPSG\",\"3140\"]]");
     p = add_epsg_def (filter, first, last, 3141, "epsg", 3141,
         "Fiji 1956 / UTM zone 60S");
     add_proj4text (p, 0,
@@ -187,7 +185,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "]]");
     p = add_epsg_def (filter, first, last, 3146, "epsg", 3146,
-        "Pulkovo 1942 / 3-degree Gauss-Kruger zone 6");
+        "Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (deprecated)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 ");
     add_proj4text (p, 1,
@@ -195,33 +193,33 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6\",G");
+        "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (de");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "precated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "Y[\"EPSG\",\"4284\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 9,
-        "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "l_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER");
     add_srs_wkt (p, 10,
-        "ng\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "[\"false_easting\",6500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3146\"]]");
+        "RITY[\"EPSG\",\"3146\"]]");
     p = add_epsg_def (filter, first, last, 3147, "epsg", 3147,
-        "Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E");
+        "Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (deprecated)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
@@ -229,37 +227,37 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E\",G");
+        "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (de");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "precated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "Y[\"EPSG\",\"4284\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 9,
-        "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "l_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3147\"]]");
+        "ITY[\"EPSG\",\"3147\"]]");
     p = add_epsg_def (filter, first, last, 3148, "epsg", 3148,
         "Indian 1960 / UTM zone 48N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        "towgs84=198,881,317,0,0,0,0 +units=m +no_defs");
+        "owgs84=198,881,317,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Indian 1960 / UTM zone 48N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
@@ -289,9 +287,9 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 3149, "epsg", 3149,
         "Indian 1960 / UTM zone 49N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=utm +zone=49 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        "towgs84=198,881,317,0,0,0,0 +units=m +no_defs");
+        "owgs84=198,881,317,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Indian 1960 / UTM zone 49N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
@@ -319,7 +317,7 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 12,
         "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3149\"]]");
     p = add_epsg_def (filter, first, last, 3150, "epsg", 3150,
-        "Pulkovo 1995 / 3-degree Gauss-Kruger zone 6");
+        "Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (deprecated)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 ");
     add_proj4text (p, 1,
@@ -327,33 +325,33 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6\",G");
+        "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (de");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "precated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        "\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        ".13,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "[\"EPSG\",\"4200\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 10,
-        "g\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "\"false_easting\",6500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3150\"]]");
+        "ITY[\"EPSG\",\"3150\"]]");
     p = add_epsg_def (filter, first, last, 3151, "epsg", 3151,
-        "Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E");
+        "Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (deprecated)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
@@ -361,31 +359,31 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E\",G");
+        "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (de");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "precated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        "\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        ".13,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "[\"EPSG\",\"4200\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "_meridian\",18],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORI");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3151\"]]");
+        "TY[\"EPSG\",\"3151\"]]");
     p = add_epsg_def (filter, first, last, 3152, "epsg", 3152,
         "ST74");
     add_proj4text (p, 0,
@@ -415,11 +413,9 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ing\",100178.1808],PARAMETER[\"false_northing\",-6500614");
     add_srs_wkt (p, 10,
-        ".7836],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        ".7836],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
     add_srs_wkt (p, 11,
-        "IS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"31");
-    add_srs_wkt (p, 12,
-        "52\"]]");
+        "THORITY[\"EPSG\",\"3152\"]]");
     p = add_epsg_def (filter, first, last, 3153, "epsg", 3153,
         "NAD83(CSRS) / BC Albers");
     add_proj4text (p, 0,
@@ -907,11 +903,11 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=");
     add_proj4text (p, 1,
-        "0.99984 +x_0=40000 +y_0=0 +gamma=323.1301023611111 +a=63");
+        "0.99984 +x_0=40000 +y_0=0 +no_uoff +gamma=323.1301023611");
     add_proj4text (p, 2,
-        "77295.664 +b=6356094.667915204 +to_meter=20.116756 +no_d");
+        "111 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116");
     add_proj4text (p, 3,
-        "efs");
+        "756 +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Kertau (RSO) / RSO Malaya (ch)\",GEOGCS[\"Kerta");
     add_srs_wkt (p, 1,
@@ -947,9 +943,11 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=");
     add_proj4text (p, 1,
-        "0.99984 +x_0=804670.24 +y_0=0 +gamma=323.1301023611111 +");
+        "0.99984 +x_0=804670.24 +y_0=0 +no_uoff +gamma=323.130102");
     add_proj4text (p, 2,
-        "a=6377295.664 +b=6356094.667915204 +units=m +no_defs");
+        "3611111 +a=6377295.664 +b=6356094.667915204 +units=m +no");
+    add_proj4text (p, 3,
+        "_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Kertau (RSO) / RSO Malaya (m)\",GEOGCS[\"Kertau");
     add_srs_wkt (p, 1,
@@ -1193,9 +1191,9 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y");
     add_proj4text (p, 1,
-        "_0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=198,88");
+        "_0=0 +a=6377276.345 +b=6356075.41314024 +towgs84=198,881");
     add_proj4text (p, 2,
-        "1,317,0,0,0,0 +units=m +no_defs");
+        ",317,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Indian 1960 / TM 106 NE\",GEOGCS[\"Indian 1960\"");
     add_srs_wkt (p, 1,
@@ -1985,29 +1983,29 @@ initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 1,
         "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow");
     add_proj4text (p, 2,
-        "gs84=-239.1,-170.02,397.5,0,0,0,0 +units=m +no_defs");
+        "gs84=-241.54,-163.64,396.06,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"FD58 / Iraq zone\",GEOGCS[\"FD58\",DATUM[\"Fina");
     add_srs_wkt (p, 1,
         "l_Datum_1958\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
     add_srs_wkt (p, 2,
-        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-239.1,-");
+        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-241.54,");
     add_srs_wkt (p, 3,
-        "170.02,397.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6132\"]],PRIM");
+        "-163.64,396.06,0,0,0,0],AUTHORITY[\"EPSG\",\"6132\"]],PR");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4132\"]],PROJECTION[\"Lambert_Con");
+        "]],AUTHORITY[\"EPSG\",\"4132\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.");
+        "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32");
     add_srs_wkt (p, 8,
-        "5],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_");
+        ".5],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "factor\",0.9987864078],PARAMETER[\"false_easting\",15000");
+        "_factor\",0.9987864078],PARAMETER[\"false_easting\",1500");
     add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",1166200],UNIT[\"metre\"");
+        "000],PARAMETER[\"false_northing\",1166200],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
         ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
diff --git a/src/srsinit/epsg_inlined_12.c b/src/srsinit/epsg_inlined_12.c
index 099d8fc..cc08825 100644
--- a/src/srsinit/epsg_inlined_12.c
+++ b/src/srsinit/epsg_inlined_12.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -1955,9 +1955,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 12,
         "orthing\",6375000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 13,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 14,
-        "EPSG\",\"3300\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"3300\"]]");
     p = add_epsg_def (filter, first, last, 3301, "epsg", 3301,
         "Estonian Coordinate System of 1997");
     add_proj4text (p, 0,
@@ -1991,9 +1989,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "],PARAMETER[\"false_northing\",6375000],UNIT[\"metre\",1");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3301");
     add_srs_wkt (p, 13,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"3301\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3302, "epsg", 3302,
         "IGN63 Hiva Oa / UTM zone 7S");
     add_proj4text (p, 0,
@@ -2249,7 +2247,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
     add_srs_wkt (p, 2,
-        "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008");
+        "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008");
     add_srs_wkt (p, 3,
         "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
@@ -2417,7 +2415,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP");
+        "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
         "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]");
     add_srs_wkt (p, 4,
@@ -2455,7 +2453,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
@@ -2897,9 +2895,7 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "TER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 13,
-        ",AUTHORITY[\"EPSG\",\"3328\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3328\"]]");
     p = add_epsg_def (filter, first, last, 3329, "epsg", 3329,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5");
     add_proj4text (p, 0,
@@ -2931,11 +2927,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",5500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"332");
-    add_srs_wkt (p, 13,
-        "9\"]]");
+        "HORITY[\"EPSG\",\"3329\"]]");
     p = add_epsg_def (filter, first, last, 3330, "epsg", 3330,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6");
     add_proj4text (p, 0,
@@ -2967,11 +2961,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",6500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333");
-    add_srs_wkt (p, 13,
-        "0\"]]");
+        "HORITY[\"EPSG\",\"3330\"]]");
     p = add_epsg_def (filter, first, last, 3331, "epsg", 3331,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7");
     add_proj4text (p, 0,
@@ -3003,11 +2995,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",7500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333");
-    add_srs_wkt (p, 13,
-        "1\"]]");
+        "HORITY[\"EPSG\",\"3331\"]]");
     p = add_epsg_def (filter, first, last, 3332, "epsg", 3332,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8");
     add_proj4text (p, 0,
@@ -3039,11 +3029,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",8500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"333");
-    add_srs_wkt (p, 13,
-        "2\"]]");
+        "HORITY[\"EPSG\",\"3332\"]]");
     p = add_epsg_def (filter, first, last, 3333, "epsg", 3333,
         "Pulkovo 1942(58) / Gauss-Kruger zone 3");
     add_proj4text (p, 0,
@@ -3075,9 +3063,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "se_easting\",3500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3333\"]]");
+        "EPSG\",\"3333\"]]");
     p = add_epsg_def (filter, first, last, 3334, "epsg", 3334,
         "Pulkovo 1942(58) / Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -3109,9 +3097,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "se_easting\",4500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3334\"]]");
+        "EPSG\",\"3334\"]]");
     p = add_epsg_def (filter, first, last, 3335, "epsg", 3335,
         "Pulkovo 1942(58) / Gauss-Kruger zone 5");
     add_proj4text (p, 0,
@@ -3143,9 +3131,9 @@ initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "se_easting\",5500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3335\"]]");
+        "EPSG\",\"3335\"]]");
     p = add_epsg_def (filter, first, last, 3336, "epsg", 3336,
         "IGN 1962 Kerguelen / UTM zone 42S");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_inlined_13.c b/src/srsinit/epsg_inlined_13.c
index 06d5392..7bd32ce 100644
--- a/src/srsinit/epsg_inlined_13.c
+++ b/src/srsinit/epsg_inlined_13.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -81,11 +81,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "R[\"false_easting\",500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 11,
-        "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3346\"");
-    add_srs_wkt (p, 12,
-        "]]");
+        "RITY[\"EPSG\",\"3346\"]]");
     p = add_epsg_def (filter, first, last, 3347, "epsg", 3347,
         "NAD83 / Statistics Canada Lambert");
     add_proj4text (p, 0,
@@ -221,9 +219,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
-    add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"3350\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3350\"]]");
     p = add_epsg_def (filter, first, last, 3351, "epsg", 3351,
         "Pulkovo 1942 / CS63 zone C1");
     add_proj4text (p, 0,
@@ -255,9 +251,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"3351\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3351\"]]");
     p = add_epsg_def (filter, first, last, 3352, "epsg", 3352,
         "Pulkovo 1942 / CS63 zone C2");
     add_proj4text (p, 0,
@@ -289,9 +283,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
-    add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"3352\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3352\"]]");
     p = add_epsg_def (filter, first, last, 3353, "epsg", 3353,
         "Mhast (onshore) / UTM zone 32S");
     add_proj4text (p, 0,
@@ -389,71 +381,73 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "\"EPSG\",\"3355\"]]");
     p = add_epsg_def (filter, first, last, 3356, "epsg", 3356,
-        "Grand Cayman 1959 / UTM zone 17N");
+        "Grand Cayman 1959 / UTM zone 17N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138");
+        "+proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.3");
     add_proj4text (p, 1,
-        ".8,0,0,0,0 +units=m +no_defs");
+        "79,-27.584,-7.862,8.163,6.042,-13.925 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Grand Cayman 1959 / UTM zone 17N\",GEOGCS[\"Gra");
+        "PROJCS[\"Grand Cayman 1959 / UTM zone 17N (deprecated)\"");
     add_srs_wkt (p, 1,
-        "nd Cayman 1959\",DATUM[\"Grand_Cayman_1959\",SPHEROID[\"");
+        ",GEOGCS[\"GCGD59\",DATUM[\"Grand_Cayman_Geodetic_Datum_1");
     add_srs_wkt (p, 2,
-        "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP");
+        "959\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390");
     add_srs_wkt (p, 3,
-        "SG\",\"7008\"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHOR");
+        "06,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-179.483,-69.37");
     add_srs_wkt (p, 4,
-        "ITY[\"EPSG\",\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+        "9,-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+        ",\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\"]],PROJECTI");
     add_srs_wkt (p, 8,
-        "ude_of_origin\",0],PARAMETER[\"central_meridian\",-81],P");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east");
+        "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3356\"");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 13,
-        "]]");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3356\"]]");
     p = add_epsg_def (filter, first, last, 3357, "epsg", 3357,
-        "Little Cayman 1961 / UTM zone 17N");
+        "Little Cayman 1961 / UTM zone 17N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=clrk66 +towgs84=42,124,147,0,0");
+        "+proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "180.304,-0.393,-2.323,2.96,-24.081 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Little Cayman 1961 / UTM zone 17N\",GEOGCS[\"Li");
+        "PROJCS[\"Little Cayman 1961 / UTM zone 17N (deprecated)\"");
     add_srs_wkt (p, 1,
-        "ttle Cayman 1961\",DATUM[\"Little_Cayman_1961\",SPHEROID");
+        ",GEOGCS[\"SIGD61\",DATUM[\"Sister_Islands_Geodetic_Datum");
     add_srs_wkt (p, 2,
-        "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "_1961\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7008\"]],TOWGS84[42,124,147,0,0,0,0],AUTHORITY[");
+        "9006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        ",180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "\"6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]],");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]],PROJECTIO");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",-81],PARA");
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
+        "n\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"s");
     add_srs_wkt (p, 10,
-        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3357\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 13,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3357\"]]");
     p = add_epsg_def (filter, first, last, 3358, "epsg", 3358,
         "NAD83(HARN) / North Carolina");
     add_proj4text (p, 0,
@@ -777,7 +771,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "S[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Clarke 1858\",6378293.645208759,294.2606763692654,AUTHOR");
+        "Clarke 1858\",6378293.645208759,294.2606763692569,AUTHOR");
     add_srs_wkt (p, 3,
         "ITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PR");
     add_srs_wkt (p, 4,
@@ -795,9 +789,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",19069.93351512578],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3366\"");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3366\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3367, "epsg", 3367,
         "IGN Astro 1960 / UTM zone 28N");
     add_proj4text (p, 0,
@@ -897,7 +891,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -927,7 +921,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -1041,9 +1035,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.02579646666");
     add_proj4text (p, 1,
-        "66 +k=0.99984 +x_0=804671 +y_0=0 +gamma=323.130102361111");
+        "66 +k=0.99984 +x_0=804671 +y_0=0 +no_uoff +gamma=323.130");
     add_proj4text (p, 2,
-        "1 +ellps=GRS80 +units=m +no_defs");
+        "1023611111 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"GDM2000 / Peninsula RSO\",GEOGCS[\"GDM2000\",DA");
     add_srs_wkt (p, 1,
@@ -1079,9 +1073,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9");
     add_proj4text (p, 1,
-        "9984 +x_0=0 +y_0=0 +gamma=53.13010236111111 +ellps=GRS80");
+        "9984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +el");
     add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "lps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"GDM2000 / East Malaysia BRSO\",GEOGCS[\"GDM2000");
     add_srs_wkt (p, 1,
@@ -1441,9 +1435,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3386\"]]");
+        "\",\"3386\"]]");
     p = add_epsg_def (filter, first, last, 3387, "epsg", 3387,
         "KKJ / Finland zone 5");
     add_proj4text (p, 0,
@@ -1475,9 +1469,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "asting\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3387\"]]");
+        "\",\"3387\"]]");
     p = add_epsg_def (filter, first, last, 3388, "epsg", 3388,
         "Pulkovo 1942 / Caspian Sea Mercator");
     add_proj4text (p, 0,
@@ -1507,11 +1501,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",0],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"none");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "\",NORTH],AXIS[\"none\",EAST],AUTHORITY[\"EPSG\",\"3388\"");
-    add_srs_wkt (p, 12,
-        "]]");
+        "EPSG\",\"3388\"]]");
     p = add_epsg_def (filter, first, last, 3389, "epsg", 3389,
         "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60");
     add_proj4text (p, 0,
@@ -1543,9 +1535,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",60500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3389\"]]");
+        ",\"3389\"]]");
     p = add_epsg_def (filter, first, last, 3390, "epsg", 3390,
         "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60");
     add_proj4text (p, 0,
@@ -1577,9 +1569,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",60500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3390\"]]");
+        ",\"3390\"]]");
     p = add_epsg_def (filter, first, last, 3391, "epsg", 3391,
         "Karbala 1979 / UTM zone 37N");
     add_proj4text (p, 0,
@@ -1765,9 +1757,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "sting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3396\"]]");
+        "\",\"3396\"]]");
     p = add_epsg_def (filter, first, last, 3397, "epsg", 3397,
         "PD/83 / 3-degree Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -1795,9 +1787,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3397\"]]");
+        "\",\"3397\"]]");
     p = add_epsg_def (filter, first, last, 3398, "epsg", 3398,
         "RD/83 / 3-degree Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -1825,9 +1817,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3398\"]]");
+        "\",\"3398\"]]");
     p = add_epsg_def (filter, first, last, 3399, "epsg", 3399,
         "RD/83 / 3-degree Gauss-Kruger zone 5");
     add_proj4text (p, 0,
@@ -1855,9 +1847,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3399\"]]");
+        "\",\"3399\"]]");
     p = add_epsg_def (filter, first, last, 3400, "epsg", 3400,
         "NAD83 / Alberta 10-TM (Forest)");
     add_proj4text (p, 0,
@@ -2115,7 +2107,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         " 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\"Clarke 1858\"");
     add_srs_wkt (p, 2,
-        ",6378293.645208759,294.2606763692654,AUTHORITY[\"EPSG\",");
+        ",6378293.645208759,294.2606763692569,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
@@ -2133,9 +2125,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "2565.96],UNIT[\"Clarke's foot\",0.3047972654,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9005\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"3407\"]]");
+        "EPSG\",\"9005\"]],AUTHORITY[\"EPSG\",\"3407\"]]");
     p = add_epsg_def (filter, first, last, 3408, "epsg", 3408,
         "NSIDC EASE-Grid North");
     add_proj4text (p, 0,
@@ -2251,7 +2241,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi");
     add_srs_wkt (p, 3,
-        "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU");
+        "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123061,AU");
     add_srs_wkt (p, 4,
         "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]");
     add_srs_wkt (p, 5,
@@ -2285,7 +2275,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi");
     add_srs_wkt (p, 3,
-        "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU");
+        "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123061,AU");
     add_srs_wkt (p, 4,
         "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]");
     add_srs_wkt (p, 5,
@@ -2365,11 +2355,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ng\",28001.642],PARAMETER[\"false_northing\",38744.572],");
     add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"No");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
     add_srs_wkt (p, 11,
-        "rthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 12,
-        ",\"3414\"]]");
+        "[\"EPSG\",\"3414\"]]");
     p = add_epsg_def (filter, first, last, 3415, "epsg", 3415,
         "WGS 72BE / South China Sea Lambert");
     add_proj4text (p, 0,
@@ -2439,11 +2427,11 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         ",400000],PARAMETER[\"false_northing\",400000],UNIT[\"met");
     add_srs_wkt (p, 12,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 13,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3416\"]]");
+        "\"3416\"]]");
     p = add_epsg_def (filter, first, last, 3417, "epsg", 3417,
-        "NAD83 / Iowa North (ft US)");
+        "NAD83 / Iowa North (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
@@ -2451,37 +2439,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "99898402 +datum=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Iowa North (ft US)\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83 / Iowa North (ftUS)\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.2");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.26");
     add_srs_wkt (p, 8,
-        "6666666666667],PARAMETER[\"standard_parallel_2\",42.0666");
+        "666666666667],PARAMETER[\"standard_parallel_2\",42.06666");
     add_srs_wkt (p, 9,
-        "6666666667],PARAMETER[\"latitude_of_origin\",41.5],PARAM");
+        "666666667],PARAMETER[\"latitude_of_origin\",41.5],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"central_meridian\",-93.5],PARAMETER[\"false_easti");
+        "TER[\"central_meridian\",-93.5],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 11,
-        "ng\",4921250],PARAMETER[\"false_northing\",3280833.33330");
+        "g\",4921250],PARAMETER[\"false_northing\",3280833.333300");
     add_srs_wkt (p, 12,
-        "0001],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI");
+        "001],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT");
     add_srs_wkt (p, 13,
-        "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
+        "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 14,
-        "],AUTHORITY[\"EPSG\",\"3417\"]]");
+        ",AUTHORITY[\"EPSG\",\"3417\"]]");
     p = add_epsg_def (filter, first, last, 3418, "epsg", 3418,
-        "NAD83 / Iowa South (ft US)");
+        "NAD83 / Iowa South (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
@@ -2489,37 +2477,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "datum=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Iowa South (ft US)\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83 / Iowa South (ftUS)\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.78");
     add_srs_wkt (p, 8,
-        "8333333333333],PARAMETER[\"standard_parallel_2\",40.6166");
+        "333333333333],PARAMETER[\"standard_parallel_2\",40.61666");
     add_srs_wkt (p, 9,
-        "6666666667],PARAMETER[\"latitude_of_origin\",40],PARAMET");
+        "666666667],PARAMETER[\"latitude_of_origin\",40],PARAMETE");
     add_srs_wkt (p, 10,
-        "ER[\"central_meridian\",-93.5],PARAMETER[\"false_easting");
+        "R[\"central_meridian\",-93.5],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "\",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\"");
+        ",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US");
     add_srs_wkt (p, 12,
-        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
+        " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 13,
-        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+        "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
     add_srs_wkt (p, 14,
-        "EPSG\",\"3418\"]]");
+        "PSG\",\"3418\"]]");
     p = add_epsg_def (filter, first, last, 3419, "epsg", 3419,
-        "NAD83 / Kansas North (ft US)");
+        "NAD83 / Kansas North (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
@@ -2527,37 +2515,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "8984 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Kansas North (ft US)\",GEOGCS[\"NAD83\"");
+        "PROJCS[\"NAD83 / Kansas North (ftUS)\",GEOGCS[\"NAD83\",");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con");
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 7,
-        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39");
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.7");
     add_srs_wkt (p, 8,
-        ".78333333333333],PARAMETER[\"standard_parallel_2\",38.71");
+        "8333333333333],PARAMETER[\"standard_parallel_2\",38.7166");
     add_srs_wkt (p, 9,
-        "666666666667],PARAMETER[\"latitude_of_origin\",38.333333");
+        "6666666667],PARAMETER[\"latitude_of_origin\",38.33333333");
     add_srs_wkt (p, 10,
-        "33333334],PARAMETER[\"central_meridian\",-98],PARAMETER[");
+        "333334],PARAMETER[\"central_meridian\",-98],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"false_easting\",1312333.3333],PARAMETER[\"false_northi");
+        "false_easting\",1312333.3333],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
+        "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI");
     add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
     add_srs_wkt (p, 14,
-        "TH],AUTHORITY[\"EPSG\",\"3419\"]]");
+        "],AUTHORITY[\"EPSG\",\"3419\"]]");
     p = add_epsg_def (filter, first, last, 3420, "epsg", 3420,
-        "NAD83 / Kansas South (ft US)");
+        "NAD83 / Kansas South (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
@@ -2567,37 +2555,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Kansas South (ft US)\",GEOGCS[\"NAD83\"");
+        "PROJCS[\"NAD83 / Kansas South (ftUS)\",GEOGCS[\"NAD83\",");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con");
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 7,
-        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38");
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.5");
     add_srs_wkt (p, 8,
-        ".56666666666667],PARAMETER[\"standard_parallel_2\",37.26");
+        "6666666666667],PARAMETER[\"standard_parallel_2\",37.2666");
     add_srs_wkt (p, 9,
-        "666666666667],PARAMETER[\"latitude_of_origin\",36.666666");
+        "6666666667],PARAMETER[\"latitude_of_origin\",36.66666666");
     add_srs_wkt (p, 10,
-        "66666666],PARAMETER[\"central_meridian\",-98.5],PARAMETE");
+        "666666],PARAMETER[\"central_meridian\",-98.5],PARAMETER[");
     add_srs_wkt (p, 11,
-        "R[\"false_easting\",1312333.3333],PARAMETER[\"false_nort");
+        "\"false_easting\",1312333.3333],PARAMETER[\"false_northi");
     add_srs_wkt (p, 12,
-        "hing\",1312333.3333],UNIT[\"US survey foot\",0.304800609");
+        "ng\",1312333.3333],UNIT[\"US survey foot\",0.30480060960");
     add_srs_wkt (p, 13,
-        "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A");
+        "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 14,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3420\"]]");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3420\"]]");
     p = add_epsg_def (filter, first, last, 3421, "epsg", 3421,
-        "NAD83 / Nevada East (ft US)");
+        "NAD83 / Nevada East (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
     add_proj4text (p, 1,
@@ -2605,9 +2593,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nevada East (ft US)\",GEOGCS[\"NAD83\",");
+        "PROJCS[\"NAD83 / Nevada East (ftUS)\",GEOGCS[\"NAD83\",D");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
         ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 3,
@@ -2633,7 +2621,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "ORITY[\"EPSG\",\"3421\"]]");
     p = add_epsg_def (filter, first, last, 3422, "epsg", 3422,
-        "NAD83 / Nevada Central (ft US)");
+        "NAD83 / Nevada Central (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
     add_proj4text (p, 1,
@@ -2641,35 +2629,35 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nevada Central (ft US)\",GEOGCS[\"NAD83");
+        "PROJCS[\"NAD83 / Nevada Central (ftUS)\",GEOGCS[\"NAD83\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
+        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse");
+        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PAR");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARA");
     add_srs_wkt (p, 8,
-        "AMETER[\"central_meridian\",-116.6666666666667],PARAMETE");
+        "METER[\"central_meridian\",-116.6666666666667],PARAMETER");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",1");
+        "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",16");
     add_srs_wkt (p, 10,
-        "640416.6667],PARAMETER[\"false_northing\",19685000],UNIT");
+        "40416.6667],PARAMETER[\"false_northing\",19685000],UNIT[");
     add_srs_wkt (p, 11,
-        "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
         ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 13,
         "[\"EPSG\",\"3422\"]]");
     p = add_epsg_def (filter, first, last, 3423, "epsg", 3423,
-        "NAD83 / Nevada West (ft US)");
+        "NAD83 / Nevada West (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
     add_proj4text (p, 1,
@@ -2677,9 +2665,9 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nevada West (ft US)\",GEOGCS[\"NAD83\",");
+        "PROJCS[\"NAD83 / Nevada West (ftUS)\",GEOGCS[\"NAD83\",D");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
         ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 3,
@@ -2705,7 +2693,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "TY[\"EPSG\",\"3423\"]]");
     p = add_epsg_def (filter, first, last, 3424, "epsg", 3424,
-        "NAD83 / New Jersey (ft US)");
+        "NAD83 / New Jersey (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
     add_proj4text (p, 1,
@@ -2713,35 +2701,35 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New Jersey (ft US)\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83 / New Jersey (ftUS)\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",38.8333333333");
+        "cator\"],PARAMETER[\"latitude_of_origin\",38.83333333333");
     add_srs_wkt (p, 8,
-        "3334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"");
+        "334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",49212");
+        "cale_factor\",0.9999],PARAMETER[\"false_easting\",492125");
     add_srs_wkt (p, 10,
-        "5],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
     add_srs_wkt (p, 11,
-        "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS");
+        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3424");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3424\"]");
     add_srs_wkt (p, 13,
-        "\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 3425, "epsg", 3425,
-        "NAD83(HARN) / Iowa North (ft US)");
+        "NAD83(HARN) / Iowa North (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
@@ -2751,37 +2739,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Iowa North (ft US)\",GEOGCS[\"NAD");
+        "PROJCS[\"NAD83(HARN) / Iowa North (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network");
+        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
     add_srs_wkt (p, 2,
-        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "andard_parallel_1\",43.26666666666667],PARAMETER[\"stand");
+        "ard_parallel_1\",43.26666666666667],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "ard_parallel_2\",42.06666666666667],PARAMETER[\"latitude");
+        "_parallel_2\",42.06666666666667],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        "_of_origin\",41.5],PARAMETER[\"central_meridian\",-93.5]");
+        "_origin\",41.5],PARAMETER[\"central_meridian\",-93.5],PA");
     add_srs_wkt (p, 11,
-        ",PARAMETER[\"false_easting\",4921250],PARAMETER[\"false_");
+        "RAMETER[\"false_easting\",4921250],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        "northing\",3280833.333300001],UNIT[\"US survey foot\",0.");
+        "thing\",3280833.333300001],UNIT[\"US survey foot\",0.304");
     add_srs_wkt (p, 13,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
     add_srs_wkt (p, 14,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3425\"]]");
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3425\"]]");
     p = add_epsg_def (filter, first, last, 3426, "epsg", 3426,
-        "NAD83(HARN) / Iowa South (ft US)");
+        "NAD83(HARN) / Iowa South (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
@@ -2789,37 +2777,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Iowa South (ft US)\",GEOGCS[\"NAD");
+        "PROJCS[\"NAD83(HARN) / Iowa South (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network");
+        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
     add_srs_wkt (p, 2,
-        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "andard_parallel_1\",41.78333333333333],PARAMETER[\"stand");
+        "ard_parallel_1\",41.78333333333333],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "ard_parallel_2\",40.61666666666667],PARAMETER[\"latitude");
+        "_parallel_2\",40.61666666666667],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        "_of_origin\",40],PARAMETER[\"central_meridian\",-93.5],P");
+        "_origin\",40],PARAMETER[\"central_meridian\",-93.5],PARA");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_easting\",1640416.6667],PARAMETER[\"fal");
+        "METER[\"false_easting\",1640416.6667],PARAMETER[\"false_");
     add_srs_wkt (p, 12,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
     add_srs_wkt (p, 13,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 14,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3426\"]]");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"3426\"]]");
     p = add_epsg_def (filter, first, last, 3427, "epsg", 3427,
-        "NAD83(HARN) / Kansas North (ft US)");
+        "NAD83(HARN) / Kansas North (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
@@ -2829,39 +2817,37 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Kansas North (ft US)\",GEOGCS[\"N");
+        "PROJCS[\"NAD83(HARN) / Kansas North (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo");
+        "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ");
     add_srs_wkt (p, 2,
-        "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
+        "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[");
+        "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
+        "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st");
     add_srs_wkt (p, 8,
-        "standard_parallel_1\",39.78333333333333],PARAMETER[\"sta");
+        "andard_parallel_1\",39.78333333333333],PARAMETER[\"stand");
     add_srs_wkt (p, 9,
-        "ndard_parallel_2\",38.71666666666667],PARAMETER[\"latitu");
+        "ard_parallel_2\",38.71666666666667],PARAMETER[\"latitude");
     add_srs_wkt (p, 10,
-        "de_of_origin\",38.33333333333334],PARAMETER[\"central_me");
+        "_of_origin\",38.33333333333334],PARAMETER[\"central_meri");
     add_srs_wkt (p, 11,
-        "ridian\",-98],PARAMETER[\"false_easting\",1312333.3333],");
+        "dian\",-98],PARAMETER[\"false_easting\",1312333.3333],PA");
     add_srs_wkt (p, 12,
-        "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",");
+        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
     add_srs_wkt (p, 13,
-        "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
     add_srs_wkt (p, 14,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3427\"]");
-    add_srs_wkt (p, 15,
-        "]");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3427\"]]");
     p = add_epsg_def (filter, first, last, 3428, "epsg", 3428,
-        "NAD83(HARN) / Kansas South (ft US)");
+        "NAD83(HARN) / Kansas South (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
@@ -2871,39 +2857,39 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Kansas South (ft US)\",GEOGCS[\"N");
+        "PROJCS[\"NAD83(HARN) / Kansas South (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo");
+        "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ");
     add_srs_wkt (p, 2,
-        "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
+        "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[");
+        "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
+        "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st");
     add_srs_wkt (p, 8,
-        "standard_parallel_1\",38.56666666666667],PARAMETER[\"sta");
+        "andard_parallel_1\",38.56666666666667],PARAMETER[\"stand");
     add_srs_wkt (p, 9,
-        "ndard_parallel_2\",37.26666666666667],PARAMETER[\"latitu");
+        "ard_parallel_2\",37.26666666666667],PARAMETER[\"latitude");
     add_srs_wkt (p, 10,
-        "de_of_origin\",36.66666666666666],PARAMETER[\"central_me");
+        "_of_origin\",36.66666666666666],PARAMETER[\"central_meri");
     add_srs_wkt (p, 11,
-        "ridian\",-98.5],PARAMETER[\"false_easting\",1312333.3333");
+        "dian\",-98.5],PARAMETER[\"false_easting\",1312333.3333],");
     add_srs_wkt (p, 12,
-        "],PARAMETER[\"false_northing\",1312333.3333],UNIT[\"US s");
+        "PARAMETER[\"false_northing\",1312333.3333],UNIT[\"US sur");
     add_srs_wkt (p, 13,
-        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+        "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
     add_srs_wkt (p, 14,
-        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 15,
-        "G\",\"3428\"]]");
+        ",\"3428\"]]");
     p = add_epsg_def (filter, first, last, 3429, "epsg", 3429,
-        "NAD83(HARN) / Nevada East (ft US)");
+        "NAD83(HARN) / Nevada East (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
     add_proj4text (p, 1,
@@ -2911,13 +2897,13 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Nevada East (ft US)\",GEOGCS[\"NA");
+        "PROJCS[\"NAD83(HARN) / Nevada East (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ");
+        "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network");
     add_srs_wkt (p, 2,
-        "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
+        "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
         "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
@@ -2939,7 +2925,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3429\"]]");
     p = add_epsg_def (filter, first, last, 3430, "epsg", 3430,
-        "NAD83(HARN) / Nevada Central (ft US)");
+        "NAD83(HARN) / Nevada Central (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
     add_proj4text (p, 1,
@@ -2947,7 +2933,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Nevada Central (ft US)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(HARN) / Nevada Central (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
         "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw");
     add_srs_wkt (p, 2,
@@ -2975,7 +2961,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3430\"]]");
     p = add_epsg_def (filter, first, last, 3431, "epsg", 3431,
-        "NAD83(HARN) / Nevada West (ft US)");
+        "NAD83(HARN) / Nevada West (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
     add_proj4text (p, 1,
@@ -2983,13 +2969,13 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Nevada West (ft US)\",GEOGCS[\"NA");
+        "PROJCS[\"NAD83(HARN) / Nevada West (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ");
+        "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network");
     add_srs_wkt (p, 2,
-        "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
+        "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
         "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
@@ -3011,7 +2997,7 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3431\"]]");
     p = add_epsg_def (filter, first, last, 3432, "epsg", 3432,
-        "NAD83(HARN) / New Jersey (ft US)");
+        "NAD83(HARN) / New Jersey (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
     add_proj4text (p, 1,
@@ -3019,33 +3005,33 @@ initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         ",0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / New Jersey (ft US)\",GEOGCS[\"NAD");
+        "PROJCS[\"NAD83(HARN) / New Jersey (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network");
+        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
     add_srs_wkt (p, 2,
-        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PR");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
+        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
     add_srs_wkt (p, 8,
-        "f_origin\",38.83333333333334],PARAMETER[\"central_meridi");
+        "rigin\",38.83333333333334],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "an\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER");
+        ",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "[\"false_easting\",492125],PARAMETER[\"false_northing\",");
+        "alse_easting\",492125],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 11,
-        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+        "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"3432\"]]");
+        "RITY[\"EPSG\",\"3432\"]]");
     p = add_epsg_def (filter, first, last, 3433, "epsg", 3433,
         "NAD83 / Arkansas North (ftUS)");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_inlined_14.c b/src/srsinit/epsg_inlined_14.c
index 7cb8d11..25bbd15 100644
--- a/src/srsinit/epsg_inlined_14.c
+++ b/src/srsinit/epsg_inlined_14.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -587,7 +587,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\"");
     add_srs_wkt (p, 2,
-        ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"");
+        ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"");
     add_srs_wkt (p, 3,
         "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155");
     add_srs_wkt (p, 4,
@@ -619,7 +619,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\"");
     add_srs_wkt (p, 2,
-        ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"");
+        ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"");
     add_srs_wkt (p, 3,
         "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155");
     add_srs_wkt (p, 4,
@@ -819,11 +819,11 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32");
     add_proj4text (p, 1,
-        "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ga");
+        "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no");
     add_proj4text (p, 2,
-        "mma=323.1301023611111 +ellps=GRS80 +towgs84=0,0,0,0,0,0,");
+        "_uoff +gamma=323.1301023611111 +ellps=GRS80 +towgs84=0,0");
     add_proj4text (p, 3,
-        "0 +units=m +no_defs");
+        ",0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"NAD83(NSRS2007) / Alaska zone 1\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
@@ -3415,7 +3415,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 14,
         "ORITY[\"EPSG\",\"3536\"]]");
     p = add_epsg_def (filter, first, last, 3537, "epsg", 3537,
-        "NAD83(NSRS2007) / Iowa North (ft US)");
+        "NAD83(NSRS2007) / Iowa North (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
@@ -3425,7 +3425,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Iowa North (ft US)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(NSRS2007) / Iowa North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
         "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
@@ -3495,7 +3495,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 14,
         "EPSG\",\"3538\"]]");
     p = add_epsg_def (filter, first, last, 3539, "epsg", 3539,
-        "NAD83(NSRS2007) / Iowa South (ft US)");
+        "NAD83(NSRS2007) / Iowa South (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
@@ -3503,7 +3503,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Iowa South (ft US)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(NSRS2007) / Iowa South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
         "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
@@ -3571,7 +3571,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 14,
         "],AUTHORITY[\"EPSG\",\"3540\"]]");
     p = add_epsg_def (filter, first, last, 3541, "epsg", 3541,
-        "NAD83(NSRS2007) / Kansas North (ft US)");
+        "NAD83(NSRS2007) / Kansas North (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
@@ -3581,21 +3581,21 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Kansas North (ft US)\",GEOGCS");
+        "PROJCS[\"NAD83(NSRS2007) / Kansas North (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe");
+        "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25");
+        "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",");
+        ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 7,
-        "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 8,
         "],PARAMETER[\"standard_parallel_1\",39.78333333333333],P");
     add_srs_wkt (p, 9,
@@ -3653,7 +3653,7 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 14,
         ",NORTH],AUTHORITY[\"EPSG\",\"3542\"]]");
     p = add_epsg_def (filter, first, last, 3543, "epsg", 3543,
-        "NAD83(NSRS2007) / Kansas South (ft US)");
+        "NAD83(NSRS2007) / Kansas South (ftUS)");
     add_proj4text (p, 0,
         "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
@@ -3663,21 +3663,21 @@ initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 3,
         "0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Kansas South (ft US)\",GEOGCS");
+        "PROJCS[\"NAD83(NSRS2007) / Kansas South (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe");
+        "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25");
+        "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",");
+        ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 7,
-        "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 8,
         "],PARAMETER[\"standard_parallel_1\",38.56666666666667],P");
     add_srs_wkt (p, 9,
diff --git a/src/srsinit/epsg_inlined_15.c b/src/srsinit/epsg_inlined_15.c
index b31f967..93c9ea9 100644
--- a/src/srsinit/epsg_inlined_15.c
+++ b/src/srsinit/epsg_inlined_15.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -561,7 +561,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613");
     add_srs_wkt (p, 4,
@@ -599,7 +599,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613");
     add_srs_wkt (p, 4,
@@ -635,7 +635,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613");
     add_srs_wkt (p, 4,
@@ -671,7 +671,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613");
     add_srs_wkt (p, 4,
@@ -707,7 +707,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613");
     add_srs_wkt (p, 4,
@@ -1655,11 +1655,11 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33");
     add_proj4text (p, 1,
-        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ga");
+        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no");
     add_proj4text (p, 2,
-        "mma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units");
+        "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0");
     add_proj4text (p, 3,
-        "=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"NAD83(NSRS2007) / Michigan Oblique Mercator\",G");
     add_srs_wkt (p, 1,
@@ -2285,7 +2285,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "\"EPSG\",\"3607\"]]");
     p = add_epsg_def (filter, first, last, 3608, "epsg", 3608,
-        "NAD83(NSRS2007) / Nevada Central (ft US)");
+        "NAD83(NSRS2007) / Nevada Central (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
     add_proj4text (p, 1,
@@ -2293,15 +2293,15 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Nevada Central (ft US)\",GEOG");
+        "PROJCS[\"NAD83(NSRS2007) / Nevada Central (ftUS)\",GEOGC");
     add_srs_wkt (p, 1,
-        "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re");
+        "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.");
+        "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
+        ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
         ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
@@ -2359,7 +2359,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "EPSG\",\"3609\"]]");
     p = add_epsg_def (filter, first, last, 3610, "epsg", 3610,
-        "NAD83(NSRS2007) / Nevada East (ft US)");
+        "NAD83(NSRS2007) / Nevada East (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
     add_proj4text (p, 1,
@@ -2367,35 +2367,35 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Nevada East (ft US)\",GEOGCS[");
+        "PROJCS[\"NAD83(NSRS2007) / Nevada East (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer");
+        "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0");
+        "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",34.75],PARAMETER[\"central_me");
+        "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "ridian\",-115.5833333333333],PARAMETER[\"scale_factor\",");
+        "dian\",-115.5833333333333],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 10,
-        "0.9999],PARAMETER[\"false_easting\",656166.6667],PARAMET");
+        "9999],PARAMETER[\"false_easting\",656166.6667],PARAMETER");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",26246666.66670001],UNIT[\"US surve");
+        "[\"false_northing\",26246666.66670001],UNIT[\"US survey ");
     add_srs_wkt (p, 12,
-        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
     add_srs_wkt (p, 13,
-        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 14,
-        "\"3610\"]]");
+        "3610\"]]");
     p = add_epsg_def (filter, first, last, 3611, "epsg", 3611,
         "NAD83(NSRS2007) / Nevada West");
     add_proj4text (p, 0,
@@ -2433,7 +2433,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "EPSG\",\"3611\"]]");
     p = add_epsg_def (filter, first, last, 3612, "epsg", 3612,
-        "NAD83(NSRS2007) / Nevada West (ft US)");
+        "NAD83(NSRS2007) / Nevada West (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
     add_proj4text (p, 1,
@@ -2441,35 +2441,35 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Nevada West (ft US)\",GEOGCS[");
+        "PROJCS[\"NAD83(NSRS2007) / Nevada West (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer");
+        "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0");
+        "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",34.75],PARAMETER[\"central_me");
+        "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "ridian\",-118.5833333333333],PARAMETER[\"scale_factor\",");
+        "dian\",-118.5833333333333],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 10,
-        "0.9999],PARAMETER[\"false_easting\",2624666.6667],PARAME");
+        "9999],PARAMETER[\"false_easting\",2624666.6667],PARAMETE");
     add_srs_wkt (p, 11,
-        "TER[\"false_northing\",13123333.3333],UNIT[\"US survey f");
+        "R[\"false_northing\",13123333.3333],UNIT[\"US survey foo");
     add_srs_wkt (p, 12,
-        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
+        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
     add_srs_wkt (p, 13,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"361");
     add_srs_wkt (p, 14,
-        "612\"]]");
+        "2\"]]");
     p = add_epsg_def (filter, first, last, 3613, "epsg", 3613,
         "NAD83(NSRS2007) / New Hampshire");
     add_proj4text (p, 0,
@@ -2581,7 +2581,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 13,
         "3615\"]]");
     p = add_epsg_def (filter, first, last, 3616, "epsg", 3616,
-        "NAD83(NSRS2007) / New Jersey (ft US)");
+        "NAD83(NSRS2007) / New Jersey (ftUS)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
     add_proj4text (p, 1,
@@ -2589,7 +2589,7 @@ initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         ",0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / New Jersey (ft US)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(NSRS2007) / New Jersey (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
         "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
diff --git a/src/srsinit/epsg_inlined_16.c b/src/srsinit/epsg_inlined_16.c
index eabb9d1..8a85c37 100644
--- a/src/srsinit/epsg_inlined_16.c
+++ b/src/srsinit/epsg_inlined_16.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
diff --git a/src/srsinit/epsg_inlined_17.c b/src/srsinit/epsg_inlined_17.c
index 5c785a1..893b968 100644
--- a/src/srsinit/epsg_inlined_17.c
+++ b/src/srsinit/epsg_inlined_17.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -567,9 +567,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "0000],PARAMETER[\"false_northing\",800000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"37");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3764\"]]");
+        "64\"]]");
     p = add_epsg_def (filter, first, last, 3765, "epsg", 3765,
         "HTRS96 / Croatia TM");
     add_proj4text (p, 0,
@@ -715,7 +715,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "1957\",DATUM[\"Bermuda_1957\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",TOWGS84[-73,213,296,0,0,0,0],AUTHORITY[\"EPSG\",\"6216\"");
     add_srs_wkt (p, 4,
@@ -781,7 +781,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
         "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
@@ -813,7 +813,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
         "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
@@ -845,7 +845,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
         "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
@@ -877,7 +877,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ")\",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\"");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU");
+        ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AU");
     add_srs_wkt (p, 3,
         "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]");
     add_srs_wkt (p, 4,
@@ -1365,9 +1365,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3788\"");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3788\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3789, "epsg", 3789,
         "NZGD2000 / Campbell Island TM 2000");
     add_proj4text (p, 0,
@@ -1399,9 +1399,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3789\"]");
     add_srs_wkt (p, 12,
-        "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3789\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 3790, "epsg", 3790,
         "NZGD2000 / Antipodes Islands TM 2000");
     add_proj4text (p, 0,
@@ -1433,9 +1433,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3790\"");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3790\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3791, "epsg", 3791,
         "NZGD2000 / Raoul Island TM 2000");
     add_proj4text (p, 0,
@@ -1467,9 +1467,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Easting\",EAST],AUTHORITY[\"EPSG\",\"3791\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3791\"]]");
     p = add_epsg_def (filter, first, last, 3793, "epsg", 3793,
         "NZGD2000 / Chatham Islands TM 2000");
     add_proj4text (p, 0,
@@ -1501,9 +1499,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3793");
     add_srs_wkt (p, 12,
-        "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3793\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3794, "epsg", 3794,
         "Slovenia 1996 / Slovene National Grid");
     add_proj4text (p, 0,
@@ -1551,7 +1549,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
         "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
@@ -1569,11 +1567,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "easting\",500000],PARAMETER[\"false_northing\",280296.01");
     add_srs_wkt (p, 11,
-        "6],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "6],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"3795\"]");
-    add_srs_wkt (p, 13,
-        "]");
+        "ITY[\"EPSG\",\"3795\"]]");
     p = add_epsg_def (filter, first, last, 3796, "epsg", 3796,
         "NAD27 / Cuba Sur");
     add_proj4text (p, 0,
@@ -1587,7 +1583,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820");
     add_srs_wkt (p, 2,
-        "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH");
+        "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTH");
     add_srs_wkt (p, 3,
         "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 4,
@@ -1607,9 +1603,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         ",PARAMETER[\"false_northing\",229126.939],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"37");
     add_srs_wkt (p, 13,
-        "\"X\",EAST],AUTHORITY[\"EPSG\",\"3796\"]]");
+        "96\"]]");
     p = add_epsg_def (filter, first, last, 3797, "epsg", 3797,
         "NAD27 / MTQ Lambert");
     add_proj4text (p, 0,
@@ -1621,7 +1617,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -1723,7 +1719,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
         "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
@@ -2225,9 +2221,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "e_easting\",2500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3833\"]]");
+        "EPSG\",\"3833\"]]");
     p = add_epsg_def (filter, first, last, 3834, "epsg", 3834,
         "Pulkovo 1942(83) / Gauss-Kruger zone 2");
     add_proj4text (p, 0,
@@ -2259,9 +2255,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A");
-    add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"3834\"]]");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3834\"]]");
     p = add_epsg_def (filter, first, last, 3835, "epsg", 3835,
         "Pulkovo 1942(83) / Gauss-Kruger zone 3");
     add_proj4text (p, 0,
@@ -2293,9 +2287,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"3835\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3835\"]]");
     p = add_epsg_def (filter, first, last, 3836, "epsg", 3836,
         "Pulkovo 1942(83) / Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -2327,9 +2319,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"3836\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3836\"]]");
     p = add_epsg_def (filter, first, last, 3837, "epsg", 3837,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3");
     add_proj4text (p, 0,
@@ -2361,11 +2351,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "R[\"false_easting\",3500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 12,
-        "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3837\"");
-    add_srs_wkt (p, 13,
-        "]]");
+        "RITY[\"EPSG\",\"3837\"]]");
     p = add_epsg_def (filter, first, last, 3838, "epsg", 3838,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4");
     add_proj4text (p, 0,
@@ -2397,11 +2385,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",4500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"383");
-    add_srs_wkt (p, 13,
-        "8\"]]");
+        "HORITY[\"EPSG\",\"3838\"]]");
     p = add_epsg_def (filter, first, last, 3839, "epsg", 3839,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9");
     add_proj4text (p, 0,
@@ -2433,11 +2419,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",9500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"383");
-    add_srs_wkt (p, 13,
-        "9\"]]");
+        "HORITY[\"EPSG\",\"3839\"]]");
     p = add_epsg_def (filter, first, last, 3840, "epsg", 3840,
         "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10");
     add_proj4text (p, 0,
@@ -2469,11 +2453,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ER[\"false_easting\",10500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
     add_srs_wkt (p, 12,
-        "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"38");
-    add_srs_wkt (p, 13,
-        "40\"]]");
+        "THORITY[\"EPSG\",\"3840\"]]");
     p = add_epsg_def (filter, first, last, 3841, "epsg", 3841,
         "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6");
     add_proj4text (p, 0,
@@ -2505,9 +2487,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3841\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"3841\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3842, "epsg", 3842,
         "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)");
     add_proj4text (p, 0,
@@ -2539,9 +2521,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",6500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 11,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3842\"]]");
+        "PSG\",\"3842\"]]");
     p = add_epsg_def (filter, first, last, 3843, "epsg", 3843,
         "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)");
     add_proj4text (p, 0,
@@ -2573,9 +2555,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",6500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 11,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3843\"]]");
+        "PSG\",\"3843\"]]");
     p = add_epsg_def (filter, first, last, 3844, "epsg", 3844,
         "Pulkovo 1942(58) / Stereo70");
     add_proj4text (p, 0,
@@ -2607,9 +2589,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",500000],PARAMETER[\"false_northing\",500000],");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
     add_srs_wkt (p, 12,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3844\"]]");
+        "[\"EPSG\",\"3844\"]]");
     p = add_epsg_def (filter, first, last, 3845, "epsg", 3845,
         "SWEREF99 / RT90 7.5 gon V emulation");
     add_proj4text (p, 0,
@@ -2641,9 +2623,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "[\"false_northing\",-667.282],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"3845\"]]");
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3845\"]]");
     p = add_epsg_def (filter, first, last, 3846, "epsg", 3846,
         "SWEREF99 / RT90 5 gon V emulation");
     add_proj4text (p, 0,
@@ -2675,9 +2655,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",-667.13],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "THORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3846\"]");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"3846\"]]");
+        "]");
     p = add_epsg_def (filter, first, last, 3847, "epsg", 3847,
         "SWEREF99 / RT90 2.5 gon V emulation");
     add_proj4text (p, 0,
@@ -2709,9 +2689,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "274],PARAMETER[\"false_northing\",-667.711],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3847\"]]");
+        "3847\"]]");
     p = add_epsg_def (filter, first, last, 3848, "epsg", 3848,
         "SWEREF99 / RT90 0 gon emulation");
     add_proj4text (p, 0,
@@ -2743,9 +2723,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",-668.844],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
-    add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"3848\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3848\"]]");
     p = add_epsg_def (filter, first, last, 3849, "epsg", 3849,
         "SWEREF99 / RT90 2.5 gon O emulation");
     add_proj4text (p, 0,
@@ -2777,9 +2755,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         ",PARAMETER[\"false_northing\",-670.706],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3849");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"3849\"]]");
+        "\"]]");
     p = add_epsg_def (filter, first, last, 3850, "epsg", 3850,
         "SWEREF99 / RT90 5 gon O emulation");
     add_proj4text (p, 0,
@@ -2811,9 +2789,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",-672.557],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3850\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"3850\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 3851, "epsg", 3851,
         "NZGD2000 / NZCS2000");
     add_proj4text (p, 0,
@@ -2847,9 +2825,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "false_northing\",7000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting");
-    add_srs_wkt (p, 13,
-        "\",EAST],AUTHORITY[\"EPSG\",\"3851\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"3851\"]]");
     p = add_epsg_def (filter, first, last, 3852, "epsg", 3852,
         "RSRGD2000 / DGLC2000");
     add_proj4text (p, 0,
@@ -2883,11 +2859,9 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 12,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 13,
-        "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 14,
-        "852\"]]");
+        "SG\",\"3852\"]]");
     p = add_epsg_def (filter, first, last, 3854, "epsg", 3854,
         "County ST74");
     add_proj4text (p, 0,
@@ -2919,9 +2893,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "6500620.1207],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 12,
-        "\",\"3854\"]]");
+        "\"]],AUTHORITY[\"EPSG\",\"3854\"]]");
     p = add_epsg_def (filter, first, last, 3857, "epsg", 3857,
         "WGS 84 / Pseudo-Mercator");
     add_proj4text (p, 0,
@@ -2987,9 +2959,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3873\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3873\"]]");
     p = add_epsg_def (filter, first, last, 3874, "epsg", 3874,
         "ETRS89 / GK20FIN");
     add_proj4text (p, 0,
@@ -3019,9 +2989,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3874\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3874\"]]");
     p = add_epsg_def (filter, first, last, 3875, "epsg", 3875,
         "ETRS89 / GK21FIN");
     add_proj4text (p, 0,
@@ -3051,9 +3019,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3875\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3875\"]]");
     p = add_epsg_def (filter, first, last, 3876, "epsg", 3876,
         "ETRS89 / GK22FIN");
     add_proj4text (p, 0,
@@ -3083,9 +3049,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3876\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3876\"]]");
     p = add_epsg_def (filter, first, last, 3877, "epsg", 3877,
         "ETRS89 / GK23FIN");
     add_proj4text (p, 0,
@@ -3115,9 +3079,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3877\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3877\"]]");
     p = add_epsg_def (filter, first, last, 3878, "epsg", 3878,
         "ETRS89 / GK24FIN");
     add_proj4text (p, 0,
@@ -3147,9 +3109,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3878\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3878\"]]");
     p = add_epsg_def (filter, first, last, 3879, "epsg", 3879,
         "ETRS89 / GK25FIN");
     add_proj4text (p, 0,
@@ -3179,9 +3139,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3879\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3879\"]]");
     p = add_epsg_def (filter, first, last, 3880, "epsg", 3880,
         "ETRS89 / GK26FIN");
     add_proj4text (p, 0,
@@ -3211,9 +3169,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3880\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3880\"]]");
     p = add_epsg_def (filter, first, last, 3881, "epsg", 3881,
         "ETRS89 / GK27FIN");
     add_proj4text (p, 0,
@@ -3243,9 +3199,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3881\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3881\"]]");
     p = add_epsg_def (filter, first, last, 3882, "epsg", 3882,
         "ETRS89 / GK28FIN");
     add_proj4text (p, 0,
@@ -3275,9 +3229,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3882\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3882\"]]");
     p = add_epsg_def (filter, first, last, 3883, "epsg", 3883,
         "ETRS89 / GK29FIN");
     add_proj4text (p, 0,
@@ -3307,9 +3259,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3883\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3883\"]]");
     p = add_epsg_def (filter, first, last, 3884, "epsg", 3884,
         "ETRS89 / GK30FIN");
     add_proj4text (p, 0,
@@ -3339,9 +3289,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3884\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3884\"]]");
     p = add_epsg_def (filter, first, last, 3885, "epsg", 3885,
         "ETRS89 / GK31FIN");
     add_proj4text (p, 0,
@@ -3371,9 +3319,7 @@ initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"3885\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"3885\"]]");
     p = add_epsg_def (filter, first, last, 3889, "epsg", 3889,
         "IGRS");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_inlined_18.c b/src/srsinit/epsg_inlined_18.c
index 38380d5..ddfffa7 100644
--- a/src/srsinit/epsg_inlined_18.c
+++ b/src/srsinit/epsg_inlined_18.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -231,9 +231,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 12,
-        "\",\"3907\"]]");
+        "\"]],AUTHORITY[\"EPSG\",\"3907\"]]");
     p = add_epsg_def (filter, first, last, 3908, "epsg", 3908,
         "MGI 1901 / Balkans zone 6");
     add_proj4text (p, 0,
@@ -265,9 +263,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 12,
-        "\",\"3908\"]]");
+        "\"]],AUTHORITY[\"EPSG\",\"3908\"]]");
     p = add_epsg_def (filter, first, last, 3909, "epsg", 3909,
         "MGI 1901 / Balkans zone 7");
     add_proj4text (p, 0,
@@ -299,9 +295,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 12,
-        "\",\"3909\"]]");
+        "\"]],AUTHORITY[\"EPSG\",\"3909\"]]");
     p = add_epsg_def (filter, first, last, 3910, "epsg", 3910,
         "MGI 1901 / Balkans zone 8");
     add_proj4text (p, 0,
@@ -333,9 +327,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 12,
-        "\",\"3910\"]]");
+        "\"]],AUTHORITY[\"EPSG\",\"3910\"]]");
     p = add_epsg_def (filter, first, last, 3911, "epsg", 3911,
         "MGI 1901 / Slovenia Grid");
     add_proj4text (p, 0,
@@ -367,9 +359,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 12,
-        ",\"3911\"]]");
+        "]],AUTHORITY[\"EPSG\",\"3911\"]]");
     p = add_epsg_def (filter, first, last, 3912, "epsg", 3912,
         "MGI 1901 / Slovene National Grid");
     add_proj4text (p, 0,
@@ -415,7 +405,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "co\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TO");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TO");
     add_srs_wkt (p, 3,
         "WGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],");
     add_srs_wkt (p, 4,
@@ -1067,7 +1057,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP");
+        "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
         "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]");
     add_srs_wkt (p, 4,
@@ -1103,7 +1093,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke ");
     add_srs_wkt (p, 2,
-        "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"");
+        "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
         "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
@@ -1137,7 +1127,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke ");
     add_srs_wkt (p, 2,
-        "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"");
+        "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
         "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
@@ -1171,7 +1161,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke ");
     add_srs_wkt (p, 2,
-        "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"");
+        "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
         "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
@@ -1205,7 +1195,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke ");
     add_srs_wkt (p, 2,
-        "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"");
+        "1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
         "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
@@ -1241,7 +1231,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "uerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 186");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
         "8\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
@@ -1281,7 +1271,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378206.");
     add_srs_wkt (p, 2,
-        "4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS8");
+        "4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS8");
     add_srs_wkt (p, 3,
         "4[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],PRIM");
     add_srs_wkt (p, 4,
@@ -1553,7 +1543,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "id\",SPHEROID[\"Clarke 1858\",6378293.645208759,294.2606");
     add_srs_wkt (p, 3,
-        "763692654,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG");
+        "763692569,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 4,
         "\",\"6007\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 5,
@@ -1569,9 +1559,9 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "oid\",DATUM[\"Not_specified_based_on_Clarke_1866_ellipso");
     add_srs_wkt (p, 2,
-        "id\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898");
+        "id\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900");
     add_srs_wkt (p, 3,
-        "2,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"600");
+        "6,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"600");
     add_srs_wkt (p, 4,
         "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
@@ -1591,7 +1581,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "6_Michigan_ellipsoid\",SPHEROID[\"Clarke 1866 Michigan\"");
     add_srs_wkt (p, 3,
-        ",6378450.047548896,294.9786971646747,AUTHORITY[\"EPSG\",");
+        ",6378450.047548896,294.9786971646739,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
         "\"7009\"]],AUTHORITY[\"EPSG\",\"6009\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
@@ -1611,7 +1601,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "0_Benoit_ellipsoid\",SPHEROID[\"Clarke 1880 (Benoit)\",6");
     add_srs_wkt (p, 3,
-        "378300.789,293.4663155389811,AUTHORITY[\"EPSG\",\"7010\"");
+        "378300.789,293.4663155389802,AUTHORITY[\"EPSG\",\"7010\"");
     add_srs_wkt (p, 4,
         "]],AUTHORITY[\"EPSG\",\"6010\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
@@ -1631,7 +1621,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "GN_ellipsoid\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,");
     add_srs_wkt (p, 3,
-        "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORIT");
+        "293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORIT");
     add_srs_wkt (p, 4,
         "Y[\"EPSG\",\"6011\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
@@ -1699,9 +1689,9 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4015, "epsg", 4015,
         "Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +no_de");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_def");
     add_proj4text (p, 1,
-        "fs");
+        "s");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Unknown datum based upon the Everest 1830 (1937");
     add_srs_wkt (p, 1,
@@ -1919,9 +1909,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4026\"]]");
+        ",AUTHORITY[\"EPSG\",\"4026\"]]");
     p = add_epsg_def (filter, first, last, 4027, "epsg", 4027,
         "Unknown datum based upon the Plessis 1817 ellipsoid");
     add_proj4text (p, 0,
@@ -1943,7 +1931,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4028, "epsg", 4028,
         "Unknown datum based upon the Struve 1860 ellipsoid");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6378298.3 +b=6356657.142669562 +no_defs");
+        "+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Unknown datum based upon the Struve 1860 ellips");
     add_srs_wkt (p, 1,
@@ -2061,7 +2049,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "id\",SPHEROID[\"Clarke 1880\",6378249.144808011,293.4663");
     add_srs_wkt (p, 3,
-        "076556303,AUTHORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG");
+        "076556349,AUTHORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 4,
         "\",\"6034\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 5,
@@ -2129,9 +2117,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 10,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"4037\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4037\"]]");
     p = add_epsg_def (filter, first, last, 4038, "epsg", 4038,
         "WGS 84 / TMzn36N");
     add_proj4text (p, 0,
@@ -2157,9 +2143,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 10,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 11,
-        "T],AUTHORITY[\"EPSG\",\"4038\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4038\"]]");
     p = add_epsg_def (filter, first, last, 4041, "epsg", 4041,
         "Unknown datum based upon the Average Terrestrial System 1977 ellipsoid");
     add_proj4text (p, 0,
@@ -2193,7 +2177,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "st_1830_Definition_ellipsoid\",SPHEROID[\"Everest (1830 ");
     add_srs_wkt (p, 3,
-        "Definition)\",6377299.36559538,300.8017255433612,AUTHORI");
+        "Definition)\",6377299.36559538,300.8017255433552,AUTHORI");
     add_srs_wkt (p, 4,
         "TY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6042\"]],PRI");
     add_srs_wkt (p, 5,
@@ -2223,7 +2207,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4044, "epsg", 4044,
         "Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377301.243 +b=6356100.230165385 +no_de");
+        "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_de");
     add_proj4text (p, 1,
         "fs");
     add_srs_wkt (p, 0,
@@ -2487,7 +2471,7 @@ initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "ipsoid\",SPHEROID[\"Hughes 1980\",6378273,298.2794111230");
     add_srs_wkt (p, 3,
-        "64,AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"60");
+        "61,AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"60");
     add_srs_wkt (p, 4,
         "54\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
diff --git a/src/srsinit/epsg_inlined_19.c b/src/srsinit/epsg_inlined_19.c
index 02dfd01..260e4b4 100644
--- a/src/srsinit/epsg_inlined_19.c
+++ b/src/srsinit/epsg_inlined_19.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -507,23 +507,23 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4127, "epsg", 4127,
         "Tete");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk66 +towgs84=219.315,168.975,-16");
+        "+proj=longlat +ellps=clrk66 +towgs84=-73.472,-51.66,-112");
     add_proj4text (p, 1,
-        "6.145,0.198,5.926,-2.356,-57.104 +no_defs");
+        ".482,0.953,4.6,-2.368,0.586 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Tete\",DATUM[\"Tete\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 1,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 2,
-        "],TOWGS84[219.315,168.975,-166.145,0.198,5.926,-2.356,-5");
+        "],TOWGS84[-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586");
     add_srs_wkt (p, 3,
-        "7.104],AUTHORITY[\"EPSG\",\"6127\"]],PRIMEM[\"Greenwich\"");
+        "],AUTHORITY[\"EPSG\",\"6127\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4127\"]]");
+        ",\"4127\"]]");
     p = add_epsg_def (filter, first, last, 4128, "epsg", 4128,
         "Madzansua");
     add_proj4text (p, 0,
@@ -531,7 +531,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Madzansua\",DATUM[\"Madzansua\",SPHEROID[\"Clar");
     add_srs_wkt (p, 1,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 2,
         ",\"7008\"]],AUTHORITY[\"EPSG\",\"6128\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 3,
@@ -547,7 +547,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Observatario\",DATUM[\"Observatario\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 2,
         "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6129\"]],PRIMEM[\"");
     add_srs_wkt (p, 3,
@@ -577,9 +577,9 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4131, "epsg", 4131,
         "Indian 1960");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=198,881,317,0,0,0,0 +no_defs");
+        "4=198,881,317,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Indian 1960\",DATUM[\"Indian_1960\",SPHEROID[\"");
     add_srs_wkt (p, 1,
@@ -597,23 +597,23 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4132, "epsg", 4132,
         "FD58");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk80 +towgs84=-239.1,-170.02,397.");
+        "+proj=longlat +ellps=clrk80 +towgs84=-241.54,-163.64,396");
     add_proj4text (p, 1,
-        "5,0,0,0,0 +no_defs");
+        ".06,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"FD58\",DATUM[\"Final_Datum_1958\",SPHEROID[\"Cl");
     add_srs_wkt (p, 1,
         "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 2,
-        ",\"7012\"]],TOWGS84[-239.1,-170.02,397.5,0,0,0,0],AUTHOR");
+        ",\"7012\"]],TOWGS84[-241.54,-163.64,396.06,0,0,0,0],AUTH");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"6132\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+        "ORITY[\"EPSG\",\"6132\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4132\"");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"413");
     add_srs_wkt (p, 6,
-        "]]");
+        "2\"]]");
     p = add_epsg_def (filter, first, last, 4133, "epsg", 4133,
         "EST92");
     add_proj4text (p, 0,
@@ -663,7 +663,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Old Hawaiian\",DATUM[\"Old_Hawaiian\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 2,
         "EPSG\",\"7008\"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 3,
@@ -679,7 +679,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"St. Lawrence Island\",DATUM[\"St_Lawrence_Islan");
     add_srs_wkt (p, 1,
-        "d\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982");
+        "d\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006");
     add_srs_wkt (p, 2,
         ",AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6136");
     add_srs_wkt (p, 3,
@@ -695,7 +695,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"St. Paul Island\",DATUM[\"St_Paul_Island\",SPHE");
     add_srs_wkt (p, 1,
-        "ROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORI");
+        "ROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORI");
     add_srs_wkt (p, 2,
         "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6137\"]],PRI");
     add_srs_wkt (p, 3,
@@ -711,7 +711,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"St. George Island\",DATUM[\"St_George_Island\",");
     add_srs_wkt (p, 1,
-        "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUT");
+        "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUT");
     add_srs_wkt (p, 2,
         "HORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6138\"]]");
     add_srs_wkt (p, 3,
@@ -729,7 +729,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Puerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\"");
     add_srs_wkt (p, 1,
-        "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP");
+        "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP");
     add_srs_wkt (p, 2,
         "SG\",\"7008\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 3,
@@ -817,15 +817,15 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4144, "epsg", 4144,
         "Kalianpur 1937");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=282,726,254,0,0,0,0 +no_defs");
+        "4=214,804,268,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Kalianpur 1937\",DATUM[\"Kalianpur_1937\",SPHER");
     add_srs_wkt (p, 1,
         "OID[\"Everest 1830 (1937 Adjustment)\",6377276.345,300.8");
     add_srs_wkt (p, 2,
-        "017,AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[282,726,254,0,");
+        "017,AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[214,804,268,0,");
     add_srs_wkt (p, 3,
         "0,0,0],AUTHORITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
@@ -837,7 +837,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4145, "epsg", 4145,
         "Kalianpur 1962");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377301.243 +b=6356100.230165385 +towgs");
+        "+proj=longlat +a=6377301.243 +b=6356100.230165384 +towgs");
     add_proj4text (p, 1,
         "84=283,682,231,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
@@ -1033,7 +1033,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Dabola 1981\",DATUM[\"Dabola_1981\",SPHEROID[\"");
     add_srs_wkt (p, 1,
-        "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT");
+        "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT");
     add_srs_wkt (p, 2,
         "Y[\"EPSG\",\"7011\"]],TOWGS84[-83,37,124,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 3,
@@ -1073,7 +1073,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Mount Dillon\",DATUM[\"Mount_Dillon\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1858\",6378293.645208759,294.2606763692654,AUTH");
+        "\"Clarke 1858\",6378293.645208759,294.2606763692569,AUTH");
     add_srs_wkt (p, 2,
         "ORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6157\"]],");
     add_srs_wkt (p, 3,
@@ -1293,9 +1293,9 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19");
     add_srs_wkt (p, 1,
-        "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898");
+        "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900");
     add_srs_wkt (p, 2,
-        "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0");
+        "6,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0");
     add_srs_wkt (p, 3,
         ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
@@ -1687,7 +1687,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Manoca 1962\",DATUM[\"Manoca_1962\",SPHEROID[\"");
     add_srs_wkt (p, 1,
-        "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT");
+        "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT");
     add_srs_wkt (p, 2,
         "Y[\"EPSG\",\"7011\"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0");
     add_srs_wkt (p, 3,
@@ -1925,7 +1925,7 @@ initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Agadez\",DATUM[\"Agadez\",SPHEROID[\"Clarke 188");
     add_srs_wkt (p, 1,
-        "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\"");
+        "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 2,
         ",\"7011\"]],AUTHORITY[\"EPSG\",\"6206\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 3,
diff --git a/src/srsinit/epsg_inlined_20.c b/src/srsinit/epsg_inlined_20.c
index 154ee86..25b7b47 100644
--- a/src/srsinit/epsg_inlined_20.c
+++ b/src/srsinit/epsg_inlined_20.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -61,7 +61,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Beduaram\",DATUM[\"Beduaram\",SPHEROID[\"Clarke");
     add_srs_wkt (p, 1,
-        " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP");
+        " 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EP");
     add_srs_wkt (p, 2,
         "SG\",\"7011\"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 3,
@@ -113,7 +113,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Bermuda 1957\",DATUM[\"Bermuda_1957\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 2,
         "EPSG\",\"7008\"]],TOWGS84[-73,213,296,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 3,
@@ -251,7 +251,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Carthage\",DATUM[\"Carthage\",SPHEROID[\"Clarke");
     add_srs_wkt (p, 1,
-        " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP");
+        " 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EP");
     add_srs_wkt (p, 2,
         "SG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 3,
@@ -305,7 +305,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Cote d'Ivoire\",DATUM[\"Cote_d_Ivoire\",SPHEROI");
     add_srs_wkt (p, 1,
-        "D[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTH");
+        "D[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTH");
     add_srs_wkt (p, 2,
         "ORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6226\"]],");
     add_srs_wkt (p, 3,
@@ -323,7 +323,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Deir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"");
     add_srs_wkt (p, 1,
-        "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT");
+        "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT");
     add_srs_wkt (p, 2,
         "Y[\"EPSG\",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,");
     add_srs_wkt (p, 3,
@@ -341,7 +341,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Douala\",DATUM[\"Douala\",SPHEROID[\"Clarke 188");
     add_srs_wkt (p, 1,
-        "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\"");
+        "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 2,
         ",\"7011\"]],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 3,
@@ -449,7 +449,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Garoua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 188");
     add_srs_wkt (p, 1,
-        "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\"");
+        "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 2,
         ",\"7011\"]],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 3,
@@ -535,9 +535,9 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4239, "epsg", 4239,
         "Indian 1954");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=217,823,299,0,0,0,0 +no_defs");
+        "4=217,823,299,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Indian 1954\",DATUM[\"Indian_1954\",SPHEROID[\"");
     add_srs_wkt (p, 1,
@@ -555,9 +555,9 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4240, "epsg", 4240,
         "Indian 1975");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=210,814,289,0,0,0,0 +no_defs");
+        "4=210,814,289,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Indian 1975\",DATUM[\"Indian_1975\",SPHEROID[\"");
     add_srs_wkt (p, 1,
@@ -581,7 +581,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Jamaica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1880\",6378249.144808011,293.4663076556303,AUTH");
+        "\"Clarke 1880\",6378249.144808011,293.4663076556349,AUTH");
     add_srs_wkt (p, 2,
         "ORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],");
     add_srs_wkt (p, 3,
@@ -599,7 +599,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"JAD69\",DATUM[\"Jamaica_1969\",SPHEROID[\"Clark");
     add_srs_wkt (p, 1,
-        "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",");
+        "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 2,
         "\"7008\"]],TOWGS84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
@@ -619,7 +619,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "OID[\"Everest (1830 Definition)\",6377299.36559538,300.8");
     add_srs_wkt (p, 2,
-        "017255433612,AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"E");
+        "017255433552,AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 3,
         "PSG\",\"6243\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 4,
@@ -629,9 +629,9 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4244, "epsg", 4244,
         "Kandawala");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=-97,787,86,0,0,0,0 +no_defs");
+        "4=-97,787,86,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Kandawala\",DATUM[\"Kandawala\",SPHEROID[\"Ever");
     add_srs_wkt (p, 1,
@@ -781,7 +781,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Lome\",DATUM[\"Lome\",SPHEROID[\"Clarke 1880 (I");
     add_srs_wkt (p, 1,
-        "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7");
+        "GN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 2,
         "011\"]],AUTHORITY[\"EPSG\",\"6252\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 3,
@@ -799,7 +799,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Luzon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Cl");
     add_srs_wkt (p, 1,
-        "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG");
+        "arke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 2,
         "\",\"7008\"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 3,
@@ -945,7 +945,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Merchich\",DATUM[\"Merchich\",SPHEROID[\"Clarke");
     add_srs_wkt (p, 1,
-        " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP");
+        " 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EP");
     add_srs_wkt (p, 2,
         "SG\",\"7011\"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 3,
@@ -1037,7 +1037,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"M'poraloko\",DATUM[\"M_poraloko\",SPHEROID[\"Cl");
     add_srs_wkt (p, 1,
-        "arke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[");
+        "arke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[");
     add_srs_wkt (p, 2,
         "\"EPSG\",\"7011\"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 3,
@@ -1055,7 +1055,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPH");
     add_srs_wkt (p, 1,
-        "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR");
+        "EROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHOR");
     add_srs_wkt (p, 2,
         "ITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PR");
     add_srs_wkt (p, 3,
@@ -1075,7 +1075,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869");
     add_srs_wkt (p, 2,
-        "71646747,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\"");
+        "71646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
@@ -1101,21 +1101,23 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4270, "epsg", 4270,
         "Nahrwan 1967");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk80 +towgs84=-243,-192,477,0,0,0");
+        "+proj=longlat +ellps=clrk80 +towgs84=-242.2,-144.9,370.3");
     add_proj4text (p, 1,
-        ",0 +no_defs");
+        ",0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Nahrwan 1967\",DATUM[\"Nahrwan_1967\",SPHEROID[");
     add_srs_wkt (p, 1,
         "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP");
     add_srs_wkt (p, 2,
-        "SG\",\"7012\"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY");
+        "SG\",\"7012\"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUT");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "HORITY[\"EPSG\",\"6270\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]]");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+    add_srs_wkt (p, 6,
+        "70\"]]");
     p = add_epsg_def (filter, first, last, 4271, "epsg", 4271,
         "Naparima 1972");
     add_proj4text (p, 0,
@@ -1201,7 +1203,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
     add_srs_wkt (p, 2,
-        "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
+        "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
     add_srs_wkt (p, 3,
         ",0,0,0],AUTHORITY[\"EPSG\",\"6275\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
@@ -1235,13 +1237,15 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 2,
-        "1\"]],TOWGS84[375,-111,431,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "1\"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-");
     add_srs_wkt (p, 3,
-        "6277\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "20.489],AUTHORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4277\"]]");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4277\"]]");
     p = add_epsg_def (filter, first, last, 4278, "epsg", 4278,
         "OSGB70");
     add_proj4text (p, 0,
@@ -1301,7 +1305,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "OID[\"Clarke 1880 (Benoit)\",6378300.789,293.46631553898");
     add_srs_wkt (p, 2,
-        "11,AUTHORITY[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.782");
+        "02,AUTHORITY[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.782");
     add_srs_wkt (p, 3,
         "4,340.894,-8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
@@ -1321,7 +1325,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
     add_srs_wkt (p, 2,
-        "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0");
+        "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0");
     add_srs_wkt (p, 3,
         ",0,0,0],AUTHORITY[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
@@ -1553,7 +1557,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Sudan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 ");
     add_srs_wkt (p, 1,
-        "(IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"");
+        "(IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 2,
         "7011\"]],AUTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 3,
@@ -1583,23 +1587,23 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4298, "epsg", 4298,
         "Timbalai 1948");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=evrstSS +towgs84=-533.4,669.2,-52.5");
+        "+proj=longlat +ellps=evrstSS +towgs84=-679,669,-48,0,0,0");
     add_proj4text (p, 1,
-        ",0,0,4.28,9.4 +no_defs");
+        ",0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Timbalai 1948\",DATUM[\"Timbalai_1948\",SPHEROI");
     add_srs_wkt (p, 1,
         "D[\"Everest 1830 (1967 Definition)\",6377298.556,300.801");
     add_srs_wkt (p, 2,
-        "7,AUTHORITY[\"EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52");
+        "7,AUTHORITY[\"EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0");
     add_srs_wkt (p, 3,
-        ".5,0,0,4.28,9.4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"");
+        ",0,0],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4298\"]]");
+        "SG\",\"4298\"]]");
     p = add_epsg_def (filter, first, last, 4299, "epsg", 4299,
         "TM65");
     add_proj4text (p, 0,
@@ -1665,7 +1669,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROI");
     add_srs_wkt (p, 1,
-        "D[\"Clarke 1858\",6378293.645208759,294.2606763692654,AU");
+        "D[\"Clarke 1858\",6378293.645208759,294.2606763692569,AU");
     add_srs_wkt (p, 2,
         "THORITY[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472.");
     add_srs_wkt (p, 3,
@@ -1701,7 +1705,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"");
     add_srs_wkt (p, 1,
-        "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT");
+        "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT");
     add_srs_wkt (p, 2,
         "Y[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTH");
     add_srs_wkt (p, 3,
@@ -1731,23 +1735,23 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4307, "epsg", 4307,
         "Nord Sahara 1959");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,");
+        "+proj=longlat +ellps=clrk80 +towgs84=-209.362,-87.8162,4");
     add_proj4text (p, 1,
-        "0 +no_defs");
+        "04.62,0.0046,3.4784,0.5805,-1.4547 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",S");
     add_srs_wkt (p, 1,
         "PHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHOR");
     add_srs_wkt (p, 2,
-        "ITY[\"EPSG\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AU");
+        "ITY[\"EPSG\",\"7012\"]],TOWGS84[-209.362,-87.8162,404.62");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        ",0.0046,3.4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "307\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]]");
     p = add_epsg_def (filter, first, last, 4308, "epsg", 4308,
         "RT38");
     add_proj4text (p, 0,
@@ -1789,7 +1793,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Yoff\",DATUM[\"Yoff\",SPHEROID[\"Clarke 1880 (I");
     add_srs_wkt (p, 1,
-        "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7");
+        "GN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 2,
         "011\"]],AUTHORITY[\"EPSG\",\"6310\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 3,
@@ -1881,7 +1885,7 @@ initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHOR");
+        "\"Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHOR");
     add_srs_wkt (p, 2,
         "ITY[\"EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTH");
     add_srs_wkt (p, 3,
diff --git a/src/srsinit/epsg_inlined_21.c b/src/srsinit/epsg_inlined_21.c
index e822aaf..67291cb 100644
--- a/src/srsinit/epsg_inlined_21.c
+++ b/src/srsinit/epsg_inlined_21.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -177,7 +177,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -209,7 +209,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -241,7 +241,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -273,7 +273,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -305,7 +305,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -337,7 +337,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -369,7 +369,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -401,7 +401,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -433,7 +433,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -465,7 +465,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -497,7 +497,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
         ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
@@ -529,7 +529,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -561,7 +561,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -593,7 +593,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -625,7 +625,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -693,7 +693,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
         "]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
@@ -747,9 +747,9 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"4417\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"4417\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 4418, "epsg", 4418,
         "NAD27 / BLM 18N (ftUS)");
     add_proj4text (p, 0,
@@ -761,7 +761,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -793,7 +793,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
         "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
@@ -1293,9 +1293,9 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"4434\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"4434\"]]");
+        "]]");
     p = add_epsg_def (filter, first, last, 4437, "epsg", 4437,
         "NAD83(NSRS2007) / Puerto Rico and Virgin Is.");
     add_proj4text (p, 0,
@@ -1415,7 +1415,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
         "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
@@ -1453,7 +1453,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
         "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
@@ -1653,37 +1653,37 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 12,
         "ORTH],AUTHORITY[\"EPSG\",\"4471\"]]");
     p = add_epsg_def (filter, first, last, 4474, "epsg", 4474,
-        "Cadastre 1997 / UTM zone 38S");
+        "Cadastre 1997 / UTM zone 38S (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,");
     add_proj4text (p, 1,
         "-262,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cadastre 1997 / UTM zone 38S\",GEOGCS[\"Combani");
+        "PROJCS[\"Cadastre 1997 / UTM zone 38S (deprecated)\",GEO");
     add_srs_wkt (p, 1,
-        " 1950\",DATUM[\"Combani_1950\",SPHEROID[\"International ");
+        "GCS[\"Combani 1950\",DATUM[\"Combani_1950\",SPHEROID[\"I");
     add_srs_wkt (p, 2,
-        "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84");
+        "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\",\"6632\"]],PR");
+        "2\"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "\"6632\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTION[\"Transverse");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",0");
+        "n\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        ",PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"4474\"]]");
+        "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4474\"]]");
     p = add_epsg_def (filter, first, last, 4475, "epsg", 4475,
         "Cadastre 1997");
     add_proj4text (p, 0,
@@ -1705,217 +1705,215 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "475\"]]");
     p = add_epsg_def (filter, first, last, 4483, "epsg", 4483,
-        "Mexican Datum of 1993");
+        "Mexico ITRF92");
     add_proj4text (p, 0,
         "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de");
     add_proj4text (p, 1,
         "fs");
     add_srs_wkt (p, 0,
-        "GEOGCS[\"Mexican Datum of 1993\",DATUM[\"Mexican_Datum_o");
+        "GEOGCS[\"Mexico ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROI");
     add_srs_wkt (p, 1,
-        "f_1993\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
+        "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR");
+        "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+        "042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"");
-    add_srs_wkt (p, 6,
-        "]]");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]]");
     p = add_epsg_def (filter, first, last, 4484, "epsg", 4484,
-        "Mexican Datum of 1993 / UTM zone 11N");
+        "Mexico ITRF92 / UTM zone 11N");
     add_proj4text (p, 0,
         "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mexican Datum of 1993 / UTM zone 11N\",GEOGCS[\"");
+        "PROJCS[\"Mexico ITRF92 / UTM zone 11N\",GEOGCS[\"Mexico ");
     add_srs_wkt (p, 1,
-        "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\",");
+        "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE");
+        "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-117],PARAMETE");
+        "entral_meridian\",-117],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4484\"]]");
+        "THORITY[\"EPSG\",\"4484\"]]");
     p = add_epsg_def (filter, first, last, 4485, "epsg", 4485,
-        "Mexican Datum of 1993 / UTM zone 12N");
+        "Mexico ITRF92 / UTM zone 12N");
     add_proj4text (p, 0,
         "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mexican Datum of 1993 / UTM zone 12N\",GEOGCS[\"");
+        "PROJCS[\"Mexico ITRF92 / UTM zone 12N\",GEOGCS[\"Mexico ");
     add_srs_wkt (p, 1,
-        "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\",");
+        "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE");
+        "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-111],PARAMETE");
+        "entral_meridian\",-111],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4485\"]]");
+        "THORITY[\"EPSG\",\"4485\"]]");
     p = add_epsg_def (filter, first, last, 4486, "epsg", 4486,
-        "Mexican Datum of 1993 / UTM zone 13N");
+        "Mexico ITRF92 / UTM zone 13N");
     add_proj4text (p, 0,
         "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mexican Datum of 1993 / UTM zone 13N\",GEOGCS[\"");
+        "PROJCS[\"Mexico ITRF92 / UTM zone 13N\",GEOGCS[\"Mexico ");
     add_srs_wkt (p, 1,
-        "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\",");
+        "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE");
+        "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-105],PARAMETE");
+        "entral_meridian\",-105],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",5");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4486\"]]");
+        "THORITY[\"EPSG\",\"4486\"]]");
     p = add_epsg_def (filter, first, last, 4487, "epsg", 4487,
-        "Mexican Datum of 1993 / UTM zone 14N");
+        "Mexico ITRF92 / UTM zone 14N");
     add_proj4text (p, 0,
         "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mexican Datum of 1993 / UTM zone 14N\",GEOGCS[\"");
+        "PROJCS[\"Mexico ITRF92 / UTM zone 14N\",GEOGCS[\"Mexico ");
     add_srs_wkt (p, 1,
-        "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\",");
+        "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE");
+        "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-99],PARAMETER");
+        "entral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996");
     add_srs_wkt (p, 9,
-        "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50");
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4487\"]]");
+        "HORITY[\"EPSG\",\"4487\"]]");
     p = add_epsg_def (filter, first, last, 4488, "epsg", 4488,
-        "Mexican Datum of 1993 / UTM zone 15N");
+        "Mexico ITRF92 / UTM zone 15N");
     add_proj4text (p, 0,
         "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mexican Datum of 1993 / UTM zone 15N\",GEOGCS[\"");
+        "PROJCS[\"Mexico ITRF92 / UTM zone 15N\",GEOGCS[\"Mexico ");
     add_srs_wkt (p, 1,
-        "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\",");
+        "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE");
+        "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-93],PARAMETER");
+        "entral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996");
     add_srs_wkt (p, 9,
-        "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50");
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4488\"]]");
+        "HORITY[\"EPSG\",\"4488\"]]");
     p = add_epsg_def (filter, first, last, 4489, "epsg", 4489,
-        "Mexican Datum of 1993 / UTM zone 16N");
+        "Mexico ITRF92 / UTM zone 16N");
     add_proj4text (p, 0,
         "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mexican Datum of 1993 / UTM zone 16N\",GEOGCS[\"");
+        "PROJCS[\"Mexico ITRF92 / UTM zone 16N\",GEOGCS[\"Mexico ");
     add_srs_wkt (p, 1,
-        "Mexican Datum of 1993\",DATUM[\"Mexican_Datum_of_1993\",");
+        "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "G\",\"1042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4483\"]],PROJE");
+        "HORITY[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-87],PARAMETER");
+        "entral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996");
     add_srs_wkt (p, 9,
-        "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50");
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4489\"]]");
+        "HORITY[\"EPSG\",\"4489\"]]");
     p = add_epsg_def (filter, first, last, 4490, "epsg", 4490,
         "China Geodetic Coordinate System 2000");
     add_proj4text (p, 0,
@@ -1961,9 +1959,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4491\"]]");
+        ",AUTHORITY[\"EPSG\",\"4491\"]]");
     p = add_epsg_def (filter, first, last, 4492, "epsg", 4492,
         "CGCS2000 / Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -1993,9 +1989,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4492\"]]");
+        ",AUTHORITY[\"EPSG\",\"4492\"]]");
     p = add_epsg_def (filter, first, last, 4493, "epsg", 4493,
         "CGCS2000 / Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -2025,9 +2019,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4493\"]]");
+        ",AUTHORITY[\"EPSG\",\"4493\"]]");
     p = add_epsg_def (filter, first, last, 4494, "epsg", 4494,
         "CGCS2000 / Gauss-Kruger zone 16");
     add_proj4text (p, 0,
@@ -2057,9 +2049,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4494\"]]");
+        ",AUTHORITY[\"EPSG\",\"4494\"]]");
     p = add_epsg_def (filter, first, last, 4495, "epsg", 4495,
         "CGCS2000 / Gauss-Kruger zone 17");
     add_proj4text (p, 0,
@@ -2089,9 +2079,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4495\"]]");
+        ",AUTHORITY[\"EPSG\",\"4495\"]]");
     p = add_epsg_def (filter, first, last, 4496, "epsg", 4496,
         "CGCS2000 / Gauss-Kruger zone 18");
     add_proj4text (p, 0,
@@ -2121,9 +2109,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 11,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 12,
-        "\"4496\"]]");
+        "],AUTHORITY[\"EPSG\",\"4496\"]]");
     p = add_epsg_def (filter, first, last, 4497, "epsg", 4497,
         "CGCS2000 / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
@@ -2153,9 +2139,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 11,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 12,
-        "\"4497\"]]");
+        "],AUTHORITY[\"EPSG\",\"4497\"]]");
     p = add_epsg_def (filter, first, last, 4498, "epsg", 4498,
         "CGCS2000 / Gauss-Kruger zone 20");
     add_proj4text (p, 0,
@@ -2185,9 +2169,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 11,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 12,
-        "\"4498\"]]");
+        "],AUTHORITY[\"EPSG\",\"4498\"]]");
     p = add_epsg_def (filter, first, last, 4499, "epsg", 4499,
         "CGCS2000 / Gauss-Kruger zone 21");
     add_proj4text (p, 0,
@@ -2217,9 +2199,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 11,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 12,
-        "\"4499\"]]");
+        "],AUTHORITY[\"EPSG\",\"4499\"]]");
     p = add_epsg_def (filter, first, last, 4500, "epsg", 4500,
         "CGCS2000 / Gauss-Kruger zone 22");
     add_proj4text (p, 0,
@@ -2249,9 +2229,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 11,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 12,
-        "\"4500\"]]");
+        "],AUTHORITY[\"EPSG\",\"4500\"]]");
     p = add_epsg_def (filter, first, last, 4501, "epsg", 4501,
         "CGCS2000 / Gauss-Kruger zone 23");
     add_proj4text (p, 0,
@@ -2281,9 +2259,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 11,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 12,
-        "\"4501\"]]");
+        "],AUTHORITY[\"EPSG\",\"4501\"]]");
     p = add_epsg_def (filter, first, last, 4502, "epsg", 4502,
         "CGCS2000 / Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -2313,9 +2289,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4");
-    add_srs_wkt (p, 12,
-        "502\"]]");
+        "UTHORITY[\"EPSG\",\"4502\"]]");
     p = add_epsg_def (filter, first, last, 4503, "epsg", 4503,
         "CGCS2000 / Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -2345,9 +2319,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4");
-    add_srs_wkt (p, 12,
-        "503\"]]");
+        "UTHORITY[\"EPSG\",\"4503\"]]");
     p = add_epsg_def (filter, first, last, 4504, "epsg", 4504,
         "CGCS2000 / Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -2377,9 +2349,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4");
-    add_srs_wkt (p, 12,
-        "504\"]]");
+        "UTHORITY[\"EPSG\",\"4504\"]]");
     p = add_epsg_def (filter, first, last, 4505, "epsg", 4505,
         "CGCS2000 / Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -2409,9 +2379,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4");
-    add_srs_wkt (p, 12,
-        "505\"]]");
+        "UTHORITY[\"EPSG\",\"4505\"]]");
     p = add_epsg_def (filter, first, last, 4506, "epsg", 4506,
         "CGCS2000 / Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -2441,9 +2409,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4");
-    add_srs_wkt (p, 12,
-        "506\"]]");
+        "UTHORITY[\"EPSG\",\"4506\"]]");
     p = add_epsg_def (filter, first, last, 4507, "epsg", 4507,
         "CGCS2000 / Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -2473,9 +2439,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4507\"]]");
+        "AUTHORITY[\"EPSG\",\"4507\"]]");
     p = add_epsg_def (filter, first, last, 4508, "epsg", 4508,
         "CGCS2000 / Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -2505,9 +2469,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4508\"]]");
+        "AUTHORITY[\"EPSG\",\"4508\"]]");
     p = add_epsg_def (filter, first, last, 4509, "epsg", 4509,
         "CGCS2000 / Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -2537,9 +2499,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4509\"]]");
+        "AUTHORITY[\"EPSG\",\"4509\"]]");
     p = add_epsg_def (filter, first, last, 4510, "epsg", 4510,
         "CGCS2000 / Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -2569,9 +2529,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4510\"]]");
+        "AUTHORITY[\"EPSG\",\"4510\"]]");
     p = add_epsg_def (filter, first, last, 4511, "epsg", 4511,
         "CGCS2000 / Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -2601,9 +2559,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4511\"]]");
+        "AUTHORITY[\"EPSG\",\"4511\"]]");
     p = add_epsg_def (filter, first, last, 4512, "epsg", 4512,
         "CGCS2000 / Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -2633,9 +2589,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "4512\"]]");
+        "AUTHORITY[\"EPSG\",\"4512\"]]");
     p = add_epsg_def (filter, first, last, 4513, "epsg", 4513,
         "CGCS2000 / 3-degree Gauss-Kruger zone 25");
     add_proj4text (p, 0,
@@ -2665,9 +2619,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4513\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4513\"]]");
     p = add_epsg_def (filter, first, last, 4514, "epsg", 4514,
         "CGCS2000 / 3-degree Gauss-Kruger zone 26");
     add_proj4text (p, 0,
@@ -2697,9 +2649,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4514\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4514\"]]");
     p = add_epsg_def (filter, first, last, 4515, "epsg", 4515,
         "CGCS2000 / 3-degree Gauss-Kruger zone 27");
     add_proj4text (p, 0,
@@ -2729,9 +2679,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4515\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4515\"]]");
     p = add_epsg_def (filter, first, last, 4516, "epsg", 4516,
         "CGCS2000 / 3-degree Gauss-Kruger zone 28");
     add_proj4text (p, 0,
@@ -2761,9 +2709,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4516\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4516\"]]");
     p = add_epsg_def (filter, first, last, 4517, "epsg", 4517,
         "CGCS2000 / 3-degree Gauss-Kruger zone 29");
     add_proj4text (p, 0,
@@ -2793,9 +2739,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4517\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4517\"]]");
     p = add_epsg_def (filter, first, last, 4518, "epsg", 4518,
         "CGCS2000 / 3-degree Gauss-Kruger zone 30");
     add_proj4text (p, 0,
@@ -2825,9 +2769,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4518\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4518\"]]");
     p = add_epsg_def (filter, first, last, 4519, "epsg", 4519,
         "CGCS2000 / 3-degree Gauss-Kruger zone 31");
     add_proj4text (p, 0,
@@ -2857,9 +2799,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4519\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4519\"]]");
     p = add_epsg_def (filter, first, last, 4520, "epsg", 4520,
         "CGCS2000 / 3-degree Gauss-Kruger zone 32");
     add_proj4text (p, 0,
@@ -2889,9 +2829,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4520\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4520\"]]");
     p = add_epsg_def (filter, first, last, 4521, "epsg", 4521,
         "CGCS2000 / 3-degree Gauss-Kruger zone 33");
     add_proj4text (p, 0,
@@ -2921,9 +2859,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4521\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4521\"]]");
     p = add_epsg_def (filter, first, last, 4522, "epsg", 4522,
         "CGCS2000 / 3-degree Gauss-Kruger zone 34");
     add_proj4text (p, 0,
@@ -2953,9 +2889,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4522\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4522\"]]");
     p = add_epsg_def (filter, first, last, 4523, "epsg", 4523,
         "CGCS2000 / 3-degree Gauss-Kruger zone 35");
     add_proj4text (p, 0,
@@ -2985,9 +2919,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4523\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4523\"]]");
     p = add_epsg_def (filter, first, last, 4524, "epsg", 4524,
         "CGCS2000 / 3-degree Gauss-Kruger zone 36");
     add_proj4text (p, 0,
@@ -3017,9 +2949,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4524\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4524\"]]");
     p = add_epsg_def (filter, first, last, 4525, "epsg", 4525,
         "CGCS2000 / 3-degree Gauss-Kruger zone 37");
     add_proj4text (p, 0,
@@ -3049,9 +2979,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4525\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4525\"]]");
     p = add_epsg_def (filter, first, last, 4526, "epsg", 4526,
         "CGCS2000 / 3-degree Gauss-Kruger zone 38");
     add_proj4text (p, 0,
@@ -3081,9 +3009,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4526\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4526\"]]");
     p = add_epsg_def (filter, first, last, 4527, "epsg", 4527,
         "CGCS2000 / 3-degree Gauss-Kruger zone 39");
     add_proj4text (p, 0,
@@ -3113,9 +3039,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4527\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4527\"]]");
     p = add_epsg_def (filter, first, last, 4528, "epsg", 4528,
         "CGCS2000 / 3-degree Gauss-Kruger zone 40");
     add_proj4text (p, 0,
@@ -3145,9 +3069,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4528\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4528\"]]");
     p = add_epsg_def (filter, first, last, 4529, "epsg", 4529,
         "CGCS2000 / 3-degree Gauss-Kruger zone 41");
     add_proj4text (p, 0,
@@ -3177,9 +3099,7 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4529\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4529\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_22.c b/src/srsinit/epsg_inlined_22.c
index a133b1c..d6c4fac 100644
--- a/src/srsinit/epsg_inlined_22.c
+++ b/src/srsinit/epsg_inlined_22.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -81,9 +81,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4530\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4530\"]]");
     p = add_epsg_def (filter, first, last, 4531, "epsg", 4531,
         "CGCS2000 / 3-degree Gauss-Kruger zone 43");
     add_proj4text (p, 0,
@@ -113,9 +111,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4531\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4531\"]]");
     p = add_epsg_def (filter, first, last, 4532, "epsg", 4532,
         "CGCS2000 / 3-degree Gauss-Kruger zone 44");
     add_proj4text (p, 0,
@@ -145,9 +141,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4532\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4532\"]]");
     p = add_epsg_def (filter, first, last, 4533, "epsg", 4533,
         "CGCS2000 / 3-degree Gauss-Kruger zone 45");
     add_proj4text (p, 0,
@@ -177,9 +171,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"4533\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"4533\"]]");
     p = add_epsg_def (filter, first, last, 4534, "epsg", 4534,
         "CGCS2000 / 3-degree Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -209,9 +201,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4534\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4534\"]]");
     p = add_epsg_def (filter, first, last, 4535, "epsg", 4535,
         "CGCS2000 / 3-degree Gauss-Kruger CM 78E");
     add_proj4text (p, 0,
@@ -241,9 +231,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4535\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4535\"]]");
     p = add_epsg_def (filter, first, last, 4536, "epsg", 4536,
         "CGCS2000 / 3-degree Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -273,9 +261,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4536\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4536\"]]");
     p = add_epsg_def (filter, first, last, 4537, "epsg", 4537,
         "CGCS2000 / 3-degree Gauss-Kruger CM 84E");
     add_proj4text (p, 0,
@@ -305,9 +291,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4537\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4537\"]]");
     p = add_epsg_def (filter, first, last, 4538, "epsg", 4538,
         "CGCS2000 / 3-degree Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -337,9 +321,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4538\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4538\"]]");
     p = add_epsg_def (filter, first, last, 4539, "epsg", 4539,
         "CGCS2000 / 3-degree Gauss-Kruger CM 90E");
     add_proj4text (p, 0,
@@ -369,9 +351,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4539\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4539\"]]");
     p = add_epsg_def (filter, first, last, 4540, "epsg", 4540,
         "CGCS2000 / 3-degree Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -401,9 +381,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4540\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4540\"]]");
     p = add_epsg_def (filter, first, last, 4541, "epsg", 4541,
         "CGCS2000 / 3-degree Gauss-Kruger CM 96E");
     add_proj4text (p, 0,
@@ -433,9 +411,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4541\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4541\"]]");
     p = add_epsg_def (filter, first, last, 4542, "epsg", 4542,
         "CGCS2000 / 3-degree Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -465,9 +441,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"4542\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"4542\"]]");
     p = add_epsg_def (filter, first, last, 4543, "epsg", 4543,
         "CGCS2000 / 3-degree Gauss-Kruger CM 102E");
     add_proj4text (p, 0,
@@ -497,9 +471,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4543\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4543\"]]");
     p = add_epsg_def (filter, first, last, 4544, "epsg", 4544,
         "CGCS2000 / 3-degree Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -529,9 +501,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4544\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4544\"]]");
     p = add_epsg_def (filter, first, last, 4545, "epsg", 4545,
         "CGCS2000 / 3-degree Gauss-Kruger CM 108E");
     add_proj4text (p, 0,
@@ -561,9 +531,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4545\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4545\"]]");
     p = add_epsg_def (filter, first, last, 4546, "epsg", 4546,
         "CGCS2000 / 3-degree Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -593,9 +561,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4546\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4546\"]]");
     p = add_epsg_def (filter, first, last, 4547, "epsg", 4547,
         "CGCS2000 / 3-degree Gauss-Kruger CM 114E");
     add_proj4text (p, 0,
@@ -625,9 +591,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4547\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4547\"]]");
     p = add_epsg_def (filter, first, last, 4548, "epsg", 4548,
         "CGCS2000 / 3-degree Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -657,9 +621,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4548\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4548\"]]");
     p = add_epsg_def (filter, first, last, 4549, "epsg", 4549,
         "CGCS2000 / 3-degree Gauss-Kruger CM 120E");
     add_proj4text (p, 0,
@@ -689,9 +651,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4549\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4549\"]]");
     p = add_epsg_def (filter, first, last, 4550, "epsg", 4550,
         "CGCS2000 / 3-degree Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -721,9 +681,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4550\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4550\"]]");
     p = add_epsg_def (filter, first, last, 4551, "epsg", 4551,
         "CGCS2000 / 3-degree Gauss-Kruger CM 126E");
     add_proj4text (p, 0,
@@ -753,9 +711,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4551\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4551\"]]");
     p = add_epsg_def (filter, first, last, 4552, "epsg", 4552,
         "CGCS2000 / 3-degree Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -785,9 +741,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4552\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4552\"]]");
     p = add_epsg_def (filter, first, last, 4553, "epsg", 4553,
         "CGCS2000 / 3-degree Gauss-Kruger CM 132E");
     add_proj4text (p, 0,
@@ -817,9 +771,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4553\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4553\"]]");
     p = add_epsg_def (filter, first, last, 4554, "epsg", 4554,
         "CGCS2000 / 3-degree Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -849,9 +801,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"4554\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"4554\"]]");
     p = add_epsg_def (filter, first, last, 4555, "epsg", 4555,
         "New Beijing");
     add_proj4text (p, 0,
@@ -947,9 +897,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",13500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 10,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4568\"]]");
+        "4568\"]]");
     p = add_epsg_def (filter, first, last, 4569, "epsg", 4569,
         "New Beijing / Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -977,9 +927,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",14500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 10,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4569\"]]");
+        "4569\"]]");
     p = add_epsg_def (filter, first, last, 4570, "epsg", 4570,
         "New Beijing / Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -1007,9 +957,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",15500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 10,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4570\"]]");
+        "4570\"]]");
     p = add_epsg_def (filter, first, last, 4571, "epsg", 4571,
         "New Beijing / Gauss-Kruger zone 16");
     add_proj4text (p, 0,
@@ -1037,9 +987,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",16500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 10,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4571\"]]");
+        "4571\"]]");
     p = add_epsg_def (filter, first, last, 4572, "epsg", 4572,
         "New Beijing / Gauss-Kruger zone 17");
     add_proj4text (p, 0,
@@ -1067,9 +1017,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "\",17500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 10,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4572\"]]");
+        "4572\"]]");
     p = add_epsg_def (filter, first, last, 4573, "epsg", 4573,
         "New Beijing / Gauss-Kruger zone 18");
     add_proj4text (p, 0,
@@ -1097,9 +1047,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",18500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4573\"]]");
+        "\"4573\"]]");
     p = add_epsg_def (filter, first, last, 4574, "epsg", 4574,
         "New Beijing / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
@@ -1127,9 +1077,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",19500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4574\"]]");
+        "\"4574\"]]");
     p = add_epsg_def (filter, first, last, 4575, "epsg", 4575,
         "New Beijing / Gauss-Kruger zone 20");
     add_proj4text (p, 0,
@@ -1157,9 +1107,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",20500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4575\"]]");
+        "\"4575\"]]");
     p = add_epsg_def (filter, first, last, 4576, "epsg", 4576,
         "New Beijing / Gauss-Kruger zone 21");
     add_proj4text (p, 0,
@@ -1187,9 +1137,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",21500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4576\"]]");
+        "\"4576\"]]");
     p = add_epsg_def (filter, first, last, 4577, "epsg", 4577,
         "New Beijing / Gauss-Kruger zone 22");
     add_proj4text (p, 0,
@@ -1217,9 +1167,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",22500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4577\"]]");
+        "\"4577\"]]");
     p = add_epsg_def (filter, first, last, 4578, "epsg", 4578,
         "New Beijing / Gauss-Kruger zone 23");
     add_proj4text (p, 0,
@@ -1247,9 +1197,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",23500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4578\"]]");
+        "\"4578\"]]");
     p = add_epsg_def (filter, first, last, 4579, "epsg", 4579,
         "New Beijing / Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -1277,9 +1227,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"457");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"4579\"]]");
+        "9\"]]");
     p = add_epsg_def (filter, first, last, 4580, "epsg", 4580,
         "New Beijing / Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -1307,9 +1257,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"4580\"]]");
+        "0\"]]");
     p = add_epsg_def (filter, first, last, 4581, "epsg", 4581,
         "New Beijing / Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -1337,9 +1287,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"4581\"]]");
+        "1\"]]");
     p = add_epsg_def (filter, first, last, 4582, "epsg", 4582,
         "New Beijing / Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -1367,9 +1317,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"4582\"]]");
+        "2\"]]");
     p = add_epsg_def (filter, first, last, 4583, "epsg", 4583,
         "New Beijing / Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -1397,9 +1347,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 10,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"458");
     add_srs_wkt (p, 11,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"4583\"]]");
+        "3\"]]");
     p = add_epsg_def (filter, first, last, 4584, "epsg", 4584,
         "New Beijing / Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -1427,9 +1377,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 10,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4584\"]]");
+        "4584\"]]");
     p = add_epsg_def (filter, first, last, 4585, "epsg", 4585,
         "New Beijing / Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -1457,9 +1407,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 10,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4585\"]]");
+        "4585\"]]");
     p = add_epsg_def (filter, first, last, 4586, "epsg", 4586,
         "New Beijing / Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -1487,9 +1437,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 10,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4586\"]]");
+        "4586\"]]");
     p = add_epsg_def (filter, first, last, 4587, "epsg", 4587,
         "New Beijing / Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -1517,9 +1467,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 10,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4587\"]]");
+        "4587\"]]");
     p = add_epsg_def (filter, first, last, 4588, "epsg", 4588,
         "New Beijing / Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -1547,9 +1497,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 10,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4588\"]]");
+        "4588\"]]");
     p = add_epsg_def (filter, first, last, 4589, "epsg", 4589,
         "New Beijing / Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
@@ -1577,9 +1527,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 10,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4589\"]]");
+        "4589\"]]");
     p = add_epsg_def (filter, first, last, 4600, "epsg", 4600,
         "Anguilla 1957");
     add_proj4text (p, 0,
@@ -1733,9 +1683,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"NAD27(76)\",DATUM[\"North_American_Datum_1927_1");
     add_srs_wkt (p, 1,
-        "976\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389");
+        "976\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821390");
     add_srs_wkt (p, 2,
-        "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66");
+        "06,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 3,
         "08\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 4,
@@ -1751,7 +1701,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "7_CGQ77\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982");
     add_srs_wkt (p, 2,
-        "138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",");
+        "139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"6609\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 4,
@@ -2287,7 +2237,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820");
     add_srs_wkt (p, 2,
-        "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG");
+        "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWG");
     add_srs_wkt (p, 3,
         "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR");
     add_srs_wkt (p, 4,
@@ -2447,7 +2397,7 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 5,
         "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4646\"]]");
     p = add_epsg_def (filter, first, last, 4647, "epsg", 4647,
-        "ETRS89 / UTM zone N32");
+        "ETRS89 / UTM zone 32N (zE-N)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y");
     add_proj4text (p, 1,
@@ -2455,31 +2405,31 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone N32\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"ETRS89 / UTM zone 32N (zE-N)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa");
+        "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",32500000],PAR");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",3250000");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"4647\"]]");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"4647\"]]");
     p = add_epsg_def (filter, first, last, 4652, "epsg", 4652,
         "New Beijing / 3-degree Gauss-Kruger zone 25");
     add_proj4text (p, 0,
@@ -2507,9 +2457,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",25500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4652\"]]");
+        "EPSG\",\"4652\"]]");
     p = add_epsg_def (filter, first, last, 4653, "epsg", 4653,
         "New Beijing / 3-degree Gauss-Kruger zone 26");
     add_proj4text (p, 0,
@@ -2537,9 +2487,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",26500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4653\"]]");
+        "EPSG\",\"4653\"]]");
     p = add_epsg_def (filter, first, last, 4654, "epsg", 4654,
         "New Beijing / 3-degree Gauss-Kruger zone 27");
     add_proj4text (p, 0,
@@ -2567,9 +2517,9 @@ initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",27500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4654\"]]");
+        "EPSG\",\"4654\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_23.c b/src/srsinit/epsg_inlined_23.c
index 128b5fe..fd248e3 100644
--- a/src/srsinit/epsg_inlined_23.c
+++ b/src/srsinit/epsg_inlined_23.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -79,9 +79,9 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",28500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4655\"]]");
+        "EPSG\",\"4655\"]]");
     p = add_epsg_def (filter, first, last, 4656, "epsg", 4656,
         "New Beijing / 3-degree Gauss-Kruger zone 29");
     add_proj4text (p, 0,
@@ -109,9 +109,9 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",29500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4656\"]]");
+        "EPSG\",\"4656\"]]");
     p = add_epsg_def (filter, first, last, 4657, "epsg", 4657,
         "Reykjavik 1900");
     add_proj4text (p, 0,
@@ -383,7 +383,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"");
     add_srs_wkt (p, 1,
-        "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT");
+        "Clarke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORIT");
     add_srs_wkt (p, 2,
         "Y[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIM");
     add_srs_wkt (p, 3,
@@ -461,7 +461,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Guam 1963\",DATUM[\"Guam_1963\",SPHEROID[\"Clar");
     add_srs_wkt (p, 1,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 2,
         ",\"7008\"]],TOWGS84[-100,-248,259,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 3,
@@ -581,9 +581,9 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4682, "epsg", 4682,
         "Gulshan 303");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=283.7,735.9,261.1,0,0,0,0 +no_defs");
+        "4=283.7,735.9,261.1,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Gulshan 303\",DATUM[\"Gulshan_303\",SPHEROID[\"");
     add_srs_wkt (p, 1,
@@ -607,7 +607,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"PRS92\",DATUM[\"Philippine_Reference_System_199");
     add_srs_wkt (p, 1,
-        "2\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982");
+        "2\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006");
     add_srs_wkt (p, 2,
         ",AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-127.62,-67.24,-4");
     add_srs_wkt (p, 3,
@@ -837,7 +837,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[");
     add_srs_wkt (p, 1,
-        "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 2,
         "EPSG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,");
     add_srs_wkt (p, 3,
@@ -1243,7 +1243,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Cape Canaveral\",DATUM[\"Cape_Canaveral\",SPHER");
     add_srs_wkt (p, 1,
-        "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT");
+        "OID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORIT");
     add_srs_wkt (p, 2,
         "Y[\"EPSG\",\"7008\"]],TOWGS84[-2,151,181,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 3,
@@ -1257,7 +1257,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4718, "epsg", 4718,
         "Solomon 1968");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=intl +towgs84=252,-209,-751,0,0,0,0");
+        "+proj=longlat +ellps=intl +towgs84=230,-199,-752,0,0,0,0");
     add_proj4text (p, 1,
         " +no_defs");
     add_srs_wkt (p, 0,
@@ -1265,7 +1265,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 2,
-        "7022\"]],TOWGS84[252,-209,-751,0,0,0,0],AUTHORITY[\"EPSG");
+        "7022\"]],TOWGS84[230,-199,-752,0,0,0,0],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
         "\",\"6718\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
@@ -1349,25 +1349,25 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "2\"]]");
     p = add_epsg_def (filter, first, last, 4723, "epsg", 4723,
-        "Grand Cayman 1959");
+        "GCGD59");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,");
+        "+proj=longlat +ellps=clrk66 +towgs84=-179.483,-69.379,-2");
     add_proj4text (p, 1,
-        "0,0,0 +no_defs");
+        "7.584,-7.862,8.163,6.042,-13.925 +no_defs");
     add_srs_wkt (p, 0,
-        "GEOGCS[\"Grand Cayman 1959\",DATUM[\"Grand_Cayman_1959\"");
+        "GEOGCS[\"GCGD59\",DATUM[\"Grand_Cayman_Geodetic_Datum_19");
     add_srs_wkt (p, 1,
-        ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU");
+        "59\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213900");
     add_srs_wkt (p, 2,
-        "THORITY[\"EPSG\",\"7008\"]],TOWGS84[67.8,106.1,138.8,0,0");
+        "6,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-179.483,-69.379");
     add_srs_wkt (p, 3,
-        ",0,0],AUTHORITY[\"EPSG\",\"6723\"]],PRIMEM[\"Greenwich\"");
+        ",-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "SG\",\"4723\"]]");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4723\"]]");
     p = add_epsg_def (filter, first, last, 4724, "epsg", 4724,
         "Diego Garcia 1969");
     add_proj4text (p, 0,
@@ -1409,25 +1409,25 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "4725\"]]");
     p = add_epsg_def (filter, first, last, 4726, "epsg", 4726,
-        "Little Cayman 1961");
+        "SIGD61");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk66 +towgs84=42,124,147,0,0,0,0 ");
+        "+proj=longlat +ellps=clrk66 +towgs84=8.853,-52.644,180.3");
     add_proj4text (p, 1,
-        "+no_defs");
+        "04,-0.393,-2.323,2.96,-24.081 +no_defs");
     add_srs_wkt (p, 0,
-        "GEOGCS[\"Little Cayman 1961\",DATUM[\"Little_Cayman_1961");
+        "GEOGCS[\"SIGD61\",DATUM[\"Sister_Islands_Geodetic_Datum_");
     add_srs_wkt (p, 1,
-        "\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,");
+        "1961\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139");
     add_srs_wkt (p, 2,
-        "AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[42,124,147,0,0,0,0");
+        "006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644,");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6726\"]],PRIMEM[\"Greenwich\",0,A");
+        "180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        ",\"4726\"]]");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4726\"]]");
     p = add_epsg_def (filter, first, last, 4727, "epsg", 4727,
         "Midway 1961");
     add_proj4text (p, 0,
@@ -1639,7 +1639,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHER");
     add_srs_wkt (p, 1,
-        "OID[\"Clarke 1858\",6378293.645208759,294.2606763692654,");
+        "OID[\"Clarke 1858\",6378293.645208759,294.2606763692569,");
     add_srs_wkt (p, 2,
         "AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"");
     add_srs_wkt (p, 3,
@@ -1815,7 +1815,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "EROID[\"Clarke 1880 (international foot)\",6378306.3696,");
     add_srs_wkt (p, 2,
-        "293.4663076556361,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[");
+        "293.4663076556349,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[");
     add_srs_wkt (p, 3,
         "51,391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6748\"]],PRIMEM");
     add_srs_wkt (p, 4,
@@ -1891,7 +1891,7 @@ initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "OID[\"Clarke 1880 (international foot)\",6378306.3696,29");
     add_srs_wkt (p, 2,
-        "3.4663076556361,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51");
+        "3.4663076556349,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51");
     add_srs_wkt (p, 3,
         ",391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
diff --git a/src/srsinit/epsg_inlined_24.c b/src/srsinit/epsg_inlined_24.c
index 086d342..900347f 100644
--- a/src/srsinit/epsg_inlined_24.c
+++ b/src/srsinit/epsg_inlined_24.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -265,9 +265,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",30500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4766\"]]");
+        "EPSG\",\"4766\"]]");
     p = add_epsg_def (filter, first, last, 4767, "epsg", 4767,
         "New Beijing / 3-degree Gauss-Kruger zone 31");
     add_proj4text (p, 0,
@@ -295,9 +295,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",31500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4767\"]]");
+        "EPSG\",\"4767\"]]");
     p = add_epsg_def (filter, first, last, 4768, "epsg", 4768,
         "New Beijing / 3-degree Gauss-Kruger zone 32");
     add_proj4text (p, 0,
@@ -325,9 +325,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",32500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4768\"]]");
+        "EPSG\",\"4768\"]]");
     p = add_epsg_def (filter, first, last, 4769, "epsg", 4769,
         "New Beijing / 3-degree Gauss-Kruger zone 33");
     add_proj4text (p, 0,
@@ -355,9 +355,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "e_easting\",33500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4769\"]]");
+        "EPSG\",\"4769\"]]");
     p = add_epsg_def (filter, first, last, 4770, "epsg", 4770,
         "New Beijing / 3-degree Gauss-Kruger zone 34");
     add_proj4text (p, 0,
@@ -385,9 +385,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",34500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4770\"]]");
+        "\"EPSG\",\"4770\"]]");
     p = add_epsg_def (filter, first, last, 4771, "epsg", 4771,
         "New Beijing / 3-degree Gauss-Kruger zone 35");
     add_proj4text (p, 0,
@@ -415,9 +415,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",35500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4771\"]]");
+        "\"EPSG\",\"4771\"]]");
     p = add_epsg_def (filter, first, last, 4772, "epsg", 4772,
         "New Beijing / 3-degree Gauss-Kruger zone 36");
     add_proj4text (p, 0,
@@ -445,9 +445,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",36500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4772\"]]");
+        "\"EPSG\",\"4772\"]]");
     p = add_epsg_def (filter, first, last, 4773, "epsg", 4773,
         "New Beijing / 3-degree Gauss-Kruger zone 37");
     add_proj4text (p, 0,
@@ -475,9 +475,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",37500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4773\"]]");
+        "\"EPSG\",\"4773\"]]");
     p = add_epsg_def (filter, first, last, 4774, "epsg", 4774,
         "New Beijing / 3-degree Gauss-Kruger zone 38");
     add_proj4text (p, 0,
@@ -505,9 +505,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",38500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4774\"]]");
+        "\"EPSG\",\"4774\"]]");
     p = add_epsg_def (filter, first, last, 4775, "epsg", 4775,
         "New Beijing / 3-degree Gauss-Kruger zone 39");
     add_proj4text (p, 0,
@@ -535,9 +535,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",39500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4775\"]]");
+        "\"EPSG\",\"4775\"]]");
     p = add_epsg_def (filter, first, last, 4776, "epsg", 4776,
         "New Beijing / 3-degree Gauss-Kruger zone 40");
     add_proj4text (p, 0,
@@ -565,9 +565,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",40500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4776\"]]");
+        "\"EPSG\",\"4776\"]]");
     p = add_epsg_def (filter, first, last, 4777, "epsg", 4777,
         "New Beijing / 3-degree Gauss-Kruger zone 41");
     add_proj4text (p, 0,
@@ -595,9 +595,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",41500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4777\"]]");
+        "\"EPSG\",\"4777\"]]");
     p = add_epsg_def (filter, first, last, 4778, "epsg", 4778,
         "New Beijing / 3-degree Gauss-Kruger zone 42");
     add_proj4text (p, 0,
@@ -625,9 +625,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",42500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4778\"]]");
+        "\"EPSG\",\"4778\"]]");
     p = add_epsg_def (filter, first, last, 4779, "epsg", 4779,
         "New Beijing / 3-degree Gauss-Kruger zone 43");
     add_proj4text (p, 0,
@@ -655,9 +655,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",43500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4779\"]]");
+        "\"EPSG\",\"4779\"]]");
     p = add_epsg_def (filter, first, last, 4780, "epsg", 4780,
         "New Beijing / 3-degree Gauss-Kruger zone 44");
     add_proj4text (p, 0,
@@ -685,9 +685,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",44500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4780\"]]");
+        "\"EPSG\",\"4780\"]]");
     p = add_epsg_def (filter, first, last, 4781, "epsg", 4781,
         "New Beijing / 3-degree Gauss-Kruger zone 45");
     add_proj4text (p, 0,
@@ -715,9 +715,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",45500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4781\"]]");
+        "\"EPSG\",\"4781\"]]");
     p = add_epsg_def (filter, first, last, 4782, "epsg", 4782,
         "New Beijing / 3-degree Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
@@ -745,9 +745,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4782\"]]");
+        "\",\"4782\"]]");
     p = add_epsg_def (filter, first, last, 4783, "epsg", 4783,
         "New Beijing / 3-degree Gauss-Kruger CM 78E");
     add_proj4text (p, 0,
@@ -775,9 +775,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4783\"]]");
+        "\",\"4783\"]]");
     p = add_epsg_def (filter, first, last, 4784, "epsg", 4784,
         "New Beijing / 3-degree Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
@@ -805,9 +805,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4784\"]]");
+        "\",\"4784\"]]");
     p = add_epsg_def (filter, first, last, 4785, "epsg", 4785,
         "New Beijing / 3-degree Gauss-Kruger CM 84E");
     add_proj4text (p, 0,
@@ -835,9 +835,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4785\"]]");
+        "\",\"4785\"]]");
     p = add_epsg_def (filter, first, last, 4786, "epsg", 4786,
         "New Beijing / 3-degree Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
@@ -865,9 +865,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4786\"]]");
+        "\",\"4786\"]]");
     p = add_epsg_def (filter, first, last, 4787, "epsg", 4787,
         "New Beijing / 3-degree Gauss-Kruger CM 90E");
     add_proj4text (p, 0,
@@ -895,9 +895,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4787\"]]");
+        "\",\"4787\"]]");
     p = add_epsg_def (filter, first, last, 4788, "epsg", 4788,
         "New Beijing / 3-degree Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
@@ -925,9 +925,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4788\"]]");
+        "\",\"4788\"]]");
     p = add_epsg_def (filter, first, last, 4789, "epsg", 4789,
         "New Beijing / 3-degree Gauss-Kruger CM 96E");
     add_proj4text (p, 0,
@@ -955,9 +955,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4789\"]]");
+        "\",\"4789\"]]");
     p = add_epsg_def (filter, first, last, 4790, "epsg", 4790,
         "New Beijing / 3-degree Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
@@ -985,9 +985,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4790\"]]");
+        "\",\"4790\"]]");
     p = add_epsg_def (filter, first, last, 4791, "epsg", 4791,
         "New Beijing / 3-degree Gauss-Kruger CM 102E");
     add_proj4text (p, 0,
@@ -1015,9 +1015,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4791\"]]");
+        "EPSG\",\"4791\"]]");
     p = add_epsg_def (filter, first, last, 4792, "epsg", 4792,
         "New Beijing / 3-degree Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
@@ -1045,9 +1045,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4792\"]]");
+        "EPSG\",\"4792\"]]");
     p = add_epsg_def (filter, first, last, 4793, "epsg", 4793,
         "New Beijing / 3-degree Gauss-Kruger CM 108E");
     add_proj4text (p, 0,
@@ -1075,9 +1075,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4793\"]]");
+        "EPSG\",\"4793\"]]");
     p = add_epsg_def (filter, first, last, 4794, "epsg", 4794,
         "New Beijing / 3-degree Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
@@ -1105,9 +1105,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4794\"]]");
+        "EPSG\",\"4794\"]]");
     p = add_epsg_def (filter, first, last, 4795, "epsg", 4795,
         "New Beijing / 3-degree Gauss-Kruger CM 114E");
     add_proj4text (p, 0,
@@ -1135,9 +1135,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4795\"]]");
+        "EPSG\",\"4795\"]]");
     p = add_epsg_def (filter, first, last, 4796, "epsg", 4796,
         "New Beijing / 3-degree Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
@@ -1165,9 +1165,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4796\"]]");
+        "EPSG\",\"4796\"]]");
     p = add_epsg_def (filter, first, last, 4797, "epsg", 4797,
         "New Beijing / 3-degree Gauss-Kruger CM 120E");
     add_proj4text (p, 0,
@@ -1195,9 +1195,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4797\"]]");
+        "EPSG\",\"4797\"]]");
     p = add_epsg_def (filter, first, last, 4798, "epsg", 4798,
         "New Beijing / 3-degree Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
@@ -1225,9 +1225,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4798\"]]");
+        "EPSG\",\"4798\"]]");
     p = add_epsg_def (filter, first, last, 4799, "epsg", 4799,
         "New Beijing / 3-degree Gauss-Kruger CM 126E");
     add_proj4text (p, 0,
@@ -1255,9 +1255,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4799\"]]");
+        "EPSG\",\"4799\"]]");
     p = add_epsg_def (filter, first, last, 4800, "epsg", 4800,
         "New Beijing / 3-degree Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
@@ -1285,9 +1285,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4800\"]]");
+        "EPSG\",\"4800\"]]");
     p = add_epsg_def (filter, first, last, 4801, "epsg", 4801,
         "Bern 1898 (Bern)");
     add_proj4text (p, 0,
@@ -1419,7 +1419,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "ancaise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2");
     add_srs_wkt (p, 2,
-        ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84");
+        ",293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84");
     add_srs_wkt (p, 3,
         "[-168,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRI");
     add_srs_wkt (p, 4,
@@ -1491,7 +1491,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129");
     add_srs_wkt (p, 2,
-        "36269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227");
+        "36265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227");
     add_srs_wkt (p, 3,
         ",0,0,0,0],AUTHORITY[\"EPSG\",\"6811\"]],PRIMEM[\"Paris\"");
     add_srs_wkt (p, 4,
@@ -1527,9 +1527,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4812\"]]");
+        "EPSG\",\"4812\"]]");
     p = add_epsg_def (filter, first, last, 4813, "epsg", 4813,
         "Batavia (Jakarta)");
     add_proj4text (p, 0,
@@ -1591,7 +1591,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Carthage (Paris)\",DATUM[\"Carthage_Paris\",SPH");
     add_srs_wkt (p, 1,
-        "EROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,");
+        "EROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936265,");
     add_srs_wkt (p, 2,
         "AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0");
     add_srs_wkt (p, 3,
@@ -1647,23 +1647,25 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4819, "epsg", 4819,
         "Nord Sahara 1959 (Paris)");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,");
+        "+proj=longlat +ellps=clrk80 +towgs84=-209.362,-87.8162,4");
     add_proj4text (p, 1,
-        "0 +pm=paris +no_defs");
+        "04.62,0.0046,3.4784,0.5805,-1.4547 +pm=paris +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"Nord Sahara 1959 (Paris)\",DATUM[\"Nord_Sahara_");
     add_srs_wkt (p, 1,
         "1959_Paris\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,");
     add_srs_wkt (p, 2,
-        "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-186,-93,3");
+        "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-209.362,-");
     add_srs_wkt (p, 3,
-        "10,0,0,0,0],AUTHORITY[\"EPSG\",\"6819\"]],PRIMEM[\"Paris");
+        "87.8162,404.62,0.0046,3.4784,0.5805,-1.4547],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\"");
+        "EPSG\",\"6819\"]],PRIMEM[\"Paris\",2.33722917,AUTHORITY[");
     add_srs_wkt (p, 5,
-        ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO");
+        "\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796326794897,AU");
     add_srs_wkt (p, 6,
-        "RITY[\"EPSG\",\"4819\"]]");
+        "THORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG\",\"4819\"]");
+    add_srs_wkt (p, 7,
+        "]");
     p = add_epsg_def (filter, first, last, 4820, "epsg", 4820,
         "Segara (Jakarta)");
     add_proj4text (p, 0,
@@ -1693,7 +1695,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129");
     add_srs_wkt (p, 2,
-        "36269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"");
+        "36265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
         "6821\"]],PRIMEM[\"Paris\",2.33722917,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
@@ -1727,9 +1729,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4822\"]]");
+        "EPSG\",\"4822\"]]");
     p = add_epsg_def (filter, first, last, 4823, "epsg", 4823,
         "Sao Tome");
     add_proj4text (p, 0,
@@ -1831,11 +1833,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 12,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 13,
-        "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 14,
-        ",\"4839\"]]");
+        "\"EPSG\",\"4839\"]]");
     p = add_epsg_def (filter, first, last, 4855, "epsg", 4855,
         "ETRS89 / NTM zone 5 (deprecated)");
     add_proj4text (p, 0,
@@ -1867,9 +1867,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4855\"]]");
+        "55\"]]");
     p = add_epsg_def (filter, first, last, 4856, "epsg", 4856,
         "ETRS89 / NTM zone 6 (deprecated)");
     add_proj4text (p, 0,
@@ -1901,9 +1901,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4856\"]]");
+        "56\"]]");
     p = add_epsg_def (filter, first, last, 4857, "epsg", 4857,
         "ETRS89 / NTM zone 7 (deprecated)");
     add_proj4text (p, 0,
@@ -1935,9 +1935,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4857\"]]");
+        "57\"]]");
     p = add_epsg_def (filter, first, last, 4858, "epsg", 4858,
         "ETRS89 / NTM zone 8 (deprecated)");
     add_proj4text (p, 0,
@@ -1969,9 +1969,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4858\"]]");
+        "58\"]]");
     p = add_epsg_def (filter, first, last, 4859, "epsg", 4859,
         "ETRS89 / NTM zone 9 (deprecated)");
     add_proj4text (p, 0,
@@ -2003,9 +2003,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "00],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4859\"]]");
+        "59\"]]");
     p = add_epsg_def (filter, first, last, 4860, "epsg", 4860,
         "ETRS89 / NTM zone 10 (deprecated)");
     add_proj4text (p, 0,
@@ -2037,9 +2037,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4860\"]]");
+        "60\"]]");
     p = add_epsg_def (filter, first, last, 4861, "epsg", 4861,
         "ETRS89 / NTM zone 11 (deprecated)");
     add_proj4text (p, 0,
@@ -2071,9 +2071,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4861\"]]");
+        "61\"]]");
     p = add_epsg_def (filter, first, last, 4862, "epsg", 4862,
         "ETRS89 / NTM zone 12 (deprecated)");
     add_proj4text (p, 0,
@@ -2105,9 +2105,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4862\"]]");
+        "62\"]]");
     p = add_epsg_def (filter, first, last, 4863, "epsg", 4863,
         "ETRS89 / NTM zone 13 (deprecated)");
     add_proj4text (p, 0,
@@ -2139,9 +2139,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4863\"]]");
+        "63\"]]");
     p = add_epsg_def (filter, first, last, 4864, "epsg", 4864,
         "ETRS89 / NTM zone 14 (deprecated)");
     add_proj4text (p, 0,
@@ -2173,9 +2173,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4864\"]]");
+        "64\"]]");
     p = add_epsg_def (filter, first, last, 4865, "epsg", 4865,
         "ETRS89 / NTM zone 15 (deprecated)");
     add_proj4text (p, 0,
@@ -2207,9 +2207,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4865\"]]");
+        "65\"]]");
     p = add_epsg_def (filter, first, last, 4866, "epsg", 4866,
         "ETRS89 / NTM zone 16 (deprecated)");
     add_proj4text (p, 0,
@@ -2241,9 +2241,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4866\"]]");
+        "66\"]]");
     p = add_epsg_def (filter, first, last, 4867, "epsg", 4867,
         "ETRS89 / NTM zone 17 (deprecated)");
     add_proj4text (p, 0,
@@ -2275,9 +2275,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4867\"]]");
+        "67\"]]");
     p = add_epsg_def (filter, first, last, 4868, "epsg", 4868,
         "ETRS89 / NTM zone 18 (deprecated)");
     add_proj4text (p, 0,
@@ -2309,9 +2309,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4868\"]]");
+        "68\"]]");
     p = add_epsg_def (filter, first, last, 4869, "epsg", 4869,
         "ETRS89 / NTM zone 19 (deprecated)");
     add_proj4text (p, 0,
@@ -2343,9 +2343,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4869\"]]");
+        "69\"]]");
     p = add_epsg_def (filter, first, last, 4870, "epsg", 4870,
         "ETRS89 / NTM zone 20 (deprecated)");
     add_proj4text (p, 0,
@@ -2377,9 +2377,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4870\"]]");
+        "70\"]]");
     p = add_epsg_def (filter, first, last, 4871, "epsg", 4871,
         "ETRS89 / NTM zone 21 (deprecated)");
     add_proj4text (p, 0,
@@ -2411,9 +2411,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4871\"]]");
+        "71\"]]");
     p = add_epsg_def (filter, first, last, 4872, "epsg", 4872,
         "ETRS89 / NTM zone 22 (deprecated)");
     add_proj4text (p, 0,
@@ -2445,9 +2445,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4872\"]]");
+        "72\"]]");
     p = add_epsg_def (filter, first, last, 4873, "epsg", 4873,
         "ETRS89 / NTM zone 23 (deprecated)");
     add_proj4text (p, 0,
@@ -2479,9 +2479,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4873\"]]");
+        "73\"]]");
     p = add_epsg_def (filter, first, last, 4874, "epsg", 4874,
         "ETRS89 / NTM zone 24 (deprecated)");
     add_proj4text (p, 0,
@@ -2513,9 +2513,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4874\"]]");
+        "74\"]]");
     p = add_epsg_def (filter, first, last, 4875, "epsg", 4875,
         "ETRS89 / NTM zone 25 (deprecated)");
     add_proj4text (p, 0,
@@ -2547,9 +2547,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4875\"]]");
+        "75\"]]");
     p = add_epsg_def (filter, first, last, 4876, "epsg", 4876,
         "ETRS89 / NTM zone 26 (deprecated)");
     add_proj4text (p, 0,
@@ -2581,9 +2581,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4876\"]]");
+        "76\"]]");
     p = add_epsg_def (filter, first, last, 4877, "epsg", 4877,
         "ETRS89 / NTM zone 27 (deprecated)");
     add_proj4text (p, 0,
@@ -2615,9 +2615,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4877\"]]");
+        "77\"]]");
     p = add_epsg_def (filter, first, last, 4878, "epsg", 4878,
         "ETRS89 / NTM zone 28 (deprecated)");
     add_proj4text (p, 0,
@@ -2649,9 +2649,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4878\"]]");
+        "78\"]]");
     p = add_epsg_def (filter, first, last, 4879, "epsg", 4879,
         "ETRS89 / NTM zone 29 (deprecated)");
     add_proj4text (p, 0,
@@ -2683,9 +2683,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4879\"]]");
+        "79\"]]");
     p = add_epsg_def (filter, first, last, 4880, "epsg", 4880,
         "ETRS89 / NTM zone 30 (deprecated)");
     add_proj4text (p, 0,
@@ -2717,9 +2717,9 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"48");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4880\"]]");
+        "80\"]]");
     p = add_epsg_def (filter, first, last, 4901, "epsg", 4901,
         "ATF (Paris)");
     add_proj4text (p, 0,
@@ -2759,7 +2759,7 @@ initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 4903, "epsg", 4903,
         "Madrid 1870 (Madrid)");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6378298.3 +b=6356657.142669562 +pm=madr");
+        "+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madr");
     add_proj4text (p, 1,
         "id +no_defs");
     add_srs_wkt (p, 0,
diff --git a/src/srsinit/epsg_inlined_25.c b/src/srsinit/epsg_inlined_25.c
index ea2df26..de9cfd8 100644
--- a/src/srsinit/epsg_inlined_25.c
+++ b/src/srsinit/epsg_inlined_25.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -291,9 +291,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"5048\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5048\"]]");
     p = add_epsg_def (filter, first, last, 5069, "epsg", 5069,
         "NAD27 / Conus Albers");
     add_proj4text (p, 0,
@@ -305,7 +303,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -463,9 +461,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"5105\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5105\"]]");
     p = add_epsg_def (filter, first, last, 5106, "epsg", 5106,
         "ETRS89 / NTM zone 6");
     add_proj4text (p, 0,
@@ -497,9 +493,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"5106\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5106\"]]");
     p = add_epsg_def (filter, first, last, 5107, "epsg", 5107,
         "ETRS89 / NTM zone 7");
     add_proj4text (p, 0,
@@ -531,9 +525,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"5107\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5107\"]]");
     p = add_epsg_def (filter, first, last, 5108, "epsg", 5108,
         "ETRS89 / NTM zone 8");
     add_proj4text (p, 0,
@@ -565,9 +557,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"5108\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5108\"]]");
     p = add_epsg_def (filter, first, last, 5109, "epsg", 5109,
         "ETRS89 / NTM zone 9");
     add_proj4text (p, 0,
@@ -599,9 +589,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin");
-    add_srs_wkt (p, 12,
-        "g\",EAST],AUTHORITY[\"EPSG\",\"5109\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5109\"]]");
     p = add_epsg_def (filter, first, last, 5110, "epsg", 5110,
         "ETRS89 / NTM zone 10");
     add_proj4text (p, 0,
@@ -633,9 +621,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5110\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5110\"]]");
     p = add_epsg_def (filter, first, last, 5111, "epsg", 5111,
         "ETRS89 / NTM zone 11");
     add_proj4text (p, 0,
@@ -667,9 +653,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5111\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5111\"]]");
     p = add_epsg_def (filter, first, last, 5112, "epsg", 5112,
         "ETRS89 / NTM zone 12");
     add_proj4text (p, 0,
@@ -701,9 +685,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5112\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5112\"]]");
     p = add_epsg_def (filter, first, last, 5113, "epsg", 5113,
         "ETRS89 / NTM zone 13");
     add_proj4text (p, 0,
@@ -735,9 +717,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5113\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5113\"]]");
     p = add_epsg_def (filter, first, last, 5114, "epsg", 5114,
         "ETRS89 / NTM zone 14");
     add_proj4text (p, 0,
@@ -769,9 +749,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5114\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5114\"]]");
     p = add_epsg_def (filter, first, last, 5115, "epsg", 5115,
         "ETRS89 / NTM zone 15");
     add_proj4text (p, 0,
@@ -803,9 +781,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5115\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5115\"]]");
     p = add_epsg_def (filter, first, last, 5116, "epsg", 5116,
         "ETRS89 / NTM zone 16");
     add_proj4text (p, 0,
@@ -837,9 +813,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5116\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5116\"]]");
     p = add_epsg_def (filter, first, last, 5117, "epsg", 5117,
         "ETRS89 / NTM zone 17");
     add_proj4text (p, 0,
@@ -871,9 +845,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5117\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5117\"]]");
     p = add_epsg_def (filter, first, last, 5118, "epsg", 5118,
         "ETRS89 / NTM zone 18");
     add_proj4text (p, 0,
@@ -905,9 +877,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5118\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5118\"]]");
     p = add_epsg_def (filter, first, last, 5119, "epsg", 5119,
         "ETRS89 / NTM zone 19");
     add_proj4text (p, 0,
@@ -939,9 +909,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5119\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5119\"]]");
     p = add_epsg_def (filter, first, last, 5120, "epsg", 5120,
         "ETRS89 / NTM zone 20");
     add_proj4text (p, 0,
@@ -973,9 +941,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5120\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5120\"]]");
     p = add_epsg_def (filter, first, last, 5121, "epsg", 5121,
         "ETRS89 / NTM zone 21");
     add_proj4text (p, 0,
@@ -1007,9 +973,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5121\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5121\"]]");
     p = add_epsg_def (filter, first, last, 5122, "epsg", 5122,
         "ETRS89 / NTM zone 22");
     add_proj4text (p, 0,
@@ -1041,9 +1005,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5122\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5122\"]]");
     p = add_epsg_def (filter, first, last, 5123, "epsg", 5123,
         "ETRS89 / NTM zone 23");
     add_proj4text (p, 0,
@@ -1075,9 +1037,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5123\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5123\"]]");
     p = add_epsg_def (filter, first, last, 5124, "epsg", 5124,
         "ETRS89 / NTM zone 24");
     add_proj4text (p, 0,
@@ -1109,9 +1069,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5124\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5124\"]]");
     p = add_epsg_def (filter, first, last, 5125, "epsg", 5125,
         "ETRS89 / NTM zone 25");
     add_proj4text (p, 0,
@@ -1143,9 +1101,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5125\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5125\"]]");
     p = add_epsg_def (filter, first, last, 5126, "epsg", 5126,
         "ETRS89 / NTM zone 26");
     add_proj4text (p, 0,
@@ -1177,9 +1133,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5126\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5126\"]]");
     p = add_epsg_def (filter, first, last, 5127, "epsg", 5127,
         "ETRS89 / NTM zone 27");
     add_proj4text (p, 0,
@@ -1211,9 +1165,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5127\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5127\"]]");
     p = add_epsg_def (filter, first, last, 5128, "epsg", 5128,
         "ETRS89 / NTM zone 28");
     add_proj4text (p, 0,
@@ -1245,9 +1197,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5128\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5128\"]]");
     p = add_epsg_def (filter, first, last, 5129, "epsg", 5129,
         "ETRS89 / NTM zone 29");
     add_proj4text (p, 0,
@@ -1279,9 +1229,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5129\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5129\"]]");
     p = add_epsg_def (filter, first, last, 5130, "epsg", 5130,
         "ETRS89 / NTM zone 30");
     add_proj4text (p, 0,
@@ -1313,9 +1261,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E");
-    add_srs_wkt (p, 12,
-        "asting\",EAST],AUTHORITY[\"EPSG\",\"5130\"]]");
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5130\"]]");
     p = add_epsg_def (filter, first, last, 5132, "epsg", 5132,
         "Tokyo 1892");
     add_proj4text (p, 0,
@@ -1359,9 +1305,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "easting\",200000],PARAMETER[\"false_northing\",500000],U");
     add_srs_wkt (p, 10,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 11,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5167\"]]");
+        "\"EPSG\",\"5167\"]]");
     p = add_epsg_def (filter, first, last, 5168, "epsg", 5168,
         "Korean 1985 / Central Belt Jeju");
     add_proj4text (p, 0,
@@ -1389,11 +1335,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "lse_easting\",200000],PARAMETER[\"false_northing\",55000");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5168\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5168\"]]");
     p = add_epsg_def (filter, first, last, 5169, "epsg", 5169,
         "Tokyo 1892 / Korea West Belt");
     add_proj4text (p, 0,
@@ -1421,9 +1365,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5169\"]]");
+        "\"5169\"]]");
     p = add_epsg_def (filter, first, last, 5170, "epsg", 5170,
         "Tokyo 1892 / Korea Central Belt");
     add_proj4text (p, 0,
@@ -1451,9 +1395,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ing\",200000],PARAMETER[\"false_northing\",500000],UNIT[");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NOR");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "TH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5170\"]]");
+        "SG\",\"5170\"]]");
     p = add_epsg_def (filter, first, last, 5171, "epsg", 5171,
         "Tokyo 1892 / Korea East Belt");
     add_proj4text (p, 0,
@@ -1481,9 +1425,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5171\"]]");
+        "\"5171\"]]");
     p = add_epsg_def (filter, first, last, 5172, "epsg", 5172,
         "Tokyo 1892 / Korea East Sea Belt");
     add_proj4text (p, 0,
@@ -1511,9 +1455,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ting\",200000],PARAMETER[\"false_northing\",500000],UNIT");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5172\"]]");
+        "PSG\",\"5172\"]]");
     p = add_epsg_def (filter, first, last, 5173, "epsg", 5173,
         "Korean 1985 / Modified West Belt");
     add_proj4text (p, 0,
@@ -1543,9 +1487,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"5173\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5173\"]]");
     p = add_epsg_def (filter, first, last, 5174, "epsg", 5174,
         "Korean 1985 / Modified Central Belt");
     add_proj4text (p, 0,
@@ -1575,9 +1517,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"5174\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"5174\"]]");
     p = add_epsg_def (filter, first, last, 5175, "epsg", 5175,
         "Korean 1985 / Modified Central Belt Jeju");
     add_proj4text (p, 0,
@@ -1607,9 +1547,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "false_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
-    add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"5175\"]]");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5175\"]]");
     p = add_epsg_def (filter, first, last, 5176, "epsg", 5176,
         "Korean 1985 / Modified East Belt");
     add_proj4text (p, 0,
@@ -1639,9 +1577,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"5176\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5176\"]]");
     p = add_epsg_def (filter, first, last, 5177, "epsg", 5177,
         "Korean 1985 / Modified East Sea Belt");
     add_proj4text (p, 0,
@@ -1671,9 +1607,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"5177\"]]");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"5177\"]]");
     p = add_epsg_def (filter, first, last, 5178, "epsg", 5178,
         "Korean 1985 / Unified CS");
     add_proj4text (p, 0,
@@ -1701,11 +1635,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "lse_easting\",1000000],PARAMETER[\"false_northing\",2000");
     add_srs_wkt (p, 10,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTH");
     add_srs_wkt (p, 11,
-        "[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5178");
-    add_srs_wkt (p, 12,
-        "\"]]");
+        "ORITY[\"EPSG\",\"5178\"]]");
     p = add_epsg_def (filter, first, last, 5179, "epsg", 5179,
         "Korea 2000 / Unified CS");
     add_proj4text (p, 0,
@@ -1737,9 +1669,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
-    add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"5179\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5179\"]]");
     p = add_epsg_def (filter, first, last, 5180, "epsg", 5180,
         "Korea 2000 / West Belt");
     add_proj4text (p, 0,
@@ -1771,9 +1701,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"5180\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5180\"]]");
     p = add_epsg_def (filter, first, last, 5181, "epsg", 5181,
         "Korea 2000 / Central Belt");
     add_proj4text (p, 0,
@@ -1805,9 +1733,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "e_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"5181\"]]");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"5181\"]]");
     p = add_epsg_def (filter, first, last, 5182, "epsg", 5182,
         "Korea 2000 / Central Belt Jeju");
     add_proj4text (p, 0,
@@ -1839,9 +1765,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
-    add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"5182\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5182\"]]");
     p = add_epsg_def (filter, first, last, 5183, "epsg", 5183,
         "Korea 2000 / East Belt");
     add_proj4text (p, 0,
@@ -1873,9 +1797,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "orthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"5183\"]]");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5183\"]]");
     p = add_epsg_def (filter, first, last, 5184, "epsg", 5184,
         "Korea 2000 / East Sea Belt");
     add_proj4text (p, 0,
@@ -1907,9 +1829,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "lse_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"5184\"]]");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"5184\"]]");
     p = add_epsg_def (filter, first, last, 5185, "epsg", 5185,
         "Korea 2000 / West Belt 2010");
     add_proj4text (p, 0,
@@ -1941,9 +1861,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "alse_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
-    add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"5185\"]]");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"5185\"]]");
     p = add_epsg_def (filter, first, last, 5186, "epsg", 5186,
         "Korea 2000 / Central Belt 2010");
     add_proj4text (p, 0,
@@ -1975,9 +1893,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
-    add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"5186\"]]");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5186\"]]");
     p = add_epsg_def (filter, first, last, 5187, "epsg", 5187,
         "Korea 2000 / East Belt 2010");
     add_proj4text (p, 0,
@@ -2009,9 +1925,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "alse_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
-    add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"5187\"]]");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"5187\"]]");
     p = add_epsg_def (filter, first, last, 5188, "epsg", 5188,
         "Korea 2000 / East Sea Belt 2010");
     add_proj4text (p, 0,
@@ -2043,9 +1957,45 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5188\"]]");
+    p = add_epsg_def (filter, first, last, 5221, "epsg", 5221,
+        "S-JTSK (Ferro) / Krovak East North");
+    add_proj4text (p, 0,
+        "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.288139722");
+    add_proj4text (p, 1,
+        "22222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +towgs84=589");
+    add_proj4text (p, 2,
+        ",76,480,0,0,0,0 +pm=ferro +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"S-JTSK (Ferro) / Krovak East North\",GEOGCS[\"S");
+    add_srs_wkt (p, 1,
+        "-JTSK (Ferro)\",DATUM[\"System_Jednotne_Trigonometricke_");
+    add_srs_wkt (p, 2,
+        "Site_Katastralni_Ferro\",SPHEROID[\"Bessel 1841\",637739");
+    add_srs_wkt (p, 3,
+        "7.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[");
+    add_srs_wkt (p, 4,
+        "589,76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6818\"]],PRIMEM");
+    add_srs_wkt (p, 5,
+        "[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"");
+    add_srs_wkt (p, 6,
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4818\"]],PROJECTION[\"K");
+    add_srs_wkt (p, 8,
+        "rovak\"],PARAMETER[\"latitude_of_center\",49.5],PARAMETE");
+    add_srs_wkt (p, 9,
+        "R[\"longitude_of_center\",42.5],PARAMETER[\"azimuth\",30");
+    add_srs_wkt (p, 10,
+        ".28813972222222],PARAMETER[\"pseudo_standard_parallel_1\"");
+    add_srs_wkt (p, 11,
+        ",78.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"5188\"]]");
+        "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"");
+    add_srs_wkt (p, 13,
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 14,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5221\"]]");
     p = add_epsg_def (filter, first, last, 5223, "epsg", 5223,
         "WGS 84 / Gabon TM");
     add_proj4text (p, 0,
@@ -2123,11 +2073,11 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 5233, "epsg", 5233,
         "SLD99");
     add_proj4text (p, 0,
-        "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "84=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.0393");
+        "4=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.03933");
     add_proj4text (p, 2,
-        "38 +no_defs");
+        "8 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"SLD99\",DATUM[\"Sri_Lanka_Datum_1999\",SPHEROID");
     add_srs_wkt (p, 1,
@@ -2149,9 +2099,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 1,
         "11112 +k=0.9999238418 +x_0=200000 +y_0=200000 +a=6377276");
     add_proj4text (p, 2,
-        ".345 +b=6356075.413140239 +towgs84=-97,787,86,0,0,0,0 +u");
+        ".345 +b=6356075.41314024 +towgs84=-97,787,86,0,0,0,0 +un");
     add_proj4text (p, 3,
-        "nits=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"Kandawala / Sri Lanka Grid\",GEOGCS[\"Kandawala");
     add_srs_wkt (p, 1,
@@ -2187,9 +2137,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 1,
         "33334 +k=0.9999238418 +x_0=500000 +y_0=500000 +a=6377276");
     add_proj4text (p, 2,
-        ".345 +b=6356075.413140239 +towgs84=-0.293,766.95,87.713,");
+        ".345 +b=6356075.41314024 +towgs84=-0.293,766.95,87.713,0");
     add_proj4text (p, 3,
-        "0.195704,1.69507,3.47302,-0.039338 +units=m +no_defs");
+        ".195704,1.69507,3.47302,-0.039338 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"SLD99 / Sri Lanka Grid 1999\",GEOGCS[\"SLD99\",");
     add_srs_wkt (p, 1,
@@ -2261,27 +2211,31 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 5246, "epsg", 5246,
         "GDBD2009");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=GRS80 +no_defs");
+        "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de");
+    add_proj4text (p, 1,
+        "fs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"GDBD2009\",DATUM[\"Geocentric_Datum_Brunei_Daru");
     add_srs_wkt (p, 1,
         "ssalam_2009\",SPHEROID[\"GRS 1980\",6378137,298.25722210");
     add_srs_wkt (p, 2,
-        "1,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"105");
+        "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A");
     add_srs_wkt (p, 3,
-        "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "UTHORITY[\"EPSG\",\"1056\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"5246\"]]");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "5246\"]]");
     p = add_epsg_def (filter, first, last, 5247, "epsg", 5247,
         "GDBD2009 / Brunei BRSO");
     add_proj4text (p, 0,
         "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9");
     add_proj4text (p, 1,
-        "9984 +x_0=0 +y_0=0 +gamma=53.13010236111111 +ellps=GRS80");
+        "9984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +el");
     add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"GDBD2009 / Brunei BRSO\",GEOGCS[\"GDBD2009\",DA");
     add_srs_wkt (p, 1,
@@ -2289,27 +2243,29 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "7019\"]],AUTHORITY[\"EPSG\",\"1056\"]],PRIMEM[\"Greenwic");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"105");
     add_srs_wkt (p, 4,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"5246\"]],PROJECTION[\"Hotine_Oblique_Mercator\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"5246\"]],PROJECTION[\"H");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longit");
+        "otine_Oblique_Mercator\"],PARAMETER[\"latitude_of_center");
     add_srs_wkt (p, 8,
-        "ude_of_center\",115],PARAMETER[\"azimuth\",53.31580995],");
+        "\",4],PARAMETER[\"longitude_of_center\",115],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA");
+        "azimuth\",53.31580995],PARAMETER[\"rectified_grid_angle\"");
     add_srs_wkt (p, 10,
-        "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east");
+        ",53.13010236111111],PARAMETER[\"scale_factor\",0.99984],");
     add_srs_wkt (p, 11,
-        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 13,
-        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5247\"]]");
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 14,
+        "\"EPSG\",\"5247\"]]");
     p = add_epsg_def (filter, first, last, 5252, "epsg", 5252,
         "TUREF");
     add_proj4text (p, 0,
@@ -2355,11 +2311,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5253\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5253\"]]");
     p = add_epsg_def (filter, first, last, 5254, "epsg", 5254,
         "TUREF / TM30");
     add_proj4text (p, 0,
@@ -2387,11 +2341,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5254\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5254\"]]");
     p = add_epsg_def (filter, first, last, 5255, "epsg", 5255,
         "TUREF / TM33");
     add_proj4text (p, 0,
@@ -2419,11 +2371,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5255\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5255\"]]");
     p = add_epsg_def (filter, first, last, 5256, "epsg", 5256,
         "TUREF / TM36");
     add_proj4text (p, 0,
@@ -2451,11 +2401,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5256\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5256\"]]");
     p = add_epsg_def (filter, first, last, 5257, "epsg", 5257,
         "TUREF / TM39");
     add_proj4text (p, 0,
@@ -2483,11 +2431,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5257\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5257\"]]");
     p = add_epsg_def (filter, first, last, 5258, "epsg", 5258,
         "TUREF / TM42");
     add_proj4text (p, 0,
@@ -2515,11 +2461,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5258\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5258\"]]");
     p = add_epsg_def (filter, first, last, 5259, "epsg", 5259,
         "TUREF / TM45");
     add_proj4text (p, 0,
@@ -2547,11 +2491,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 11,
-        "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5259\"]");
-    add_srs_wkt (p, 12,
-        "]");
+        "ITY[\"EPSG\",\"5259\"]]");
     p = add_epsg_def (filter, first, last, 5264, "epsg", 5264,
         "DRUKREF 03");
     add_proj4text (p, 0,
@@ -2631,9 +2573,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"5269\"]]");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5269\"]]");
     p = add_epsg_def (filter, first, last, 5270, "epsg", 5270,
         "TUREF / 3-degree Gauss-Kruger zone 10");
     add_proj4text (p, 0,
@@ -2663,9 +2603,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5270\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5270\"]]");
     p = add_epsg_def (filter, first, last, 5271, "epsg", 5271,
         "TUREF / 3-degree Gauss-Kruger zone 11");
     add_proj4text (p, 0,
@@ -2695,9 +2633,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5271\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5271\"]]");
     p = add_epsg_def (filter, first, last, 5272, "epsg", 5272,
         "TUREF / 3-degree Gauss-Kruger zone 12");
     add_proj4text (p, 0,
@@ -2727,9 +2663,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5272\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5272\"]]");
     p = add_epsg_def (filter, first, last, 5273, "epsg", 5273,
         "TUREF / 3-degree Gauss-Kruger zone 13");
     add_proj4text (p, 0,
@@ -2759,9 +2693,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5273\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5273\"]]");
     p = add_epsg_def (filter, first, last, 5274, "epsg", 5274,
         "TUREF / 3-degree Gauss-Kruger zone 14");
     add_proj4text (p, 0,
@@ -2791,9 +2723,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5274\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5274\"]]");
     p = add_epsg_def (filter, first, last, 5275, "epsg", 5275,
         "TUREF / 3-degree Gauss-Kruger zone 15");
     add_proj4text (p, 0,
@@ -2823,9 +2753,7 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5275\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5275\"]]");
     p = add_epsg_def (filter, first, last, 5292, "epsg", 5292,
         "DRUKREF 03 / Bumthang TM");
     add_proj4text (p, 0,
@@ -3270,40 +3198,6 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las
         "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
     add_srs_wkt (p, 12,
         "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5304\"]]");
-    p = add_epsg_def (filter, first, last, 5305, "epsg", 5305,
-        "DRUKREF 03 / Thimphu TM");
-    add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0=");
-    add_proj4text (p, 1,
-        "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n");
-    add_proj4text (p, 2,
-        "o_defs");
-    add_srs_wkt (p, 0,
-        "PROJCS[\"DRUKREF 03 / Thimphu TM\",GEOGCS[\"DRUKREF 03\"");
-    add_srs_wkt (p, 1,
-        ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS");
-    add_srs_wkt (p, 2,
-        " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
-    add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],");
-    add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
-    add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
-    add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve");
-    add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
-    add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",89.55],PARAMETER[\"scale_fact");
-    add_srs_wkt (p, 9,
-        "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"");
-    add_srs_wkt (p, 10,
-        "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"");
-    add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
-    add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"5305\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_26.c b/src/srsinit/epsg_inlined_26.c
index 6a124df..9fe42d9 100644
--- a/src/srsinit/epsg_inlined_26.c
+++ b/src/srsinit/epsg_inlined_26.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,6 +52,40 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
+    p = add_epsg_def (filter, first, last, 5305, "epsg", 5305,
+        "DRUKREF 03 / Thimphu TM");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0=");
+    add_proj4text (p, 1,
+        "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n");
+    add_proj4text (p, 2,
+        "o_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DRUKREF 03 / Thimphu TM\",GEOGCS[\"DRUKREF 03\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS");
+    add_srs_wkt (p, 2,
+        " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
+    add_srs_wkt (p, 3,
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],");
+    add_srs_wkt (p, 4,
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+    add_srs_wkt (p, 5,
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+    add_srs_wkt (p, 6,
+        "2\"]],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transve");
+    add_srs_wkt (p, 7,
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+    add_srs_wkt (p, 8,
+        "METER[\"central_meridian\",89.55],PARAMETER[\"scale_fact");
+    add_srs_wkt (p, 9,
+        "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"5305\"]]");
     p = add_epsg_def (filter, first, last, 5306, "epsg", 5306,
         "DRUKREF 03 / Trashigang TM");
     add_proj4text (p, 0,
@@ -599,9 +633,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5343\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5343\"]]");
     p = add_epsg_def (filter, first, last, 5344, "epsg", 5344,
         "POSGAR 2007 / Argentina 2");
     add_proj4text (p, 0,
@@ -631,9 +663,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5344\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5344\"]]");
     p = add_epsg_def (filter, first, last, 5345, "epsg", 5345,
         "POSGAR 2007 / Argentina 3");
     add_proj4text (p, 0,
@@ -663,9 +693,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5345\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5345\"]]");
     p = add_epsg_def (filter, first, last, 5346, "epsg", 5346,
         "POSGAR 2007 / Argentina 4");
     add_proj4text (p, 0,
@@ -695,9 +723,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5346\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5346\"]]");
     p = add_epsg_def (filter, first, last, 5347, "epsg", 5347,
         "POSGAR 2007 / Argentina 5");
     add_proj4text (p, 0,
@@ -727,9 +753,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5347\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5347\"]]");
     p = add_epsg_def (filter, first, last, 5348, "epsg", 5348,
         "POSGAR 2007 / Argentina 6");
     add_proj4text (p, 0,
@@ -759,9 +783,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5348\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5348\"]]");
     p = add_epsg_def (filter, first, last, 5349, "epsg", 5349,
         "POSGAR 2007 / Argentina 7");
     add_proj4text (p, 0,
@@ -791,9 +813,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"5349\"]]");
+        "Y[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5349\"]]");
     p = add_epsg_def (filter, first, last, 5354, "epsg", 5354,
         "MARGEN");
     add_proj4text (p, 0,
@@ -1037,11 +1057,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 9,
         "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 10,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5367\"");
-    add_srs_wkt (p, 12,
-        "]]");
+        "\"5367\"]]");
     p = add_epsg_def (filter, first, last, 5371, "epsg", 5371,
         "MACARIO SOLIS");
     add_proj4text (p, 0,
@@ -1195,37 +1213,37 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 12,
         "\",\"5387\"]]");
     p = add_epsg_def (filter, first, last, 5388, "epsg", 5388,
-        "Peru96 / UTM zone 17S");
+        "Peru96 / UTM zone 17S (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
         "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Peru96 / UTM zone 17S\",GEOGCS[\"Peru96\",DATUM");
+        "PROJCS[\"Peru96 / UTM zone 17S (deprecated)\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
+        "eru96\",DATUM[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "\"EPSG\",\"5373\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 8,
-        "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
+        "meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 11,
-        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"538");
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "8\"]]");
+        "\"EPSG\",\"5388\"]]");
     p = add_epsg_def (filter, first, last, 5389, "epsg", 5389,
         "Peru96 / UTM zone 19S");
     add_proj4text (p, 0,
@@ -1319,7 +1337,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPH");
     add_srs_wkt (p, 1,
-        "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR");
+        "EROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHOR");
     add_srs_wkt (p, 2,
         "ITY[\"EPSG\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0");
     add_srs_wkt (p, 3,
@@ -1345,7 +1363,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "cotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cl");
     add_srs_wkt (p, 2,
-        "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG");
+        "arke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
         "\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
@@ -1381,7 +1399,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "tepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "ke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 4,
@@ -1417,7 +1435,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         ",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SP");
     add_srs_wkt (p, 2,
-        "HEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHO");
+        "HEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHO");
     add_srs_wkt (p, 3,
         "RITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],P");
     add_srs_wkt (p, 4,
@@ -1455,7 +1473,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark");
     add_srs_wkt (p, 2,
-        "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",");
+        "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 4,
@@ -1493,7 +1511,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP");
+        "Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
         "SG\",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTH");
     add_srs_wkt (p, 4,
@@ -1531,7 +1549,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 4,
@@ -1569,7 +1587,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark");
     add_srs_wkt (p, 2,
-        "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",");
+        "e 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
         "\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 4,
@@ -1635,7 +1653,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "PHEROID[\"Clarke 1858\",6378293.645208759,294.2606763692");
     add_srs_wkt (p, 2,
-        "654,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1");
+        "569,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 3,
         "071\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 4,
@@ -1643,7 +1661,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 5,
         "\",\"9122\"]],AUTHORITY[\"EPSG\",\"5464\"]]");
     p = add_epsg_def (filter, first, last, 5466, "epsg", 5466,
-        "Sibun Gorge 1922 / Colony Grid");
+        "Sibun Gorge 1922 / Colony Grid (deprecated)");
     add_proj4text (p, 0,
         "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 ");
     add_proj4text (p, 1,
@@ -1651,33 +1669,33 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_proj4text (p, 2,
         "78293.645208759 +b=6356617.987679838 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Sibun Gorge 1922 / Colony Grid\",GEOGCS[\"Sibun");
+        "PROJCS[\"Sibun Gorge 1922 / Colony Grid (deprecated)\",G");
     add_srs_wkt (p, 1,
-        " Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SPHEROID[\"Clar");
+        "EOGCS[\"Sibun Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SP");
     add_srs_wkt (p, 2,
-        "ke 1858\",6378293.645208759,294.2606763692654,AUTHORITY[");
+        "HEROID[\"Clarke 1858\",6378293.645208759,294.26067636925");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1071\"]],PRIMEM");
+        "69,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"10");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "71\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transverse_Me");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",17.0612419444");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",1");
     add_srs_wkt (p, 8,
-        "4444],PARAMETER[\"central_meridian\",-88.6318575],PARAME");
+        "7.06124194444444],PARAMETER[\"central_meridian\",-88.631");
     add_srs_wkt (p, 9,
-        "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",6622");
+        "8575],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "0.02833082761],PARAMETER[\"false_northing\",135779.50998");
+        "sting\",66220.02833082761],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "85299],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "135779.5099885299],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"54");
+        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 13,
-        "66\"]]");
+        "EPSG\",\"5466\"]]");
     p = add_epsg_def (filter, first, last, 5467, "epsg", 5467,
         "Panama-Colon 1911");
     add_proj4text (p, 0,
@@ -1685,7 +1703,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 0,
         "GEOGCS[\"Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\"");
     add_srs_wkt (p, 1,
-        ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU");
+        ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982139006,AU");
     add_srs_wkt (p, 2,
         "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]");
     add_srs_wkt (p, 3,
@@ -1707,7 +1725,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "anama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 3,
         "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
@@ -1741,7 +1759,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID");
     add_srs_wkt (p, 2,
-        "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 3,
         "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
@@ -1795,11 +1813,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "_easting\",7000000],PARAMETER[\"false_northing\",5000000");
     add_srs_wkt (p, 12,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORI");
     add_srs_wkt (p, 13,
-        "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 14,
-        "G\",\"5479\"]]");
+        "TY[\"EPSG\",\"5479\"]]");
     p = add_epsg_def (filter, first, last, 5480, "epsg", 5480,
         "RSRGD2000 / BCLC2000");
     add_proj4text (p, 0,
@@ -1833,11 +1849,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "se_easting\",5000000],PARAMETER[\"false_northing\",30000");
     add_srs_wkt (p, 12,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 13,
-        "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E");
-    add_srs_wkt (p, 14,
-        "PSG\",\"5480\"]]");
+        "RITY[\"EPSG\",\"5480\"]]");
     p = add_epsg_def (filter, first, last, 5481, "epsg", 5481,
         "RSRGD2000 / PCLC2000");
     add_proj4text (p, 0,
@@ -1871,11 +1885,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "se_easting\",3000000],PARAMETER[\"false_northing\",10000");
     add_srs_wkt (p, 12,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 13,
-        "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E");
-    add_srs_wkt (p, 14,
-        "PSG\",\"5481\"]]");
+        "RITY[\"EPSG\",\"5481\"]]");
     p = add_epsg_def (filter, first, last, 5482, "epsg", 5482,
         "RSRGD2000 / RSPS2000");
     add_proj4text (p, 0,
@@ -1907,9 +1919,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "ETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Easting\",EAST],AUTHORITY[\"EPSG\",\"5482\"]]");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5482\"]]");
     p = add_epsg_def (filter, first, last, 5489, "epsg", 5489,
         "RGAF09");
     add_proj4text (p, 0,
@@ -2000,6 +2010,44 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
         "9001\"]],AXIS[\"X\",SOUTH],AXIS[\"Y\",WEST],AUTHORITY[\"");
     add_srs_wkt (p, 14,
         "EPSG\",\"5513\"]]");
+    p = add_epsg_def (filter, first, last, 5514, "epsg", 5514,
+        "S-JTSK / Krovak East North");
+    add_proj4text (p, 0,
+        "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha");
+    add_proj4text (p, 1,
+        "=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel");
+    add_proj4text (p, 2,
+        " +towgs84=589,76,480,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"S-JTSK / Krovak East North\",GEOGCS[\"S-JTSK\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"System_Jednotne_Trigonometricke_Site_Katastralni");
+    add_srs_wkt (p, 2,
+        "\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTH");
+    add_srs_wkt (p, 3,
+        "ORITY[\"EPSG\",\"7004\"]],TOWGS84[589,76,480,0,0,0,0],AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"6156\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 5,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 6,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 7,
+        "156\"]],PROJECTION[\"Krovak\"],PARAMETER[\"latitude_of_c");
+    add_srs_wkt (p, 8,
+        "enter\",49.5],PARAMETER[\"longitude_of_center\",24.83333");
+    add_srs_wkt (p, 9,
+        "333333333],PARAMETER[\"azimuth\",30.28813972222222],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"pseudo_standard_parallel_1\",78.5],PARAMETER[\"s");
+    add_srs_wkt (p, 11,
+        "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR");
+    add_srs_wkt (p, 12,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 14,
+        "UTHORITY[\"EPSG\",\"5514\"]]");
     p = add_epsg_def (filter, first, last, 5518, "epsg", 5518,
         "CI1971 / Chatham Islands Map Grid");
     add_proj4text (p, 0,
@@ -2031,11 +2079,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "g\",350000],PARAMETER[\"false_northing\",650000],UNIT[\"");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\"");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5518");
-    add_srs_wkt (p, 13,
-        "\"]]");
+        "\",\"5518\"]]");
     p = add_epsg_def (filter, first, last, 5519, "epsg", 5519,
         "CI1979 / Chatham Islands Map Grid");
     add_proj4text (p, 0,
@@ -2069,9 +2115,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "ng\",650000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"5519\"]]");
+        "]],AUTHORITY[\"EPSG\",\"5519\"]]");
     p = add_epsg_def (filter, first, last, 5520, "epsg", 5520,
         "DHDN / 3-degree Gauss-Kruger zone 1");
     add_proj4text (p, 0,
@@ -2101,9 +2145,9 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 10,
         "_easting\",1500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 11,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5520\"]]");
+        "PSG\",\"5520\"]]");
     p = add_epsg_def (filter, first, last, 5523, "epsg", 5523,
         "WGS 84 / Gabon TM 2011");
     add_proj4text (p, 0,
@@ -2153,25 +2197,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     p = add_epsg_def (filter, first, last, 5527, "epsg", 5527,
         "SAD69(96)");
     add_proj4text (p, 0,
-        "+proj=longlat +ellps=aust_SA +no_defs");
+        "+proj=longlat +ellps=aust_SA +towgs84=-67.35,3.88,-38.22");
+    add_proj4text (p, 1,
+        ",0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
         "GEOGCS[\"SAD69(96)\",DATUM[\"South_American_Datum_1969_9");
     add_srs_wkt (p, 1,
         "6\",SPHEROID[\"GRS 1967 Modified\",6378160,298.25,AUTHOR");
     add_srs_wkt (p, 2,
-        "ITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG\",\"1075\"]],PR");
+        "ITY[\"EPSG\",\"7050\"]],TOWGS84[-67.35,3.88,-38.22,0,0,0");
     add_srs_wkt (p, 3,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        ",0],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0");
     add_srs_wkt (p, 4,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
     add_srs_wkt (p, 5,
-        "]],AUTHORITY[\"EPSG\",\"5527\"]]");
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 6,
+        "\",\"5527\"]]");
     p = add_epsg_def (filter, first, last, 5530, "epsg", 5530,
         "SAD69(96) / Brazil Polyconic");
     add_proj4text (p, 0,
         "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000");
     add_proj4text (p, 1,
-        "0 +ellps=aust_SA +units=m +no_defs");
+        "0 +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"SAD69(96) / Brazil Polyconic\",GEOGCS[\"SAD69(9");
     add_srs_wkt (p, 1,
@@ -2179,29 +2229,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "RS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "050\"]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich");
+        "050\"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "EPSG\",\"5527\"]],PROJECTION[\"Polyconic\"],PARAMETER[\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PR");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "OJECTION[\"Polyconic\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "54],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal");
+        ",0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "e_easting\",5000000],PARAMETER[\"false_northing\",100000");
     add_srs_wkt (p, 10,
-        "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"5530\"]]");
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5530\"");
+    add_srs_wkt (p, 12,
+        "]]");
     p = add_epsg_def (filter, first, last, 5531, "epsg", 5531,
         "SAD69(96) / UTM zone 21S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_de");
+        "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "fs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"SAD69(96) / UTM zone 21S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
@@ -2209,63 +2261,63 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "in\",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "alse_easting\",500000],PARAMETER[\"false_northing\",1000");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "EPSG\",\"5531\"]]");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5531\"]]");
     p = add_epsg_def (filter, first, last, 5532, "epsg", 5532,
-        "SAD69(96) / UTM zone 22S");
+        "SAD69(96) / UTM zone 22S (deprecated)");
     add_proj4text (p, 0,
         "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
         "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69(96) / UTM zone 22S\",GEOGCS[\"SAD69\",DAT");
+        "PROJCS[\"SAD69(96) / UTM zone 22S (deprecated)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod");
+        "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW");
+        "GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR");
+        "7050\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "6618\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\",");
+        ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"5532\"]]");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5532\"]]");
     p = add_epsg_def (filter, first, last, 5533, "epsg", 5533,
         "SAD69(96) / UTM zone 23S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_de");
+        "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "fs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"SAD69(96) / UTM zone 23S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
@@ -2273,31 +2325,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "in\",0],PARAMETER[\"central_meridian\",-45],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "alse_easting\",500000],PARAMETER[\"false_northing\",1000");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "EPSG\",\"5533\"]]");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5533\"]]");
     p = add_epsg_def (filter, first, last, 5534, "epsg", 5534,
         "SAD69(96) / UTM zone 24S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_de");
+        "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "fs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"SAD69(96) / UTM zone 24S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
@@ -2305,31 +2357,31 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "in\",0],PARAMETER[\"central_meridian\",-39],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "alse_easting\",500000],PARAMETER[\"false_northing\",1000");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "EPSG\",\"5534\"]]");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5534\"]]");
     p = add_epsg_def (filter, first, last, 5535, "epsg", 5535,
         "SAD69(96) / UTM zone 25S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_de");
+        "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "fs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
         "PROJCS[\"SAD69(96) / UTM zone 25S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
@@ -2337,25 +2389,25 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 2,
         "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"5527\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "in\",0],PARAMETER[\"central_meridian\",-33],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "alse_easting\",500000],PARAMETER[\"false_northing\",1000");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "EPSG\",\"5535\"]]");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5535\"]]");
     p = add_epsg_def (filter, first, last, 5536, "epsg", 5536,
         "Corrego Alegre 1961 / UTM zone 21S");
     add_proj4text (p, 0,
@@ -2607,7 +2659,7 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 1,
         "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla");
     add_srs_wkt (p, 2,
-        "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\"");
+        "rke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
         ",\"7008\"]],TOWGS84[213.11,9.37,-74.95,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 4,
@@ -2630,584 +2682,484 @@ initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **las
         "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 13,
         ",NORTH],AUTHORITY[\"EPSG\",\"5559\"]]");
-    p = add_epsg_def (filter, first, last, 20004, "epsg", 20004,
-        "Pulkovo 1995 / Gauss-Kruger zone 4");
+    p = add_epsg_def (filter, first, last, 5561, "epsg", 5561,
+        "UCS-2000");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 ");
+        "+proj=longlat +ellps=krass +towgs84=25,-141,-78.5,-0,0.3");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
-    add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "5,0.736,0 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 4\",GEOGCS[\"P");
+        "GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Kr");
     add_srs_wkt (p, 1,
-        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
+        "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
+        "SG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
-    add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
-    add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
-    add_srs_wkt (p, 8,
-        "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET");
-    add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",45000");
-    add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
-    add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"20004\"]]");
-    p = add_epsg_def (filter, first, last, 20005, "epsg", 20005,
-        "Pulkovo 1995 / Gauss-Kruger zone 5");
-    add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 ");
-    add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
-    add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
-    add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 5\",GEOGCS[\"P");
-    add_srs_wkt (p, 1,
-        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
-    add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
-    add_srs_wkt (p, 3,
-        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
-    add_srs_wkt (p, 4,
-        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
-    add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
-    add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
-    add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
-    add_srs_wkt (p, 8,
-        "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET");
-    add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",55000");
-    add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
-    add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"20005\"]]");
-    p = add_epsg_def (filter, first, last, 20006, "epsg", 20006,
-        "Pulkovo 1995 / Gauss-Kruger zone 6");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561\"]]");
+    p = add_epsg_def (filter, first, last, 5562, "epsg", 5562,
+        "UCS-2000 / Gauss-Kruger zone 4");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 ");
-    add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
-    add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
-    add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 6\",GEOGCS[\"P");
-    add_srs_wkt (p, 1,
-        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
-    add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
-    add_srs_wkt (p, 3,
-        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
-    add_srs_wkt (p, 4,
-        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
-    add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
-    add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
-    add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
-    add_srs_wkt (p, 8,
-        "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET");
-    add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",65000");
-    add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
-    add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"20006\"]]");
-    p = add_epsg_def (filter, first, last, 20007, "epsg", 20007,
-        "Pulkovo 1995 / Gauss-Kruger zone 7");
-    add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 7\",GEOGCS[\"P");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger zone 4\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET");
+        "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",75000");
+        "r\",1],PARAMETER[\"false_easting\",4500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"20007\"]]");
-    p = add_epsg_def (filter, first, last, 20008, "epsg", 20008,
-        "Pulkovo 1995 / Gauss-Kruger zone 8");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"5562\"]]");
+    p = add_epsg_def (filter, first, last, 5563, "epsg", 5563,
+        "UCS-2000 / Gauss-Kruger zone 5");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 8\",GEOGCS[\"P");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger zone 5\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "f_origin\",0],PARAMETER[\"central_meridian\",45],PARAMET");
+        "RAMETER[\"central_meridian\",27],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",85000");
+        "r\",1],PARAMETER[\"false_easting\",5500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"20008\"]]");
-    p = add_epsg_def (filter, first, last, 20009, "epsg", 20009,
-        "Pulkovo 1995 / Gauss-Kruger zone 9");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"5563\"]]");
+    p = add_epsg_def (filter, first, last, 5564, "epsg", 5564,
+        "UCS-2000 / Gauss-Kruger zone 6");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 9\",GEOGCS[\"P");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger zone 6\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "f_origin\",0],PARAMETER[\"central_meridian\",51],PARAMET");
+        "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",95000");
+        "r\",1],PARAMETER[\"false_easting\",6500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",");
-    add_srs_wkt (p, 12,
-        "EAST],AUTHORITY[\"EPSG\",\"20009\"]]");
-    p = add_epsg_def (filter, first, last, 20010, "epsg", 20010,
-        "Pulkovo 1995 / Gauss-Kruger zone 10");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"5564\"]]");
+    p = add_epsg_def (filter, first, last, 5565, "epsg", 5565,
+        "UCS-2000 / Gauss-Kruger zone 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 ");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 10\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger zone 7\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",57],PARAM");
+        "RAMETER[\"central_meridian\",39],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",105");
+        "r\",1],PARAMETER[\"false_easting\",7500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
-    add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20010\"]]");
-    p = add_epsg_def (filter, first, last, 20011, "epsg", 20011,
-        "Pulkovo 1995 / Gauss-Kruger zone 11");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"5565\"]]");
+    p = add_epsg_def (filter, first, last, 5566, "epsg", 5566,
+        "UCS-2000 / Gauss-Kruger CM 21E");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 11\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger CM 21E\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",63],PARAM");
+        "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",115");
+        "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
-    add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20011\"]]");
-    p = add_epsg_def (filter, first, last, 20012, "epsg", 20012,
-        "Pulkovo 1995 / Gauss-Kruger zone 12");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5566\"]]");
+    p = add_epsg_def (filter, first, last, 5567, "epsg", 5567,
+        "UCS-2000 / Gauss-Kruger CM 27E");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 12\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger CM 27E\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",69],PARAM");
+        "RAMETER[\"central_meridian\",27],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",125");
+        "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
-    add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20012\"]]");
-    p = add_epsg_def (filter, first, last, 20013, "epsg", 20013,
-        "Pulkovo 1995 / Gauss-Kruger zone 13");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5567\"]]");
+    p = add_epsg_def (filter, first, last, 5568, "epsg", 5568,
+        "UCS-2000 / Gauss-Kruger CM 33E");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 13\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger CM 33E\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM");
+        "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",135");
+        "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
-    add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20013\"]]");
-    p = add_epsg_def (filter, first, last, 20014, "epsg", 20014,
-        "Pulkovo 1995 / Gauss-Kruger zone 14");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5568\"]]");
+    p = add_epsg_def (filter, first, last, 5569, "epsg", 5569,
+        "UCS-2000 / Gauss-Kruger CM 39E");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 14\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / Gauss-Kruger CM 39E\",GEOGCS[\"UCS-2");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM");
+        "RAMETER[\"central_meridian\",39],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",145");
+        "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
-    add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20014\"]]");
-    p = add_epsg_def (filter, first, last, 20015, "epsg", 20015,
-        "Pulkovo 1995 / Gauss-Kruger zone 15");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5569\"]]");
+    p = add_epsg_def (filter, first, last, 5570, "epsg", 5570,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 ");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 15\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",155");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        ",7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20015\"]]");
-    p = add_epsg_def (filter, first, last, 20016, "epsg", 20016,
-        "Pulkovo 1995 / Gauss-Kruger zone 16");
+        "70\"]]");
+    p = add_epsg_def (filter, first, last, 5571, "epsg", 5571,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 ");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 16\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",24],");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",165");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        ",8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20016\"]]");
-    p = add_epsg_def (filter, first, last, 20017, "epsg", 20017,
-        "Pulkovo 1995 / Gauss-Kruger zone 17");
+        "71\"]]");
+    p = add_epsg_def (filter, first, last, 5572, "epsg", 5572,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 ");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "+ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +uni");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 17\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",27],");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",175");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        ",9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"20017\"]]");
-    p = add_epsg_def (filter, first, last, 20018, "epsg", 20018,
-        "Pulkovo 1995 / Gauss-Kruger zone 18");
+        "72\"]]");
+    p = add_epsg_def (filter, first, last, 5573, "epsg", 5573,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 10 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 18\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 10 (depre");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",30],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",10500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20018\"]]");
-    p = add_epsg_def (filter, first, last, 20019, "epsg", 20019,
-        "Pulkovo 1995 / Gauss-Kruger zone 19");
+        "73\"]]");
+    p = add_epsg_def (filter, first, last, 5574, "epsg", 5574,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 11 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 19\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 11 (depre");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",33],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",11500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20019\"]]");
-    p = add_epsg_def (filter, first, last, 20020, "epsg", 20020,
-        "Pulkovo 1995 / Gauss-Kruger zone 20");
+        "74\"]]");
+    p = add_epsg_def (filter, first, last, 5575, "epsg", 5575,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 12 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 20\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 12 (depre");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",36],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",12500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20020\"]]");
+        "75\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_27.c b/src/srsinit/epsg_inlined_27.c
index 7e28bf1..864c2a4 100644
--- a/src/srsinit/epsg_inlined_27.c
+++ b/src/srsinit/epsg_inlined_27.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3394 +52,3334 @@ initialize_epsg_27 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 20021, "epsg", 20021,
-        "Pulkovo 1995 / Gauss-Kruger zone 21");
+    p = add_epsg_def (filter, first, last, 5576, "epsg", 5576,
+        "UCS-2000 / 3-degree Gauss-Kruger zone 13 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        " +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +un");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 21\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 13 (depre");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",39],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",13500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"55");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20021\"]]");
-    p = add_epsg_def (filter, first, last, 20022, "epsg", 20022,
-        "Pulkovo 1995 / Gauss-Kruger zone 22");
+        "76\"]]");
+    p = add_epsg_def (filter, first, last, 5577, "epsg", 5577,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 22\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"557");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20022\"]]");
-    p = add_epsg_def (filter, first, last, 20023, "epsg", 20023,
-        "Pulkovo 1995 / Gauss-Kruger zone 23");
+        "7\"]]");
+    p = add_epsg_def (filter, first, last, 5578, "epsg", 5578,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 23\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",24],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"557");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20023\"]]");
-    p = add_epsg_def (filter, first, last, 20024, "epsg", 20024,
-        "Pulkovo 1995 / Gauss-Kruger zone 24");
+        "8\"]]");
+    p = add_epsg_def (filter, first, last, 5579, "epsg", 5579,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 24\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",141],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",27],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",24");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"557");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20024\"]]");
-    p = add_epsg_def (filter, first, last, 20025, "epsg", 20025,
-        "Pulkovo 1995 / Gauss-Kruger zone 25");
+        "9\"]]");
+    p = add_epsg_def (filter, first, last, 5580, "epsg", 5580,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 25\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",147],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",30],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",25");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20025\"]]");
-    p = add_epsg_def (filter, first, last, 20026, "epsg", 20026,
-        "Pulkovo 1995 / Gauss-Kruger zone 26");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 5581, "epsg", 5581,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 26\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",153],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",33],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",26");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20026\"]]");
-    p = add_epsg_def (filter, first, last, 20027, "epsg", 20027,
-        "Pulkovo 1995 / Gauss-Kruger zone 27");
+        "1\"]]");
+    p = add_epsg_def (filter, first, last, 5582, "epsg", 5582,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 27\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",159],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",36],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",27");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20027\"]]");
-    p = add_epsg_def (filter, first, last, 20028, "epsg", 20028,
-        "Pulkovo 1995 / Gauss-Kruger zone 28");
+        "2\"]]");
+    p = add_epsg_def (filter, first, last, 5583, "epsg", 5583,
+        "UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 28\",GEOGCS[\"");
+        "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprec");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        ",\"7024\"]],TOWGS84[25,-141,-78.5,-0,0.35,0.736,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "RITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5561");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",165],PARA");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",39],");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",28");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"558");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20028\"]]");
-    p = add_epsg_def (filter, first, last, 20029, "epsg", 20029,
-        "Pulkovo 1995 / Gauss-Kruger zone 29");
+        "3\"]]");
+    p = add_epsg_def (filter, first, last, 5588, "epsg", 5588,
+        "NAD27 / New Brunswick Stereographic (NAD27)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=");
+        "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=3");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
-    add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "04800 +y_0=304800 +datum=NAD27 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 29\",GEOGCS[\"");
+        "PROJCS[\"NAD27 / New Brunswick Stereographic (NAD27)\",G");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "EOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHE");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "ROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRI");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "],AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Oblique_Ste");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "reographic\"],PARAMETER[\"latitude_of_origin\",46.5],PAR");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",171],PARA");
+        "AMETER[\"central_meridian\",-66.5],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",29");
+        "tor\",0.999912],PARAMETER[\"false_easting\",1000000],PAR");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "AMETER[\"false_northing\",1000000],UNIT[\"foot\",0.3048,");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "AUTHORITY[\"EPSG\",\"9002\"]],AUTHORITY[\"EPSG\",\"5588\"");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20029\"]]");
-    p = add_epsg_def (filter, first, last, 20030, "epsg", 20030,
-        "Pulkovo 1995 / Gauss-Kruger zone 30");
+        "]]");
+    p = add_epsg_def (filter, first, last, 5589, "epsg", 5589,
+        "Sibun Gorge 1922 / Colony Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=");
+        "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 ");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+        "+k=1 +x_0=66220.02833082761 +y_0=135779.5099885299 +a=63");
     add_proj4text (p, 2,
-        "-0.22 +units=m +no_defs");
+        "78293.645208759 +b=6356617.987679838 +to_meter=0.3047972");
+    add_proj4text (p, 3,
+        "654 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 30\",GEOGCS[\"");
+        "PROJCS[\"Sibun Gorge 1922 / Colony Grid\",GEOGCS[\"Sibun");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        " Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "ke 1858\",6378293.645208759,294.2606763692569,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1071\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",17.0612419444");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",177],PARA");
+        "4444],PARAMETER[\"central_meridian\",-88.6318575],PARAME");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",30");
+        "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",2172");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "59.26],PARAMETER[\"false_northing\",445474.83],UNIT[\"Cl");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "arke's foot\",0.3047972654,AUTHORITY[\"EPSG\",\"9005\"]]");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20030\"]]");
-    p = add_epsg_def (filter, first, last, 20031, "epsg", 20031,
-        "Pulkovo 1995 / Gauss-Kruger zone 31");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"5589\"]]");
+    p = add_epsg_def (filter, first, last, 5593, "epsg", 5593,
+        "FEH2010");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0");
+        "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de");
     add_proj4text (p, 1,
-        "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13");
-    add_proj4text (p, 2,
-        ",-0.22 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 31\",GEOGCS[\"");
+        "GEOGCS[\"FEH2010\",DATUM[\"Fehmarnbelt_Datum_2010\",SPHE");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "\"1078\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
-    add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
-    add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
-    add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR");
-    add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3");
-    add_srs_wkt (p, 10,
-        "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
-    add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20031\"]]");
-    p = add_epsg_def (filter, first, last, 20032, "epsg", 20032,
-        "Pulkovo 1995 / Gauss-Kruger zone 32");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5593\"]]");
+    p = add_epsg_def (filter, first, last, 5596, "epsg", 5596,
+        "FEH2010 / Fehmarnbelt TM");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0");
+        "+proj=tmerc +lat_0=0 +lon_0=11.33333333333333 +k=1 +x_0=");
     add_proj4text (p, 1,
-        "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13");
+        "1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit");
     add_proj4text (p, 2,
-        ",-0.22 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 32\",GEOGCS[\"");
+        "PROJCS[\"FEH2010 / Fehmarnbelt TM\",GEOGCS[\"FEH2010\",D");
     add_srs_wkt (p, 1,
-        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
+        "ATUM[\"Fehmarnbelt_Datum_2010\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1078\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
+        "HORITY[\"EPSG\",\"5593\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR");
+        "entral_meridian\",11.33333333333333],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3");
+        "actor\",1],PARAMETER[\"false_easting\",1000000],PARAMETE");
     add_srs_wkt (p, 10,
-        "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"20032\"]]");
-    p = add_epsg_def (filter, first, last, 20064, "epsg", 20064,
-        "Pulkovo 1995 / Gauss-Kruger 4N (deprecated)");
+        "NORTH],AUTHORITY[\"EPSG\",\"5596\"]]");
+    p = add_epsg_def (filter, first, last, 5623, "epsg", 5623,
+        "NAD27 / Michigan East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "99942857 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 4N (deprecated)\",G");
+        "PROJCS[\"NAD27 / Michigan East\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "[\"latitude_of_origin\",41.5],PARAMETER[\"central_meridi");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21");
+        "an\",-83.66666666666667],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "9942857],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20064\"]]");
-    p = add_epsg_def (filter, first, last, 20065, "epsg", 20065,
-        "Pulkovo 1995 / Gauss-Kruger 5N (deprecated)");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5623\"]]");
+    p = add_epsg_def (filter, first, last, 5624, "epsg", 5624,
+        "NAD27 / Michigan Old Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 5N (deprecated)\",G");
+        "PROJCS[\"NAD27 / Michigan Old Central\",GEOGCS[\"NAD27\"");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "RAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27");
+        "_meridian\",-85.75],PARAMETER[\"scale_factor\",0.9999090");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "91],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20065\"]]");
-    p = add_epsg_def (filter, first, last, 20066, "epsg", 20066,
-        "Pulkovo 1995 / Gauss-Kruger 6N (deprecated)");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"5624\"]]");
+    p = add_epsg_def (filter, first, last, 5625, "epsg", 5625,
+        "NAD27 / Michigan West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 6N (deprecated)\",G");
+        "PROJCS[\"NAD27 / Michigan West\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "[\"latitude_of_origin\",41.5],PARAMETER[\"central_meridi");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33");
+        "an\",-88.75],PARAMETER[\"scale_factor\",0.999909091],PAR");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20066\"]]");
-    p = add_epsg_def (filter, first, last, 20067, "epsg", 20067,
-        "Pulkovo 1995 / Gauss-Kruger 7N (deprecated)");
+        "RTH],AUTHORITY[\"EPSG\",\"5625\"]]");
+    p = add_epsg_def (filter, first, last, 5627, "epsg", 5627,
+        "ED50 / TM 6 NE");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 7N (deprecated)\",G");
+        "PROJCS[\"ED50 / TM 6 NE\",GEOGCS[\"ED50\",DATUM[\"Europe");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",39");
+        "ridian\",6],PARAMETER[\"scale_factor\",0.9996],PARAMETER");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20067\"]]");
-    p = add_epsg_def (filter, first, last, 20068, "epsg", 20068,
-        "Pulkovo 1995 / Gauss-Kruger 8N (deprecated)");
+        "G\",\"5627\"]]");
+    p = add_epsg_def (filter, first, last, 5629, "epsg", 5629,
+        "Moznet / UTM zone 38S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=utm +zone=38 +south +ellps=WGS84 +towgs84=0,0,0,-0");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
-    add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        ",-0,-0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 8N (deprecated)\",G");
+        "PROJCS[\"Moznet / UTM zone 38S\",GEOGCS[\"Moznet\",DATUM");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,-0,-0,-");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        "0,0],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "G\",\"4130\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",45");
+        "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20068\"]]");
-    p = add_epsg_def (filter, first, last, 20069, "epsg", 20069,
-        "Pulkovo 1995 / Gauss-Kruger 9N (deprecated)");
+        "\"EPSG\",\"5629\"]]");
+    p = add_epsg_def (filter, first, last, 5631, "epsg", 5631,
+        "Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "44,-0.84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 9N (deprecated)\",G");
+        "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)\",");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
+        "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "Y[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",51");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        "l_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "\"false_easting\",2500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20069\"]]");
-    p = add_epsg_def (filter, first, last, 20070, "epsg", 20070,
-        "Pulkovo 1995 / Gauss-Kruger 10N (deprecated)");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"5631\"]]");
+    p = add_epsg_def (filter, first, last, 5632, "epsg", 5632,
+        "PTRA08 / LCC Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 ");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 10N (deprecated)\",");
+        "PROJCS[\"PTRA08 / LCC Europe\",GEOGCS[\"PTRA08\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS 198");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],PRI");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5");
+        "],PARAMETER[\"standard_parallel_2\",65],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "tude_of_origin\",52],PARAMETER[\"central_meridian\",10],");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "PARAMETER[\"false_easting\",4000000],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "orthing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20070\"]]");
-    p = add_epsg_def (filter, first, last, 20071, "epsg", 20071,
-        "Pulkovo 1995 / Gauss-Kruger 11N (deprecated)");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5632\"]]");
+    p = add_epsg_def (filter, first, last, 5633, "epsg", 5633,
+        "PTRA08 / LAEA Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
-    add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 11N (deprecated)\",");
+        "PROJCS[\"PTRA08 / LAEA Europe\",GEOGCS[\"PTRA08\",DATUM[");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS 1");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],P");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"]],AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
+        ",52],PARAMETER[\"longitude_of_center\",10],PARAMETER[\"f");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "alse_easting\",4321000],PARAMETER[\"false_northing\",321");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
-    add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20071\"]]");
-    p = add_epsg_def (filter, first, last, 20072, "epsg", 20072,
-        "Pulkovo 1995 / Gauss-Kruger 12N (deprecated)");
+        "HORITY[\"EPSG\",\"5633\"]]");
+    p = add_epsg_def (filter, first, last, 5634, "epsg", 5634,
+        "REGCAN95 / LCC Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 ");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 12N (deprecated)\",");
+        "PROJCS[\"REGCAN95 / LCC Europe\",GEOGCS[\"REGCAN95\",DAT");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "UM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 198");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],PRI");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],AUTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
+        "],PARAMETER[\"standard_parallel_2\",65],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "tude_of_origin\",52],PARAMETER[\"central_meridian\",10],");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "PARAMETER[\"false_easting\",4000000],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "orthing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20072\"]]");
-    p = add_epsg_def (filter, first, last, 20073, "epsg", 20073,
-        "Pulkovo 1995 / Gauss-Kruger 13N (deprecated)");
+        "9001\"]],AUTHORITY[\"EPSG\",\"5634\"]]");
+    p = add_epsg_def (filter, first, last, 5635, "epsg", 5635,
+        "REGCAN95 / LAEA Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
-    add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 13N (deprecated)\",");
+        "PROJCS[\"REGCAN95 / LAEA Europe\",GEOGCS[\"REGCAN95\",DA");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "TUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],PR");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "]],AUTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Lambert_Az");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "imuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\",5");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7");
+        "2],PARAMETER[\"longitude_of_center\",10],PARAMETER[\"fal");
     add_srs_wkt (p, 9,
-        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "se_easting\",4321000],PARAMETER[\"false_northing\",32100");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
-    add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20073\"]]");
-    p = add_epsg_def (filter, first, last, 20074, "epsg", 20074,
-        "Pulkovo 1995 / Gauss-Kruger 14N (deprecated)");
+        "RITY[\"EPSG\",\"5635\"]]");
+    p = add_epsg_def (filter, first, last, 5636, "epsg", 5636,
+        "TUREF / LAEA Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
-    add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 14N (deprecated)\",");
+        "PROJCS[\"TUREF / LAEA Europe\",GEOGCS[\"TUREF\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "Turkish_National_Reference_Frame\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"Lambert_Azimu");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "thal_Equal_Area\"],PARAMETER[\"latitude_of_center\",52],");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
+        "PARAMETER[\"longitude_of_center\",10],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "easting\",4321000],PARAMETER[\"false_northing\",3210000]");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
-    add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20074\"]]");
-    p = add_epsg_def (filter, first, last, 20075, "epsg", 20075,
-        "Pulkovo 1995 / Gauss-Kruger 15N (deprecated)");
+        "Y[\"EPSG\",\"5636\"]]");
+    p = add_epsg_def (filter, first, last, 5637, "epsg", 5637,
+        "TUREF / LCC Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 ");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 15N (deprecated)\",");
+        "PROJCS[\"TUREF / LCC Europe\",GEOGCS[\"TUREF\",DATUM[\"T");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "urkish_National_Reference_Frame\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "UTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35],P");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
+        "ARAMETER[\"standard_parallel_2\",65],PARAMETER[\"latitud");
     add_srs_wkt (p, 9,
-        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "e_of_origin\",52],PARAMETER[\"central_meridian\",10],PAR");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "AMETER[\"false_easting\",4000000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "hing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20075\"]]");
-    p = add_epsg_def (filter, first, last, 20076, "epsg", 20076,
-        "Pulkovo 1995 / Gauss-Kruger 16N (deprecated)");
+        "01\"]],AUTHORITY[\"EPSG\",\"5637\"]]");
+    p = add_epsg_def (filter, first, last, 5638, "epsg", 5638,
+        "ISN2004 / LAEA Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
-    add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 16N (deprecated)\",");
+        "PROJCS[\"ISN2004 / LAEA Europe\",GEOGCS[\"ISN2004\",DATU");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "M[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,298");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"5324\"]],PROJECTION[\"Lambert_Azimuthal_Equal_A");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "rea\"],PARAMETER[\"latitude_of_center\",52],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
+        "longitude_of_center\",10],PARAMETER[\"false_easting\",43");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "21000],PARAMETER[\"false_northing\",3210000],UNIT[\"metr");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
-    add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20076\"]]");
-    p = add_epsg_def (filter, first, last, 20077, "epsg", 20077,
-        "Pulkovo 1995 / Gauss-Kruger 17N (deprecated)");
+        "5638\"]]");
+    p = add_epsg_def (filter, first, last, 5639, "epsg", 5639,
+        "ISN2004 / LCC Europe");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+        "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 ");
     add_proj4text (p, 2,
-        "22 +units=m +no_defs");
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 17N (deprecated)\",");
+        "PROJCS[\"ISN2004 / LCC Europe\",GEOGCS[\"ISN2004\",DATUM");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "SG\",\"5324\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"],PARAMETER[\"standard_parallel_1\",35],PARAMETER[\"st");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
+        "andard_parallel_2\",65],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 9,
-        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        ",52],PARAMETER[\"central_meridian\",10],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "e_easting\",4000000],PARAMETER[\"false_northing\",280000");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHOR");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20077\"]]");
-    p = add_epsg_def (filter, first, last, 20078, "epsg", 20078,
-        "Pulkovo 1995 / Gauss-Kruger 18N (deprecated)");
+        "ITY[\"EPSG\",\"5639\"]]");
+    p = add_epsg_def (filter, first, last, 5641, "epsg", 5641,
+        "SIRGAS 2000 / Brazil Mercator");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=merc +lon_0=-43 +lat_ts=-2 +x_0=5000000 +y_0=10000");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 18N (deprecated)\",");
+        "PROJCS[\"SIRGAS 2000 / Brazil Mercator\",GEOGCS[\"SIRGAS");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        " 2000\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_l");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "as_AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\",\"4674\"]],PROJECTION[\"Mercator_2SP\"],PARAMETER[\"s");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "tandard_parallel_1\",-2],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 9,
-        "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "-43],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20078\"]]");
-    p = add_epsg_def (filter, first, last, 20079, "epsg", 20079,
-        "Pulkovo 1995 / Gauss-Kruger 19N (deprecated)");
+        "RITY[\"EPSG\",\"5641\"]]");
+    p = add_epsg_def (filter, first, last, 5643, "epsg", 5643,
+        "ED50 / SPBA LCC");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=52.66666666666666 +lat_2=54.33333333333");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "334 +lat_0=48 +lon_0=10 +x_0=815000 +y_0=0 +ellps=intl +");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 19N (deprecated)\",");
+        "PROJCS[\"ED50 / SPBA LCC\",GEOGCS[\"ED50\",DATUM[\"Europ");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "ean_Datum_1950\",SPHEROID[\"International 1924\",6378388");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"4230\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "SP\"],PARAMETER[\"standard_parallel_1\",52.6666666666666");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "6],PARAMETER[\"standard_parallel_2\",54.33333333333334],");
     add_srs_wkt (p, 9,
-        "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "PARAMETER[\"latitude_of_origin\",48],PARAMETER[\"central");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "_meridian\",10],PARAMETER[\"false_easting\",815000],PARA");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20079\"]]");
-    p = add_epsg_def (filter, first, last, 20080, "epsg", 20080,
-        "Pulkovo 1995 / Gauss-Kruger 20N (deprecated)");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 13,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"5643\"]]");
+    p = add_epsg_def (filter, first, last, 5644, "epsg", 5644,
+        "RGR92 / UTM zone 39S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=39 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
-    add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 20N (deprecated)\",");
+        "PROJCS[\"RGR92 / UTM zone 39S\",GEOGCS[\"RGR92\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "Reseau_Geodesique_de_la_Reunion_1992\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6627\"]],PR");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "]],AUTHORITY[\"EPSG\",\"4627\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "ER[\"central_meridian\",51],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20080\"]]");
-    p = add_epsg_def (filter, first, last, 20081, "epsg", 20081,
-        "Pulkovo 1995 / Gauss-Kruger 21N (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"5644\"]]");
+    p = add_epsg_def (filter, first, last, 5646, "epsg", 5646,
+        "NAD83 / Vermont (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "=500000.00001016 +y_0=0 +datum=NAD83 +units=us-ft +no_de");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 21N (deprecated)\",");
+        "PROJCS[\"NAD83 / Vermont (ftUS)\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "or\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "central_meridian\",-72.5],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "99964286],PARAMETER[\"false_easting\",1640416.6667],PARA");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20081\"]]");
-    p = add_epsg_def (filter, first, last, 20082, "epsg", 20082,
-        "Pulkovo 1995 / Gauss-Kruger 22N (deprecated)");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5646\"]]");
+    p = add_epsg_def (filter, first, last, 5649, "epsg", 5649,
+        "ETRS89 / UTM zone 31N (zE-N)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 +x_0=31500000 +y");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 22N (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 31N (zE-N)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",3150000");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20082\"]]");
-    p = add_epsg_def (filter, first, last, 20083, "epsg", 20083,
-        "Pulkovo 1995 / Gauss-Kruger 23N (deprecated)");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5649\"]]");
+    p = add_epsg_def (filter, first, last, 5650, "epsg", 5650,
+        "ETRS89 / UTM zone 33N (zE-N)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=33500000 +");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 23N (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 33N (zE-N)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",335000");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20083\"]]");
-    p = add_epsg_def (filter, first, last, 20084, "epsg", 20084,
-        "Pulkovo 1995 / Gauss-Kruger 24N (deprecated)");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5650\"]]");
+    p = add_epsg_def (filter, first, last, 5651, "epsg", 5651,
+        "ETRS89 / UTM zone 31N (N-zE)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 +x_0=31500000 +y");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 24N (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 31N (N-zE)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",3150000");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
-    add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20084\"]]");
-    p = add_epsg_def (filter, first, last, 20085, "epsg", 20085,
-        "Pulkovo 1995 / Gauss-Kruger 25N (deprecated)");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5651\"]]");
+    p = add_epsg_def (filter, first, last, 5652, "epsg", 5652,
+        "ETRS89 / UTM zone 32N (N-zE)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 25N (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 32N (N-zE)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",3250000");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
-    add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20085\"]]");
-    p = add_epsg_def (filter, first, last, 20086, "epsg", 20086,
-        "Pulkovo 1995 / Gauss-Kruger 26N (deprecated)");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5652\"]]");
+    p = add_epsg_def (filter, first, last, 5653, "epsg", 5653,
+        "ETRS89 / UTM zone 33N (N-zE)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=33500000 +");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 26N (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 33N (N-zE)\",GEOGCS[\"ETRS89\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",335000");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
-    add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20086\"]]");
-    p = add_epsg_def (filter, first, last, 20087, "epsg", 20087,
-        "Pulkovo 1995 / Gauss-Kruger 27N (deprecated)");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"5653\"]]");
+    p = add_epsg_def (filter, first, last, 5654, "epsg", 5654,
+        "NAD83(HARN) / Vermont (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 27N (deprecated)\",");
+        "PROJCS[\"NAD83(HARN) / Vermont (ftUS)\",GEOGCS[\"NAD83(H");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "igin\",42.5],PARAMETER[\"central_meridian\",-72.5],PARAM");
     add_srs_wkt (p, 9,
-        "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "ETER[\"scale_factor\",0.999964286],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "ting\",1640416.6667],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20087\"]]");
-    p = add_epsg_def (filter, first, last, 20088, "epsg", 20088,
-        "Pulkovo 1995 / Gauss-Kruger 28N (deprecated)");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"5654\"]]");
+    p = add_epsg_def (filter, first, last, 5655, "epsg", 5655,
+        "NAD83(NSRS2007) / Vermont (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 28N (deprecated)\",");
+        "PROJCS[\"NAD83(NSRS2007) / Vermont (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
         "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
         "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "latitude_of_origin\",42.5],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ",-72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETE");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "R[\"false_easting\",1640416.6667],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20088\"]]");
-    p = add_epsg_def (filter, first, last, 20089, "epsg", 20089,
-        "Pulkovo 1995 / Gauss-Kruger 29N (deprecated)");
+        "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+    add_srs_wkt (p, 13,
+        "ORTH],AUTHORITY[\"EPSG\",\"5655\"]]");
+    p = add_epsg_def (filter, first, last, 5659, "epsg", 5659,
+        "Monte Mario / TM Emilia-Romagna");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=500053 +y_0");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "=-3999820 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "2.917,0.714,-11.68 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 29N (deprecated)\",");
+        "PROJCS[\"Monte Mario / TM Emilia-Romagna\",GEOGCS[\"Mont");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "e Mario\",DATUM[\"Monte_Mario\",SPHEROID[\"International");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "4[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"EPSG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4265\"]]");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM");
     add_srs_wkt (p, 9,
-        "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        ",500053],PARAMETER[\"false_northing\",-3999820],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20089\"]]");
-    p = add_epsg_def (filter, first, last, 20090, "epsg", 20090,
-        "Pulkovo 1995 / Gauss-Kruger 30N (deprecated)");
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5659\"]]");
+    p = add_epsg_def (filter, first, last, 5663, "epsg", 5663,
+        "Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+        "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.");
     add_proj4text (p, 2,
-        ".22 +units=m +no_defs");
+        "844,-0.84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 30N (deprecated)\",");
+        "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)\",");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "Y[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 9,
-        "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "l_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "[\"false_easting\",3500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20090\"]]");
-    p = add_epsg_def (filter, first, last, 20091, "epsg", 20091,
-        "Pulkovo 1995 / Gauss-Kruger 31N (deprecated)");
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"5663\"]]");
+    p = add_epsg_def (filter, first, last, 5664, "epsg", 5664,
+        "Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 31N (deprecated)\",");
+        "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)\",");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PR");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "f_origin\",0],PARAMETER[\"central_meridian\",9],PARAMETE");
     add_srs_wkt (p, 9,
-        "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
+        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",250000");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20091\"]]");
-    p = add_epsg_def (filter, first, last, 20092, "epsg", 20092,
-        "Pulkovo 1995 / Gauss-Kruger 32N (deprecated)");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5664\"]]");
+    p = add_epsg_def (filter, first, last, 5665, "epsg", 5665,
+        "Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 ");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+        "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d");
     add_proj4text (p, 2,
-        "0.22 +units=m +no_defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 32N (deprecated)\",");
+        "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)\",");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
+        "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
+        "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4178\"]],PR");
     add_srs_wkt (p, 7,
-        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "f_origin\",0],PARAMETER[\"central_meridian\",15],PARAMET");
     add_srs_wkt (p, 9,
-        "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",35000");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20092\"]]");
-    p = add_epsg_def (filter, first, last, 20135, "epsg", 20135,
-        "Adindan / UTM zone 35N");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5665\"]]");
+    p = add_epsg_def (filter, first, last, 5666, "epsg", 5666,
+        "PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-166,-15,204,0");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Adindan / UTM zone 35N\",GEOGCS[\"Adindan\",DAT");
+        "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)\",GE");
     add_srs_wkt (p, 1,
-        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
+        "OGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bes");
     add_srs_wkt (p, 2,
-        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
+        "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
+        "7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 4,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
+        "EPSG\",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me");
     add_srs_wkt (p, 8,
-        "ral_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PA");
+        "ridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "lse_easting\",3500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"20135\"]]");
-    p = add_epsg_def (filter, first, last, 20136, "epsg", 20136,
-        "Adindan / UTM zone 36N");
+        ",\"5666\"]]");
+    p = add_epsg_def (filter, first, last, 5667, "epsg", 5667,
+        "PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-166,-15,204,0");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "+ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Adindan / UTM zone 36N\",GEOGCS[\"Adindan\",DAT");
+        "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)\",GE");
     add_srs_wkt (p, 1,
-        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
+        "OGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bes");
     add_srs_wkt (p, 2,
-        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
+        "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
+        "7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 4,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
+        "EPSG\",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me");
     add_srs_wkt (p, 8,
-        "ral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PA");
+        "ridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "alse_easting\",4500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"20136\"]]");
-    p = add_epsg_def (filter, first, last, 20137, "epsg", 20137,
-        "Adindan / UTM zone 37N");
+        ",\"5667\"]]");
+    p = add_epsg_def (filter, first, last, 5668, "epsg", 5668,
+        "RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-166,-15,204,0");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "+ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Adindan / UTM zone 37N\",GEOGCS[\"Adindan\",DAT");
+        "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)\",GE");
     add_srs_wkt (p, 1,
-        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
+        "OGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"B");
     add_srs_wkt (p, 2,
-        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
+        "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
-        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
+        "\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
+        "[\"EPSG\",\"4745\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA");
+        "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "\"false_easting\",4500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"20137\"]]");
-    p = add_epsg_def (filter, first, last, 20138, "epsg", 20138,
-        "Adindan / UTM zone 38N");
+        "G\",\"5668\"]]");
+    p = add_epsg_def (filter, first, last, 5669, "epsg", 5669,
+        "RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-166,-15,204,0");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "+ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Adindan / UTM zone 38N\",GEOGCS[\"Adindan\",DAT");
+        "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)\",GE");
     add_srs_wkt (p, 1,
-        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
+        "OGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"B");
     add_srs_wkt (p, 2,
-        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
+        "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
-        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
+        "\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
+        "[\"EPSG\",\"4745\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA");
+        "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "\"false_easting\",5500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"20138\"]]");
-    p = add_epsg_def (filter, first, last, 20248, "epsg", 20248,
-        "AGD66 / AMG zone 48");
+        "G\",\"5669\"]]");
+    p = add_epsg_def (filter, first, last, 5670, "epsg", 5670,
+        "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+        "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8");
     add_proj4text (p, 2,
-        "defs");
+        "44,-0.84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 48\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        ",AUTHORITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 9,
-        "meridian\",105],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "[\"central_meridian\",9],PARAMETER[\"scale_factor\",1],P");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "ARAMETER[\"false_easting\",3500000],PARAMETER[\"false_no");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20248\"]]");
-    p = add_epsg_def (filter, first, last, 20249, "epsg", 20249,
-        "AGD66 / AMG zone 49");
+        "RITY[\"EPSG\",\"5670\"]]");
+    p = add_epsg_def (filter, first, last, 5671, "epsg", 5671,
+        "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+        "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.");
     add_proj4text (p, 2,
-        "defs");
+        "844,-0.84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 49\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        ",AUTHORITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 9,
-        "meridian\",111],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "[\"central_meridian\",12],PARAMETER[\"scale_factor\",1],");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "PARAMETER[\"false_easting\",4500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20249\"]]");
-    p = add_epsg_def (filter, first, last, 20250, "epsg", 20250,
-        "AGD66 / AMG zone 50");
+        "RITY[\"EPSG\",\"5671\"]]");
+    p = add_epsg_def (filter, first, last, 5672, "epsg", 5672,
+        "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+        "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.");
     add_proj4text (p, 2,
-        "defs");
+        "844,-0.84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 50\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        ",AUTHORITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 9,
-        "meridian\",117],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20250\"]]");
-    p = add_epsg_def (filter, first, last, 20251, "epsg", 20251,
-        "AGD66 / AMG zone 51");
+        "RITY[\"EPSG\",\"5672\"]]");
+    p = add_epsg_def (filter, first, last, 5673, "epsg", 5673,
+        "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+        "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 51\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",9]");
     add_srs_wkt (p, 9,
-        "meridian\",123],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
-    add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20251\"]]");
-    p = add_epsg_def (filter, first, last, 20252, "epsg", 20252,
-        "AGD66 / AMG zone 52");
+        "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5673\"]]");
+    p = add_epsg_def (filter, first, last, 5674, "epsg", 5674,
+        "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+        "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d");
     add_proj4text (p, 2,
-        "defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 52\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12");
     add_srs_wkt (p, 9,
-        "meridian\",129],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "g\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5674\"]");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20252\"]]");
-    p = add_epsg_def (filter, first, last, 20253, "epsg", 20253,
-        "AGD66 / AMG zone 53");
+        "]");
+    p = add_epsg_def (filter, first, last, 5675, "epsg", 5675,
+        "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+        "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d");
     add_proj4text (p, 2,
-        "defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 53\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",15");
     add_srs_wkt (p, 9,
-        "meridian\",135],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "g\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5675\"]");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20253\"]]");
-    p = add_epsg_def (filter, first, last, 20254, "epsg", 20254,
-        "AGD66 / AMG zone 54");
+        "]");
+    p = add_epsg_def (filter, first, last, 5676, "epsg", 5676,
+        "DHDN / 3-degree Gauss-Kruger zone 2 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "datum=potsdam +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 54\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2 (E-N)\",GEO");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "meridian\",141],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "false_easting\",2500000],PARAMETER[\"false_northing\",0]");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20254\"]]");
-    p = add_epsg_def (filter, first, last, 20255, "epsg", 20255,
-        "AGD66 / AMG zone 55");
+        "\",\"5676\"]]");
+    p = add_epsg_def (filter, first, last, 5677, "epsg", 5677,
+        "DHDN / 3-degree Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "datum=potsdam +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 55\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3 (E-N)\",GEO");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "meridian\",147],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "false_easting\",3500000],PARAMETER[\"false_northing\",0]");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20255\"]]");
-    p = add_epsg_def (filter, first, last, 20256, "epsg", 20256,
-        "AGD66 / AMG zone 56");
+        "\",\"5677\"]]");
+    p = add_epsg_def (filter, first, last, 5678, "epsg", 5678,
+        "DHDN / 3-degree Gauss-Kruger zone 4 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "+datum=potsdam +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 56\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4 (E-N)\",GEO");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "\"false_easting\",4500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20256\"]]");
-    p = add_epsg_def (filter, first, last, 20257, "epsg", 20257,
-        "AGD66 / AMG zone 57");
+        "G\",\"5678\"]]");
+    p = add_epsg_def (filter, first, last, 5679, "epsg", 5679,
+        "DHDN / 3-degree Gauss-Kruger zone 5 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "+datum=potsdam +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 57\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5 (E-N)\",GEO");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "meridian\",159],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "\"false_easting\",5500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20257\"]]");
-    p = add_epsg_def (filter, first, last, 20258, "epsg", 20258,
-        "AGD66 / AMG zone 58");
+        "G\",\"5679\"]]");
+    p = add_epsg_def (filter, first, last, 5680, "epsg", 5680,
+        "DHDN / 3-degree Gauss-Kruger zone 1 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-117.8");
+        "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "datum=potsdam +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD66 / AMG zone 58\",GEOGCS[\"AGD66\",DATUM[\"");
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 1 (E-N)\",GEO");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
     add_srs_wkt (p, 4,
-        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "meridian\",165],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "false_easting\",1500000],PARAMETER[\"false_northing\",0]");
     add_srs_wkt (p, 11,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"20258\"]]");
-    p = add_epsg_def (filter, first, last, 20348, "epsg", 20348,
-        "AGD84 / AMG zone 48");
+        "\",\"5680\"]]");
+    p = add_epsg_def (filter, first, last, 5681, "epsg", 5681,
+        "DB_REF");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-134,-");
-    add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "+proj=longlat +ellps=bessel +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 48\",GEOGCS[\"AGD84\",DATUM[\"");
+        "GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTH");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "ORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
-    add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
-    add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
-    add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"");
-    add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
-    add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
-    add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
-    add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20348\"]]");
-    p = add_epsg_def (filter, first, last, 20349, "epsg", 20349,
-        "AGD84 / AMG zone 49");
+        "2\"]],AUTHORITY[\"EPSG\",\"5681\"]]");
+    p = add_epsg_def (filter, first, last, 5682, "epsg", 5682,
+        "DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 49\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)\",G");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\"");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"");
+        "ER[\"central_meridian\",6],PARAMETER[\"scale_factor\",1]");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        ",PARAMETER[\"false_easting\",2500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20349\"]]");
-    p = add_epsg_def (filter, first, last, 20350, "epsg", 20350,
-        "AGD84 / AMG zone 50");
+        "HORITY[\"EPSG\",\"5682\"]]");
+    p = add_epsg_def (filter, first, last, 5683, "epsg", 5683,
+        "DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 50\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)\",G");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\"");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"");
+        "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",1]");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        ",PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20350\"]]");
-    p = add_epsg_def (filter, first, last, 20351, "epsg", 20351,
-        "AGD84 / AMG zone 51");
+        "HORITY[\"EPSG\",\"5683\"]]");
+    p = add_epsg_def (filter, first, last, 5684, "epsg", 5684,
+        "DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "+ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 51\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)\",G");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\"");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"");
+        "ER[\"central_meridian\",12],PARAMETER[\"scale_factor\",1");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "],PARAMETER[\"false_easting\",4500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20351\"]]");
-    p = add_epsg_def (filter, first, last, 20352, "epsg", 20352,
-        "AGD84 / AMG zone 52");
+        "THORITY[\"EPSG\",\"5684\"]]");
+    p = add_epsg_def (filter, first, last, 5685, "epsg", 5685,
+        "DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "+ellps=bessel +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 52\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)\",G");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\"");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "]],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"");
+        "ER[\"central_meridian\",15],PARAMETER[\"scale_factor\",1");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "],PARAMETER[\"false_easting\",5500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20352\"]]");
-    p = add_epsg_def (filter, first, last, 20353, "epsg", 20353,
-        "AGD84 / AMG zone 53");
+        "THORITY[\"EPSG\",\"5685\"]]");
+    p = add_epsg_def (filter, first, last, 5700, "epsg", 5700,
+        "NZGD2000 / UTM zone 1S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=utm +zone=1 +south +ellps=GRS80 +towgs84=0,0,0,0,0");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 53\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"NZGD2000 / UTM zone 1S\",GEOGCS[\"NZGD2000\",DA");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "\"]],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"");
+        "ETER[\"central_meridian\",-177],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20353\"]]");
-    p = add_epsg_def (filter, first, last, 20354, "epsg", 20354,
-        "AGD84 / AMG zone 54");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"5700\"]]");
+    p = add_epsg_def (filter, first, last, 5825, "epsg", 5825,
+        "AGD66 / ACT Standard Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=tmerc +lat_0=-35.31773627777778 +lon_0=149.0092948");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "305555 +k=1.000086 +x_0=200000 +y_0=600000 +ellps=aust_S");
+    add_proj4text (p, 2,
+        "A +towgs84=-117.808,-51.536,137.784,0.303,0.446,0.234,-0");
+    add_proj4text (p, 3,
+        ".29 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 54\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"AGD66 / ACT Standard Grid\",GEOGCS[\"AGD66\",DA");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "TUM[\"Australian_Geodetic_Datum_1966\",SPHEROID[\"Austra");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "lian National Spheroid\",6378160,298.25,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "\",\"7003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.4");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "46,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"G");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "ORITY[\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\"");
+        "or\"],PARAMETER[\"latitude_of_origin\",-35.3177362777777");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "8],PARAMETER[\"central_meridian\",149.0092948305555],PAR");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "AMETER[\"scale_factor\",1.000086],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "ing\",200000],PARAMETER[\"false_northing\",600000],UNIT[");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20354\"]]");
-    p = add_epsg_def (filter, first, last, 20355, "epsg", 20355,
-        "AGD84 / AMG zone 55");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 13,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5");
+    add_srs_wkt (p, 14,
+        "825\"]]");
+    p = add_epsg_def (filter, first, last, 5836, "epsg", 5836,
+        "Yemen NGN96 / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=utm +zone=37 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 55\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"Yemen NGN96 / UTM zone 37N\",GEOGCS[\"Yemen NGN");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\"");
+        ",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20355\"]]");
-    p = add_epsg_def (filter, first, last, 20356, "epsg", 20356,
-        "AGD84 / AMG zone 56");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"5836\"]]");
+    p = add_epsg_def (filter, first, last, 5837, "epsg", 5837,
+        "Yemen NGN96 / UTM zone 40N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=utm +zone=40 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 56\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"Yemen NGN96 / UTM zone 40N\",GEOGCS[\"Yemen NGN");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"");
+        ",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20356\"]]");
-    p = add_epsg_def (filter, first, last, 20357, "epsg", 20357,
-        "AGD84 / AMG zone 57");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"5837\"]]");
+    p = add_epsg_def (filter, first, last, 5839, "epsg", 5839,
+        "Peru96 / UTM zone 17S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 57\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"Peru96 / UTM zone 17S\",GEOGCS[\"Peru96\",DATUM");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"53");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",159],PARAMETER[\"");
+        "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "easting\",500000],PARAMETER[\"false_northing\",10000000]");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20357\"]]");
-    p = add_epsg_def (filter, first, last, 20358, "epsg", 20358,
-        "AGD84 / AMG zone 58");
+        "\",\"5839\"]]");
+    p = add_epsg_def (filter, first, last, 5842, "epsg", 5842,
+        "WGS 84 / TM 12 SE");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-134,-");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_");
     add_proj4text (p, 1,
-        "48,149,0,0,0,0 +units=m +no_defs");
+        "0=10000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"AGD84 / AMG zone 58\",GEOGCS[\"AGD84\",DATUM[\"");
+        "PROJCS[\"WGS 84 / TM 12 SE\",GEOGCS[\"WGS 84\",DATUM[\"W");
     add_srs_wkt (p, 1,
-        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
+        "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH");
     add_srs_wkt (p, 2,
-        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
+        "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],");
     add_srs_wkt (p, 3,
-        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 4,
-        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "METER[\"central_meridian\",12],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",165],PARAMETER[\"");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
-    add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20358\"]]");
-    p = add_epsg_def (filter, first, last, 20436, "epsg", 20436,
-        "Ain el Abd / UTM zone 36N");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"5842\"]]");
+    p = add_epsg_def (filter, first, last, 5844, "epsg", 5844,
+        "RGRDC 2005 / Congo TM zone 30");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=intl +towgs84=-143,-236,7,0,0,");
+        "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Ain el Abd / UTM zone 36N\",GEOGCS[\"Ain el Abd");
+        "PROJCS[\"RGRDC 2005 / Congo TM zone 30\",GEOGCS[\"RGRDC ");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
+        "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
+        ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",33],PARAMETER[\"scale_factor\",0.99");
+        ",0],PARAMETER[\"central_meridian\",30],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"20436\"]]");
-    p = add_epsg_def (filter, first, last, 20437, "epsg", 20437,
-        "Ain el Abd / UTM zone 37N");
+        "NORTH],AUTHORITY[\"EPSG\",\"5844\"]]");
+    p = add_epsg_def (filter, first, last, 5858, "epsg", 5858,
+        "SAD69(96) / UTM zone 22S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=intl +towgs84=-143,-236,7,0,0,");
+        "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Ain el Abd / UTM zone 37N\",GEOGCS[\"Ain el Abd");
+        "PROJCS[\"SAD69(96) / UTM zone 22S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
+        ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",39],PARAMETER[\"scale_factor\",0.99");
+        "in\",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"20437\"]]");
-    p = add_epsg_def (filter, first, last, 20438, "epsg", 20438,
-        "Ain el Abd / UTM zone 38N");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5858\"]]");
+    p = add_epsg_def (filter, first, last, 5875, "epsg", 5875,
+        "SAD69(96) / UTM zone 18S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=intl +towgs84=-143,-236,7,0,0,");
+        "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Ain el Abd / UTM zone 38N\",GEOGCS[\"Ain el Abd");
+        "PROJCS[\"SAD69(96) / UTM zone 18S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
+        ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99");
+        "in\",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"20438\"]]");
-    p = add_epsg_def (filter, first, last, 20439, "epsg", 20439,
-        "Ain el Abd / UTM zone 39N");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5875\"]]");
+    p = add_epsg_def (filter, first, last, 5876, "epsg", 5876,
+        "SAD69(96) / UTM zone 19S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,");
+        "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Ain el Abd / UTM zone 39N\",GEOGCS[\"Ain el Abd");
+        "PROJCS[\"SAD69(96) / UTM zone 19S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
+        ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99");
+        "in\",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"20439\"]]");
-    p = add_epsg_def (filter, first, last, 20440, "epsg", 20440,
-        "Ain el Abd / UTM zone 40N");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5876\"]]");
+    p = add_epsg_def (filter, first, last, 5877, "epsg", 5877,
+        "SAD69(96) / UTM zone 20S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +ellps=intl +towgs84=-143,-236,7,0,0,");
+        "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-67.35");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        ",3.88,-38.22,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Ain el Abd / UTM zone 40N\",GEOGCS[\"Ain el Abd");
+        "PROJCS[\"SAD69(96) / UTM zone 20S\",GEOGCS[\"SAD69(96)\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
+        ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"");
     add_srs_wkt (p, 3,
-        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
+        "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",57],PARAMETER[\"scale_factor\",0.99");
+        "in\",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"20440\"]]");
-    p = add_epsg_def (filter, first, last, 20499, "epsg", 20499,
-        "Ain el Abd / Bahrain Grid");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5877\"]]");
+    p = add_epsg_def (filter, first, last, 5879, "epsg", 5879,
+        "Cadastre 1997 / UTM zone 38S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,");
+        "+proj=utm +zone=38 +south +ellps=intl +towgs84=-381.788,");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        "-57.501,-256.673,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Ain el Abd / Bahrain Grid\",GEOGCS[\"Ain el Abd");
+        "PROJCS[\"Cadastre 1997 / UTM zone 38S\",GEOGCS[\"Cadastr");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
+        "e 1997\",DATUM[\"Cadastre_1997\",SPHEROID[\"Internationa");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
+        "84[-381.788,-57.501,-256.673,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"1037\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4475\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99");
+        "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"20499\"]]");
-    p = add_epsg_def (filter, first, last, 20538, "epsg", 20538,
-        "Afgooye / UTM zone 38N");
+        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5879\"]]");
+    p = add_epsg_def (filter, first, last, 5880, "epsg", 5880,
+        "SIRGAS 2000 / Brazil Polyconic");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0");
+        "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Afgooye / UTM zone 38N\",GEOGCS[\"Afgooye\",DAT");
+        "PROJCS[\"SIRGAS 2000 / Brazil Polyconic\",GEOGCS[\"SIRGA");
     add_srs_wkt (p, 1,
-        "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298.");
+        "S 2000\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_");
     add_srs_wkt (p, 2,
-        "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,");
+        "las_AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.25");
     add_srs_wkt (p, 3,
-        "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\",");
+        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "0,0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 6,
-        "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 7,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+        "G\",\"4674\"]],PROJECTION[\"Polyconic\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-54]");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        ",PARAMETER[\"false_easting\",5000000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+        ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        ",\"20538\"]]");
-    p = add_epsg_def (filter, first, last, 20539, "epsg", 20539,
-        "Afgooye / UTM zone 39N");
+        "[\"EPSG\",\"5880\"]]");
+    p = add_epsg_def (filter, first, last, 5886, "epsg", 5886,
+        "TGD2005");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=longlat +ellps=GRS80 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Afgooye / UTM zone 39N\",GEOGCS[\"Afgooye\",DAT");
+        "GEOGCS[\"TGD2005\",DATUM[\"Tonga_Geodetic_Datum_2005\",S");
     add_srs_wkt (p, 1,
-        "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298.");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 2,
-        "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,");
+        "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1095\"]],PRIMEM[\"");
     add_srs_wkt (p, 3,
-        "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\",");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 6,
-        "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
-    add_srs_wkt (p, 7,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
-    add_srs_wkt (p, 8,
-        "ian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
-    add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
-    add_srs_wkt (p, 11,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 12,
-        ",\"20539\"]]");
-    p = add_epsg_def (filter, first, last, 20790, "epsg", 20790,
-        "Lisbon (Lisbon) / Portuguese National Grid");
+        "HORITY[\"EPSG\",\"5886\"]]");
+    p = add_epsg_def (filter, first, last, 5887, "epsg", 5887,
+        "TGD2005 / Tonga Map Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=1500000 ");
     add_proj4text (p, 1,
-        "200000 +y_0=300000 +ellps=intl +towgs84=-304.046,-60.576");
-    add_proj4text (p, 2,
-        ",103.64,0,0,0,0 +pm=lisbon +units=m +no_defs");
+        "+y_0=5000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Lisbon (Lisbon) / Portuguese National Grid\",GE");
+        "PROJCS[\"TGD2005 / Tonga Map Grid\",GEOGCS[\"TGD2005\",D");
     add_srs_wkt (p, 1,
-        "OGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SP");
+        "ATUM[\"Tonga_Geodetic_Datum_2005\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT");
     add_srs_wkt (p, 3,
-        "SG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0]");
+        "HORITY[\"EPSG\",\"1095\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "06111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"58");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "86\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4803\"]],PROJECTION[\"Transverse_Mercator");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"latitude_of_origin\",39.66666666666666],");
+        "77],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"central_meridian\",1],PARAMETER[\"scale_fact");
+        "_easting\",1500000],PARAMETER[\"false_northing\",5000000");
     add_srs_wkt (p, 10,
-        "or\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        "false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"20790\"]]");
-    p = add_epsg_def (filter, first, last, 20791, "epsg", 20791,
-        "Lisbon (Lisbon) / Portuguese Grid");
+        "G\",\"5887\"]]");
+    p = add_epsg_def (filter, first, last, 5890, "epsg", 5890,
+        "JAXA Snow Depth Polar Stereographic North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=");
+        "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=90 +k=1 +x_0=0 +");
     add_proj4text (p, 1,
-        "0 +y_0=0 +ellps=intl +towgs84=-304.046,-60.576,103.64,0,");
-    add_proj4text (p, 2,
-        "0,0,0 +pm=lisbon +units=m +no_defs");
+        "y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Lisbon (Lisbon) / Portuguese Grid\",GEOGCS[\"Li");
+        "PROJCS[\"JAXA Snow Depth Polar Stereographic North\",GEO");
     add_srs_wkt (p, 1,
-        "sbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SPHEROID[\"");
+        "GCS[\"Unspecified datum based upon the Hughes 1980 ellip");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "soid\",DATUM[\"Not_specified_based_on_Hughes_1980_ellips");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORIT");
+        "oid\",SPHEROID[\"Hughes 1980\",6378273,298.279411123061,");
     add_srs_wkt (p, 4,
-        "Y[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319061111111");
+        "AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"");
     add_srs_wkt (p, 5,
-        "12,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\",0.01745");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 6,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "SG\",\"4803\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Pola");
     add_srs_wkt (p, 8,
-        "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE");
+        "r_Stereographic\"],PARAMETER[\"latitude_of_origin\",70],");
     add_srs_wkt (p, 9,
-        "R[\"central_meridian\",1],PARAMETER[\"scale_factor\",1],");
+        "PARAMETER[\"central_meridian\",90],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin");
+        "tor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"20");
+        "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
     add_srs_wkt (p, 13,
-        "791\"]]");
-    p = add_epsg_def (filter, first, last, 20822, "epsg", 20822,
-        "Aratu / UTM zone 22S");
+        "SG\",\"5890\"]]");
+    p = add_epsg_def (filter, first, last, 5921, "epsg", 5921,
+        "WGS 84 / EPSG Arctic Regional zone A1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=intl +towgs84=-151.99,2");
+        "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +");
     add_proj4text (p, 1,
-        "87.04,-147.45,0,0,0,0 +units=m +no_defs");
+        "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Aratu / UTM zone 22S\",GEOGCS[\"Aratu\",DATUM[\"");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A1\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "standard_parallel_1\",85],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "METER[\"central_meridian\",-111],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"20822\"]]");
-    p = add_epsg_def (filter, first, last, 20823, "epsg", 20823,
-        "Aratu / UTM zone 23S");
+        "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5921\"]]");
+    p = add_epsg_def (filter, first, last, 5922, "epsg", 5922,
+        "WGS 84 / EPSG Arctic Regional zone A2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=intl +towgs84=-151.99,2");
+        "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +");
     add_proj4text (p, 1,
-        "87.04,-147.45,0,0,0,0 +units=m +no_defs");
+        "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Aratu / UTM zone 23S\",GEOGCS[\"Aratu\",DATUM[\"");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A2\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "standard_parallel_1\",85],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "METER[\"central_meridian\",-39],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"20823\"]]");
-    p = add_epsg_def (filter, first, last, 20824, "epsg", 20824,
-        "Aratu / UTM zone 24S");
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5922\"]]");
+    p = add_epsg_def (filter, first, last, 5923, "epsg", 5923,
+        "WGS 84 / EPSG Arctic Regional zone A3");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=intl +towgs84=-151.99,2");
+        "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +");
     add_proj4text (p, 1,
-        "87.04,-147.45,0,0,0,0 +units=m +no_defs");
+        "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Aratu / UTM zone 24S\",GEOGCS[\"Aratu\",DATUM[\"");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A3\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "standard_parallel_1\",85],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "meridian\",-39],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "METER[\"central_meridian\",33],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"20824\"]]");
-    p = add_epsg_def (filter, first, last, 20934, "epsg", 20934,
-        "Arc 1950 / UTM zone 34S");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5923\"]]");
+    p = add_epsg_def (filter, first, last, 5924, "epsg", 5924,
+        "WGS 84 / EPSG Arctic Regional zone A4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663");
+        "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +");
     add_proj4text (p, 1,
-        "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs");
+        "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1950 / UTM zone 34S\",GEOGCS[\"Arc 1950\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A4\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "standard_parallel_1\",85],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",0.");
+        "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA");
     add_srs_wkt (p, 9,
-        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "METER[\"central_meridian\",105],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"20934\"]]");
-    p = add_epsg_def (filter, first, last, 20935, "epsg", 20935,
-        "Arc 1950 / UTM zone 35S");
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5924\"]]");
+    p = add_epsg_def (filter, first, last, 5925, "epsg", 5925,
+        "WGS 84 / EPSG Arctic Regional zone A5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663");
+        "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +");
     add_proj4text (p, 1,
-        "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs");
+        "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1950 / UTM zone 35S\",GEOGCS[\"Arc 1950\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A5\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "standard_parallel_1\",85],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",27],PARAMETER[\"scale_factor\",0.");
+        "2\",77],PARAMETER[\"latitude_of_origin\",81.317226],PARA");
     add_srs_wkt (p, 9,
-        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "METER[\"central_meridian\",177],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"20935\"]]");
-    p = add_epsg_def (filter, first, last, 20936, "epsg", 20936,
-        "Arc 1950 / UTM zone 36S");
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5925\"]]");
+    p = add_epsg_def (filter, first, last, 5926, "epsg", 5926,
+        "WGS 84 / EPSG Arctic Regional zone B1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663");
+        "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +");
     add_proj4text (p, 1,
-        "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs");
+        "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1950 / UTM zone 36S\",GEOGCS[\"Arc 1950\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B1\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "standard_parallel_1\",77],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",33],PARAMETER[\"scale_factor\",0.");
+        "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111");
     add_srs_wkt (p, 9,
-        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "11],PARAMETER[\"central_meridian\",-111],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "se_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"20936\"]]");
-    p = add_epsg_def (filter, first, last, 21035, "epsg", 21035,
-        "Arc 1960 / UTM zone 35S");
+        "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5926");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 5927, "epsg", 5927,
+        "WGS 84 / EPSG Arctic Regional zone B2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +south +ellps=clrk80 +towgs84=-160,-6");
+        "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +");
     add_proj4text (p, 1,
-        ",-302,0,0,0,0 +units=m +no_defs");
+        "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1960 / UTM zone 35S\",GEOGCS[\"Arc 1960\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B2\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "standard_parallel_1\",77],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]");
+        "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "11],PARAMETER[\"central_meridian\",-39],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"21035\"]]");
-    p = add_epsg_def (filter, first, last, 21036, "epsg", 21036,
-        "Arc 1960 / UTM zone 36S");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5927\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5928, "epsg", 5928,
+        "WGS 84 / EPSG Arctic Regional zone B3");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +south +ellps=clrk80 +towgs84=-160,-6");
+        "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +");
     add_proj4text (p, 1,
-        ",-302,0,0,0,0 +units=m +no_defs");
+        "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1960 / UTM zone 36S\",GEOGCS[\"Arc 1960\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B3\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "standard_parallel_1\",77],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]");
+        "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "11],PARAMETER[\"central_meridian\",33],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"21036\"]]");
-    p = add_epsg_def (filter, first, last, 21037, "epsg", 21037,
-        "Arc 1960 / UTM zone 37S");
+        "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5928\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5929, "epsg", 5929,
+        "WGS 84 / EPSG Arctic Regional zone B4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +south +ellps=clrk80 +towgs84=-160,-6");
+        "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +");
     add_proj4text (p, 1,
-        ",-302,0,0,0,0 +units=m +no_defs");
+        "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1960 / UTM zone 37S\",GEOGCS[\"Arc 1960\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B4\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "standard_parallel_1\",77],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]");
+        "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "11],PARAMETER[\"central_meridian\",105],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"21037\"]]");
-    p = add_epsg_def (filter, first, last, 21095, "epsg", 21095,
-        "Arc 1960 / UTM zone 35N");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5929\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5930, "epsg", 5930,
+        "WGS 84 / EPSG Arctic Regional zone B5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-160,-6,-302,0");
+        "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1960 / UTM zone 35N\",GEOGCS[\"Arc 1960\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B5\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "standard_parallel_1\",77],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]");
+        "2\",69],PARAMETER[\"latitude_of_origin\",73.155740861111");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "11],PARAMETER[\"central_meridian\",177],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21095\"]]");
-    p = add_epsg_def (filter, first, last, 21096, "epsg", 21096,
-        "Arc 1960 / UTM zone 36N");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5930\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5931, "epsg", 5931,
+        "WGS 84 / EPSG Arctic Regional zone C1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-160,-6,-302,0");
+        "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1960 / UTM zone 36N\",GEOGCS[\"Arc 1960\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C1\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "standard_parallel_1\",69],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]");
+        "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "88],PARAMETER[\"central_meridian\",-111],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "se_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21096\"]]");
-    p = add_epsg_def (filter, first, last, 21097, "epsg", 21097,
-        "Arc 1960 / UTM zone 37N");
+        "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5931");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 5932, "epsg", 5932,
+        "WGS 84 / EPSG Arctic Regional zone C2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-160,-6,-302,0");
+        "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Arc 1960 / UTM zone 37N\",GEOGCS[\"Arc 1960\",D");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C2\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "standard_parallel_1\",69],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]");
+        "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "88],PARAMETER[\"central_meridian\",-39],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21097\"]]");
-    p = add_epsg_def (filter, first, last, 21100, "epsg", 21100,
-        "Batavia (Jakarta) / NEIEZ (deprecated)");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5932\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5933, "epsg", 5933,
+        "WGS 84 / EPSG Arctic Regional zone C3");
     add_proj4text (p, 0,
-        "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 ");
+        "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +");
     add_proj4text (p, 1,
-        "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +pm=jakarta ");
-    add_proj4text (p, 2,
-        "+units=m +no_defs");
+        "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Batavia (Jakarta) / NEIEZ (deprecated)\",GEOGCS");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C3\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",SPHEROI");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "SG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY[");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194444444");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\",\"4813\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"c");
+        "standard_parallel_1\",69],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "entral_meridian\",110],PARAMETER[\"scale_factor\",0.997]");
+        "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",3900000],PARAMETER[\"false_");
+        "88],PARAMETER[\"central_meridian\",33],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+        "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA");
     add_srs_wkt (p, 12,
-        "EPSG\",\"21100\"]]");
-    p = add_epsg_def (filter, first, last, 21148, "epsg", 21148,
-        "Batavia / UTM zone 48S");
+        "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5933\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5934, "epsg", 5934,
+        "WGS 84 / EPSG Arctic Regional zone C4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=bessel +towgs84=-377,68");
+        "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +");
     add_proj4text (p, 1,
-        "1,-50,0,0,0,0 +units=m +no_defs");
+        "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Batavia / UTM zone 48S\",GEOGCS[\"Batavia\",DAT");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C4\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "standard_parallel_1\",69],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "88],PARAMETER[\"central_meridian\",105],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"21148\"]]");
-    p = add_epsg_def (filter, first, last, 21149, "epsg", 21149,
-        "Batavia / UTM zone 49S");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5934\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5935, "epsg", 5935,
+        "WGS 84 / EPSG Arctic Regional zone C5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=bessel +towgs84=-377,68");
+        "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +");
     add_proj4text (p, 1,
-        "1,-50,0,0,0,0 +units=m +no_defs");
+        "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Batavia / UTM zone 49S\",GEOGCS[\"Batavia\",DAT");
+        "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C5\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
+        "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[");
     add_srs_wkt (p, 3,
-        "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green");
+        "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"");
+        "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "standard_parallel_1\",69],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "2\",61],PARAMETER[\"latitude_of_origin\",65.101270888888");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "88],PARAMETER[\"central_meridian\",177],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"21149\"]]");
-    p = add_epsg_def (filter, first, last, 21150, "epsg", 21150,
-        "Batavia / UTM zone 50S");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5935\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 5936, "epsg", 5936,
+        "WGS 84 / EPSG Alaska Polar Stereographic");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-377,68");
+        "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-150 +k=0.994 +x");
     add_proj4text (p, 1,
-        "1,-50,0,0,0,0 +units=m +no_defs");
+        "_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Batavia / UTM zone 50S\",GEOGCS[\"Batavia\",DAT");
+        "PROJCS[\"WGS 84 / EPSG Alaska Polar Stereographic\",GEOG");
     add_srs_wkt (p, 1,
-        "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
+        "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637");
     add_srs_wkt (p, 2,
-        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-");
+        "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI");
     add_srs_wkt (p, 3,
-        "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green");
+        "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"");
+        "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "ude_of_origin\",90],PARAMETER[\"central_meridian\",-150]");
     add_srs_wkt (p, 8,
-        "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR");
+        ",PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_eas");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "ting\",2000000],PARAMETER[\"false_northing\",2000000],UN");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
-    add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"21150\"]]");
-    p = add_epsg_def (filter, first, last, 21291, "epsg", 21291,
-        "Barbados 1938 / British West Indies Grid");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5936\"]]");
+    p = add_epsg_def (filter, first, last, 5937, "epsg", 5937,
+        "WGS 84 / EPSG Canada Polar Stereographic");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x");
+        "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-100 +k=0.994 +x");
     add_proj4text (p, 1,
-        "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419");
-    add_proj4text (p, 2,
-        ".19,0,0,0,0 +units=m +no_defs");
+        "_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Barbados 1938 / British West Indies Grid\",GEOG");
+        "PROJCS[\"WGS 84 / EPSG Canada Polar Stereographic\",GEOG");
     add_srs_wkt (p, 1,
-        "CS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"");
+        "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637");
     add_srs_wkt (p, 2,
-        "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG");
+        "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI");
     add_srs_wkt (p, 3,
-        "\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHO");
+        "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212");
+        "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ude_of_origin\",90],PARAMETER[\"central_meridian\",-100]");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-62]");
+        ",PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_eas");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false_ea");
+        "ting\",2000000],PARAMETER[\"false_northing\",2000000],UN");
     add_srs_wkt (p, 10,
-        "sting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"m");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2129");
-    add_srs_wkt (p, 13,
-        "1\"]]");
-    p = add_epsg_def (filter, first, last, 21292, "epsg", 21292,
-        "Barbados 1938 / Barbados National Grid");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5937\"]]");
+    p = add_epsg_def (filter, first, last, 5938, "epsg", 5938,
+        "WGS 84 / EPSG Greenland Polar Stereographic");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222");
+        "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-33 +k=0.994 +x_");
     add_proj4text (p, 1,
-        "222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 ");
-    add_proj4text (p, 2,
-        "+towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs");
+        "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Barbados 1938 / Barbados National Grid\",GEOGCS");
+        "PROJCS[\"WGS 84 / EPSG Greenland Polar Stereographic\",G");
     add_srs_wkt (p, 1,
-        "[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"Cl");
+        "EOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",");
     add_srs_wkt (p, 2,
-        "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\"");
+        "6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTH");
     add_srs_wkt (p, 3,
-        ",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORI");
+        "ORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 4,
-        "TY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 5,
-        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"432");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212\"");
+        "6\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"la");
     add_srs_wkt (p, 7,
-        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
+        "titude_of_origin\",90],PARAMETER[\"central_meridian\",-3");
     add_srs_wkt (p, 8,
-        "ude_of_origin\",13.17638888888889],PARAMETER[\"central_m");
+        "3],PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_e");
     add_srs_wkt (p, 9,
-        "eridian\",-59.55972222222222],PARAMETER[\"scale_factor\"");
+        "asting\",2000000],PARAMETER[\"false_northing\",2000000],");
     add_srs_wkt (p, 10,
-        ",0.9999986],PARAMETER[\"false_easting\",30000],PARAMETER");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 11,
-        "[\"false_northing\",75000],UNIT[\"metre\",1,AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
-    add_srs_wkt (p, 13,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"21292\"]]");
-    p = add_epsg_def (filter, first, last, 21413, "epsg", 21413,
-        "Beijing 1954 / Gauss-Kruger zone 13");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5938\"]]");
+    p = add_epsg_def (filter, first, last, 5939, "epsg", 5939,
+        "WGS 84 / EPSG Norway Polar Stereographic");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0");
+        "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=18 +k=0.994 +x_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 13\",GEOGCS[\"");
+        "PROJCS[\"WGS 84 / EPSG Norway Polar Stereographic\",GEOG");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "ude_of_origin\",90],PARAMETER[\"central_meridian\",18],P");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_");
+        "ARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_easti");
     add_srs_wkt (p, 9,
-        "factor\",1],PARAMETER[\"false_easting\",13500000],PARAME");
+        "ng\",2000000],PARAMETER[\"false_northing\",2000000],UNIT");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"21413\"]]");
-    p = add_epsg_def (filter, first, last, 21414, "epsg", 21414,
-        "Beijing 1954 / Gauss-Kruger zone 14");
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5939\"]]");
+    p = add_epsg_def (filter, first, last, 5940, "epsg", 5940,
+        "WGS 84 / EPSG Russia Polar Stereographic");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0");
+        "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=105 +k=0.994 +x_");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 14\",GEOGCS[\"");
+        "PROJCS[\"WGS 84 / EPSG Russia Polar Stereographic\",GEOG");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latit");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "ude_of_origin\",90],PARAMETER[\"central_meridian\",105],");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_");
+        "PARAMETER[\"scale_factor\",0.994],PARAMETER[\"false_east");
     add_srs_wkt (p, 9,
-        "factor\",1],PARAMETER[\"false_easting\",14500000],PARAME");
+        "ing\",2000000],PARAMETER[\"false_northing\",2000000],UNI");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"21414\"]]");
-    p = add_epsg_def (filter, first, last, 21415, "epsg", 21415,
-        "Beijing 1954 / Gauss-Kruger zone 15");
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5940\"]]");
+    p = add_epsg_def (filter, first, last, 6050, "epsg", 6050,
+        "GR96 / EPSG Arctic zone 1-25");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0");
+        "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
+        "3711833333333 +lon_0=-30 +x_0=25500000 +y_0=1500000 +ell");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 15\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 1-25\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",87],PARAMETER[");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_");
+        "\"standard_parallel_2\",83.66666666666667],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "factor\",1],PARAMETER[\"false_easting\",15500000],PARAME");
+        "atitude_of_origin\",85.43711833333333],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "al_meridian\",-30],PARAMETER[\"false_easting\",25500000]");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        ",PARAMETER[\"false_northing\",1500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"21415\"]]");
-    p = add_epsg_def (filter, first, last, 21416, "epsg", 21416,
-        "Beijing 1954 / Gauss-Kruger zone 16");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6050\"]]");
+    p = add_epsg_def (filter, first, last, 6051, "epsg", 6051,
+        "GR96 / EPSG Arctic zone 2-18");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
+        "333 +lat_0=82.05842488888888 +lon_0=-52 +x_0=18500000 +y");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 16\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 2-18\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",83.66666666666");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_");
+        "667],PARAMETER[\"standard_parallel_2\",80.33333333333333");
     add_srs_wkt (p, 9,
-        "factor\",1],PARAMETER[\"false_easting\",16500000],PARAME");
+        "],PARAMETER[\"latitude_of_origin\",82.05842488888888],PA");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "RAMETER[\"central_meridian\",-52],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "ing\",18500000],PARAMETER[\"false_northing\",2500000],UN");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"21416\"]]");
-    p = add_epsg_def (filter, first, last, 21417, "epsg", 21417,
-        "Beijing 1954 / Gauss-Kruger zone 17");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6051\"]]");
+    p = add_epsg_def (filter, first, last, 6052, "epsg", 6052,
+        "GR96 / EPSG Arctic zone 2-20");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
+        "333 +lat_0=82.05842488888888 +lon_0=-12 +x_0=20500000 +y");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 17\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 2-20\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",83.66666666666");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_");
+        "667],PARAMETER[\"standard_parallel_2\",80.33333333333333");
     add_srs_wkt (p, 9,
-        "factor\",1],PARAMETER[\"false_easting\",17500000],PARAME");
+        "],PARAMETER[\"latitude_of_origin\",82.05842488888888],PA");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "RAMETER[\"central_meridian\",-12],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "ing\",20500000],PARAMETER[\"false_northing\",2500000],UN");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"21417\"]]");
-    p = add_epsg_def (filter, first, last, 21418, "epsg", 21418,
-        "Beijing 1954 / Gauss-Kruger zone 18");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6052\"]]");
+    p = add_epsg_def (filter, first, last, 6053, "epsg", 6053,
+        "GR96 / EPSG Arctic zone 3-29");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+        "0733752777778 +lon_0=-69 +x_0=29500000 +y_0=3500000 +ell");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 18\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 3-29\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",80.33333333333");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale");
+        "333],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",18500000],PARAM");
+        "atitude_of_origin\",78.70733752777778],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "al_meridian\",-69],PARAMETER[\"false_easting\",29500000]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",PARAMETER[\"false_northing\",3500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"21418\"]]");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6053\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_28.c b/src/srsinit/epsg_inlined_28.c
index 4e0d99d..fb6b23a 100644
--- a/src/srsinit/epsg_inlined_28.c
+++ b/src/srsinit/epsg_inlined_28.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3408 +52,3542 @@ initialize_epsg_28 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 21419, "epsg", 21419,
-        "Beijing 1954 / Gauss-Kruger zone 19");
+    p = add_epsg_def (filter, first, last, 6054, "epsg", 6054,
+        "GR96 / EPSG Arctic zone 3-31");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+        "0733752777778 +lon_0=-39 +x_0=31500000 +y_0=3500000 +ell");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 19\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 3-31\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",80.33333333333");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale");
+        "333],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",19500000],PARAM");
+        "atitude_of_origin\",78.70733752777778],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "al_meridian\",-39],PARAMETER[\"false_easting\",31500000]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",PARAMETER[\"false_northing\",3500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"21419\"]]");
-    p = add_epsg_def (filter, first, last, 21420, "epsg", 21420,
-        "Beijing 1954 / Gauss-Kruger zone 20");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6054\"]]");
+    p = add_epsg_def (filter, first, last, 6055, "epsg", 6055,
+        "GR96 / EPSG Arctic zone 3-33");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+        "0733752777778 +lon_0=-10 +x_0=33500000 +y_0=3500000 +ell");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 20\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 3-33\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",80.33333333333");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale");
+        "333],PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",20500000],PARAM");
+        "atitude_of_origin\",78.70733752777778],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "al_meridian\",-10],PARAMETER[\"false_easting\",33500000]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",PARAMETER[\"false_northing\",3500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"21420\"]]");
-    p = add_epsg_def (filter, first, last, 21421, "epsg", 21421,
-        "Beijing 1954 / Gauss-Kruger zone 21");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6055\"]]");
+    p = add_epsg_def (filter, first, last, 6056, "epsg", 6056,
+        "GR96 / EPSG Arctic zone 4-20");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+        "6440330555556 +lon_0=-64 +x_0=20500000 +y_0=4500000 +ell");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 21\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 4-20\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",77],PARAMETER[");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale");
+        "\"standard_parallel_2\",73.66666666666667],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",21500000],PARAM");
+        "atitude_of_origin\",75.36440330555556],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "al_meridian\",-64],PARAMETER[\"false_easting\",20500000]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",PARAMETER[\"false_northing\",4500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"21421\"]]");
-    p = add_epsg_def (filter, first, last, 21422, "epsg", 21422,
-        "Beijing 1954 / Gauss-Kruger zone 22");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6056\"]]");
+    p = add_epsg_def (filter, first, last, 6057, "epsg", 6057,
+        "GR96 / EPSG Arctic zone 4-22");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+        "6440330555556 +lon_0=-39 +x_0=22500000 +y_0=4500000 +ell");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 22\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 4-22\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",77],PARAMETER[");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale");
+        "\"standard_parallel_2\",73.66666666666667],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",22500000],PARAM");
+        "atitude_of_origin\",75.36440330555556],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "al_meridian\",-39],PARAMETER[\"false_easting\",22500000]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",PARAMETER[\"false_northing\",4500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"21422\"]]");
-    p = add_epsg_def (filter, first, last, 21423, "epsg", 21423,
-        "Beijing 1954 / Gauss-Kruger zone 23");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6057\"]]");
+    p = add_epsg_def (filter, first, last, 6058, "epsg", 6058,
+        "GR96 / EPSG Arctic zone 4-24");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+        "6440330555556 +lon_0=-14 +x_0=24500000 +y_0=4500000 +ell");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 23\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 4-24\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",77],PARAMETER[");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale");
+        "\"standard_parallel_2\",73.66666666666667],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",23500000],PARAM");
+        "atitude_of_origin\",75.36440330555556],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "al_meridian\",-14],PARAMETER[\"false_easting\",24500000]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",PARAMETER[\"false_northing\",4500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"21423\"]]");
-    p = add_epsg_def (filter, first, last, 21453, "epsg", 21453,
-        "Beijing 1954 / Gauss-Kruger CM 75E");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6058\"]]");
+    p = add_epsg_def (filter, first, last, 6059, "epsg", 6059,
+        "GR96 / EPSG Arctic zone 5-41");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "333 +lat_0=72.02500919444445 +lon_0=-62 +x_0=41500000 +y");
     add_proj4text (p, 2,
+        "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
         "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 75E\",GEOGCS[\"B");
+        "PROJCS[\"GR96 / EPSG Arctic zone 5-41\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",73.66666666666");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_f");
+        "667],PARAMETER[\"standard_parallel_2\",70.33333333333333");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "],PARAMETER[\"latitude_of_origin\",72.02500919444445],PA");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "RAMETER[\"central_meridian\",-62],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI");
+        "ing\",41500000],PARAMETER[\"false_northing\",5500000],UN");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"21453\"]]");
-    p = add_epsg_def (filter, first, last, 21454, "epsg", 21454,
-        "Beijing 1954 / Gauss-Kruger CM 81E");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6059\"]]");
+    p = add_epsg_def (filter, first, last, 6060, "epsg", 6060,
+        "GR96 / EPSG Arctic zone 5-43");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "333 +lat_0=72.02500919444445 +lon_0=-42 +x_0=43500000 +y");
     add_proj4text (p, 2,
+        "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
         "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 81E\",GEOGCS[\"B");
+        "PROJCS[\"GR96 / EPSG Arctic zone 5-43\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",73.66666666666");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_f");
+        "667],PARAMETER[\"standard_parallel_2\",70.33333333333333");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "],PARAMETER[\"latitude_of_origin\",72.02500919444445],PA");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "RAMETER[\"central_meridian\",-42],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI");
+        "ing\",43500000],PARAMETER[\"false_northing\",5500000],UN");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"21454\"]]");
-    p = add_epsg_def (filter, first, last, 21455, "epsg", 21455,
-        "Beijing 1954 / Gauss-Kruger CM 87E");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6060\"]]");
+    p = add_epsg_def (filter, first, last, 6061, "epsg", 6061,
+        "GR96 / EPSG Arctic zone 5-45");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "333 +lat_0=72.02500919444445 +lon_0=-22 +x_0=45500000 +y");
     add_proj4text (p, 2,
+        "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
         "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 87E\",GEOGCS[\"B");
+        "PROJCS[\"GR96 / EPSG Arctic zone 5-45\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",73.66666666666");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_f");
+        "667],PARAMETER[\"standard_parallel_2\",70.33333333333333");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "],PARAMETER[\"latitude_of_origin\",72.02500919444445],PA");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "RAMETER[\"central_meridian\",-22],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI");
+        "ing\",45500000],PARAMETER[\"false_northing\",5500000],UN");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"21455\"]]");
-    p = add_epsg_def (filter, first, last, 21456, "epsg", 21456,
-        "Beijing 1954 / Gauss-Kruger CM 93E");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6061\"]]");
+    p = add_epsg_def (filter, first, last, 6062, "epsg", 6062,
+        "GR96 / EPSG Arctic zone 6-26");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "8747555555557 +lon_0=-56 +x_0=26500000 +y_0=6500000 +ell");
     add_proj4text (p, 2,
-        "+no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 93E\",GEOGCS[\"B");
+        "PROJCS[\"GR96 / EPSG Arctic zone 6-26\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",70.33333333333");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f");
+        "333],PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "atitude_of_origin\",68.68747555555557],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "al_meridian\",-56],PARAMETER[\"false_easting\",26500000]");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI");
+        ",PARAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"21456\"]]");
-    p = add_epsg_def (filter, first, last, 21457, "epsg", 21457,
-        "Beijing 1954 / Gauss-Kruger CM 99E");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6062\"]]");
+    p = add_epsg_def (filter, first, last, 6063, "epsg", 6063,
+        "GR96 / EPSG Arctic zone 6-28");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "8747555555557 +lon_0=-38 +x_0=28500000 +y_0=6500000 +ell");
     add_proj4text (p, 2,
-        "+no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 99E\",GEOGCS[\"B");
+        "PROJCS[\"GR96 / EPSG Arctic zone 6-28\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",70.33333333333");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f");
+        "333],PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "atitude_of_origin\",68.68747555555557],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "al_meridian\",-38],PARAMETER[\"false_easting\",28500000]");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI");
+        ",PARAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"21457\"]]");
-    p = add_epsg_def (filter, first, last, 21458, "epsg", 21458,
-        "Beijing 1954 / Gauss-Kruger CM 105E");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6063\"]]");
+    p = add_epsg_def (filter, first, last, 6064, "epsg", 6064,
+        "GR96 / EPSG Arctic zone 6-30");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "8747555555557 +lon_0=-20 +x_0=30500000 +y_0=6500000 +ell");
     add_proj4text (p, 2,
-        " +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 105E\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 6-30\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",70.33333333333");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale");
+        "333],PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
+        "atitude_of_origin\",68.68747555555557],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "al_meridian\",-20],PARAMETER[\"false_easting\",30500000]");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
+        ",PARAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21458\"]]");
-    p = add_epsg_def (filter, first, last, 21459, "epsg", 21459,
-        "Beijing 1954 / Gauss-Kruger CM 111E");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6064\"]]");
+    p = add_epsg_def (filter, first, last, 6065, "epsg", 6065,
+        "GR96 / EPSG Arctic zone 7-11");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=67 +lat_2=63.66666666666666 +lat_0=65.3");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "5103930555555 +lon_0=-51 +x_0=11500000 +y_0=7500000 +ell");
     add_proj4text (p, 2,
-        " +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 111E\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 7-11\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",67],PARAMETER[");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale");
+        "\"standard_parallel_2\",63.66666666666666],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
+        "atitude_of_origin\",65.35103930555555],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "al_meridian\",-51],PARAMETER[\"false_easting\",11500000]");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
+        ",PARAMETER[\"false_northing\",7500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21459\"]]");
-    p = add_epsg_def (filter, first, last, 21460, "epsg", 21460,
-        "Beijing 1954 / Gauss-Kruger CM 117E");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6065\"]]");
+    p = add_epsg_def (filter, first, last, 6066, "epsg", 6066,
+        "GR96 / EPSG Arctic zone 7-13");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=67 +lat_2=63.66666666666666 +lat_0=65.3");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "5103930555555 +lon_0=-34 +x_0=13500000 +y_0=7500000 +ell");
     add_proj4text (p, 2,
-        " +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 117E\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 7-13\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",67],PARAMETER[");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale");
+        "\"standard_parallel_2\",63.66666666666666],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
+        "atitude_of_origin\",65.35103930555555],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "al_meridian\",-34],PARAMETER[\"false_easting\",13500000]");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
+        ",PARAMETER[\"false_northing\",7500000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21460\"]]");
-    p = add_epsg_def (filter, first, last, 21461, "epsg", 21461,
-        "Beijing 1954 / Gauss-Kruger CM 123E");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6066\"]]");
+    p = add_epsg_def (filter, first, last, 6067, "epsg", 6067,
+        "GR96 / EPSG Arctic zone 8-20");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=63.66666666666666 +lat_2=60.33333333333");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "334 +lat_0=62.01530688888889 +lon_0=-52 +x_0=20500000 +y");
     add_proj4text (p, 2,
-        " +no_defs");
+        "_0=8500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 123E\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 8-20\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",63.66666666666");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale");
+        "666],PARAMETER[\"standard_parallel_2\",60.33333333333334");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
+        "],PARAMETER[\"latitude_of_origin\",62.01530688888889],PA");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "RAMETER[\"central_meridian\",-52],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
+        "ing\",20500000],PARAMETER[\"false_northing\",8500000],UN");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21461\"]]");
-    p = add_epsg_def (filter, first, last, 21462, "epsg", 21462,
-        "Beijing 1954 / Gauss-Kruger CM 129E");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6067\"]]");
+    p = add_epsg_def (filter, first, last, 6068, "epsg", 6068,
+        "GR96 / EPSG Arctic zone 8-22");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=63.66666666666666 +lat_2=60.33333333333");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "334 +lat_0=62.01530688888889 +lon_0=-37 +x_0=22500000 +y");
     add_proj4text (p, 2,
-        " +no_defs");
+        "_0=8500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 129E\",GEOGCS[\"");
+        "PROJCS[\"GR96 / EPSG Arctic zone 8-22\",GEOGCS[\"GR96\",");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "\"EPSG\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",63.66666666666");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale");
+        "666],PARAMETER[\"standard_parallel_2\",60.33333333333334");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
+        "],PARAMETER[\"latitude_of_origin\",62.01530688888889],PA");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "RAMETER[\"central_meridian\",-37],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
+        "ing\",22500000],PARAMETER[\"false_northing\",8500000],UN");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21462\"]]");
-    p = add_epsg_def (filter, first, last, 21463, "epsg", 21463,
-        "Beijing 1954 / Gauss-Kruger CM 135E");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 13,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6068\"]]");
+    p = add_epsg_def (filter, first, last, 6069, "epsg", 6069,
+        "ETRS89 / EPSG Arctic zone 2-22");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "333 +lat_0=82.05842488888888 +lon_0=16 +x_0=22500000 +y_");
     add_proj4text (p, 2,
-        " +no_defs");
+        "0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 135E\",GEOGCS[\"");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 2-22\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale");
+        "ard_parallel_1\",83.66666666666667],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
+        "_parallel_2\",80.33333333333333],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "_origin\",82.05842488888888],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
+        "n\",16],PARAMETER[\"false_easting\",22500000],PARAMETER[");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"21463\"]]");
-    p = add_epsg_def (filter, first, last, 21473, "epsg", 21473,
-        "Beijing 1954 / Gauss-Kruger 13N (deprecated)");
+        "\"false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6069\"]]");
+    p = add_epsg_def (filter, first, last, 6070, "epsg", 6070,
+        "ETRS89 / EPSG Arctic zone 3-11");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "0733752777778 +lon_0=21 +x_0=11500000 +y_0=3500000 +ellp");
     add_proj4text (p, 2,
-        "+no_defs");
+        "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 13N (deprecated)\",");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 3-11\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE");
+        "ard_parallel_1\",80.33333333333333],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
+        "_parallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "733752777778],PARAMETER[\"central_meridian\",21],PARAMET");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
+        "ER[\"false_easting\",11500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"21473\"]]");
-    p = add_epsg_def (filter, first, last, 21474, "epsg", 21474,
-        "Beijing 1954 / Gauss-Kruger 14N (deprecated)");
+        "g\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 14,
+        "RITY[\"EPSG\",\"6070\"]]");
+    p = add_epsg_def (filter, first, last, 6071, "epsg", 6071,
+        "ETRS89 / EPSG Arctic zone 4-26");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "6440330555556 +lon_0=10 +x_0=26500000 +y_0=4500000 +ellp");
     add_proj4text (p, 2,
-        "+no_defs");
+        "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 14N (deprecated)\",");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 4-26\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE");
+        "ard_parallel_1\",77],PARAMETER[\"standard_parallel_2\",7");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
+        "3.66666666666667],PARAMETER[\"latitude_of_origin\",75.36");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "440330555556],PARAMETER[\"central_meridian\",10],PARAMET");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
+        "ER[\"false_easting\",26500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"21474\"]]");
-    p = add_epsg_def (filter, first, last, 21475, "epsg", 21475,
-        "Beijing 1954 / Gauss-Kruger 15N (deprecated)");
+        "g\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 14,
+        "RITY[\"EPSG\",\"6071\"]]");
+    p = add_epsg_def (filter, first, last, 6072, "epsg", 6072,
+        "ETRS89 / EPSG Arctic zone 4-28");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "6440330555556 +lon_0=34 +x_0=28500000 +y_0=4500000 +ellp");
     add_proj4text (p, 2,
-        "+no_defs");
+        "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 15N (deprecated)\",");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 4-28\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE");
+        "ard_parallel_1\",77],PARAMETER[\"standard_parallel_2\",7");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
+        "3.66666666666667],PARAMETER[\"latitude_of_origin\",75.36");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "440330555556],PARAMETER[\"central_meridian\",34],PARAMET");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
+        "ER[\"false_easting\",28500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"21475\"]]");
-    p = add_epsg_def (filter, first, last, 21476, "epsg", 21476,
-        "Beijing 1954 / Gauss-Kruger 16N (deprecated)");
+        "g\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 14,
+        "RITY[\"EPSG\",\"6072\"]]");
+    p = add_epsg_def (filter, first, last, 6073, "epsg", 6073,
+        "ETRS89 / EPSG Arctic zone 5-11");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "333 +lat_0=72.02500919444445 +lon_0=14 +x_0=11500000 +y_");
     add_proj4text (p, 2,
-        "+no_defs");
+        "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 16N (deprecated)\",");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 5-11\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE");
+        "ard_parallel_1\",73.66666666666667],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
+        "_parallel_2\",70.33333333333333],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "_origin\",72.02500919444445],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
+        "n\",14],PARAMETER[\"false_easting\",11500000],PARAMETER[");
     add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"21476\"]]");
-    p = add_epsg_def (filter, first, last, 21477, "epsg", 21477,
-        "Beijing 1954 / Gauss-Kruger 17N (deprecated)");
+        "\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6073\"]]");
+    p = add_epsg_def (filter, first, last, 6074, "epsg", 6074,
+        "ETRS89 / EPSG Arctic zone 5-13");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
+        "333 +lat_0=72.02500919444445 +lon_0=34 +x_0=13500000 +y_");
     add_proj4text (p, 2,
-        "+no_defs");
+        "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 17N (deprecated)\",");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 5-13\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE");
+        "ard_parallel_1\",73.66666666666667],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
+        "_parallel_2\",70.33333333333333],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "_origin\",72.02500919444445],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA");
+        "n\",34],PARAMETER[\"false_easting\",13500000],PARAMETER[");
     add_srs_wkt (p, 12,
-        "ST],AUTHORITY[\"EPSG\",\"21477\"]]");
-    p = add_epsg_def (filter, first, last, 21478, "epsg", 21478,
-        "Beijing 1954 / Gauss-Kruger 18N (deprecated)");
+        "\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6074\"]]");
+    p = add_epsg_def (filter, first, last, 6075, "epsg", 6075,
+        "WGS 84 / EPSG Arctic zone 2-24");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "333 +lat_0=82.05842488888888 +lon_0=53 +x_0=24500000 +y_");
     add_proj4text (p, 2,
-        " +no_defs");
+        "0=2500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 18N (deprecated)\",");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 2-24\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET");
+        "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
+        "igin\",82.05842488888888],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        ",53],PARAMETER[\"false_easting\",24500000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
+        "alse_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"21478\"]]");
-    p = add_epsg_def (filter, first, last, 21479, "epsg", 21479,
-        "Beijing 1954 / Gauss-Kruger 19N (deprecated)");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6075\"]]");
+    p = add_epsg_def (filter, first, last, 6076, "epsg", 6076,
+        "WGS 84 / EPSG Arctic zone 2-26");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "333 +lat_0=82.05842488888888 +lon_0=93 +x_0=26500000 +y_");
     add_proj4text (p, 2,
-        " +no_defs");
+        "0=2500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 19N (deprecated)\",");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 2-26\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET");
+        "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
+        "igin\",82.05842488888888],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        ",93],PARAMETER[\"false_easting\",26500000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
+        "alse_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"21479\"]]");
-    p = add_epsg_def (filter, first, last, 21480, "epsg", 21480,
-        "Beijing 1954 / Gauss-Kruger 20N (deprecated)");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6076\"]]");
+    p = add_epsg_def (filter, first, last, 6077, "epsg", 6077,
+        "WGS 84 / EPSG Arctic zone 3-13");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "0733752777778 +lon_0=52 +x_0=13500000 +y_0=3500000 +datu");
     add_proj4text (p, 2,
-        " +no_defs");
+        "m=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 20N (deprecated)\",");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 3-13\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET");
+        "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
+        "752777778],PARAMETER[\"central_meridian\",52],PARAMETER[");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "\"false_easting\",13500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
+        ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"21480\"]]");
-    p = add_epsg_def (filter, first, last, 21481, "epsg", 21481,
-        "Beijing 1954 / Gauss-Kruger 21N (deprecated)");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6077\"]]");
+    p = add_epsg_def (filter, first, last, 6078, "epsg", 6078,
+        "WGS 84 / EPSG Arctic zone 3-15");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "0733752777778 +lon_0=83 +x_0=15500000 +y_0=3500000 +datu");
     add_proj4text (p, 2,
-        " +no_defs");
+        "m=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 21N (deprecated)\",");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 3-15\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET");
+        "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
+        "752777778],PARAMETER[\"central_meridian\",83],PARAMETER[");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "\"false_easting\",15500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
+        ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"21481\"]]");
-    p = add_epsg_def (filter, first, last, 21482, "epsg", 21482,
-        "Beijing 1954 / Gauss-Kruger 22N (deprecated)");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6078\"]]");
+    p = add_epsg_def (filter, first, last, 6079, "epsg", 6079,
+        "WGS 84 / EPSG Arctic zone 3-17");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "0733752777778 +lon_0=114 +x_0=17500000 +y_0=3500000 +dat");
     add_proj4text (p, 2,
-        " +no_defs");
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 22N (deprecated)\",");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 3-17\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET");
+        "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
+        "752777778],PARAMETER[\"central_meridian\",114],PARAMETER");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "[\"false_easting\",17500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
+        ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"21482\"]]");
-    p = add_epsg_def (filter, first, last, 21483, "epsg", 21483,
-        "Beijing 1954 / Gauss-Kruger 23N (deprecated)");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6079\"]]");
+    p = add_epsg_def (filter, first, last, 6080, "epsg", 6080,
+        "WGS 84 / EPSG Arctic zone 3-19");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+        "0733752777778 +lon_0=145 +x_0=19500000 +y_0=3500000 +dat");
     add_proj4text (p, 2,
-        " +no_defs");
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Beijing 1954 / Gauss-Kruger 23N (deprecated)\",");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 3-19\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
+        "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET");
+        "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
+        "752777778],PARAMETER[\"central_meridian\",145],PARAMETER");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "[\"false_easting\",19500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E");
+        ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "AST],AUTHORITY[\"EPSG\",\"21483\"]]");
-    p = add_epsg_def (filter, first, last, 21500, "epsg", 21500,
-        "Belge 1950 (Brussels) / Belge Lambert 50");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6080\"]]");
+    p = add_epsg_def (filter, first, last, 6081, "epsg", 6081,
+        "WGS 84 / EPSG Arctic zone 4-30");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=i");
+        "6440330555556 +lon_0=58 +x_0=30500000 +y_0=4500000 +datu");
     add_proj4text (p, 2,
-        "ntl +pm=brussels +units=m +no_defs");
+        "m=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Belge 1950 (Brussels) / Belge Lambert 50\",GEOG");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-30\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "CS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National_Bel");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "ge_1950_Brussels\",SPHEROID[\"International 1924\",63783");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\"EPSG");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4809\"]],PRO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "ndard_parallel_1\",49.83333333333334],PARAMETER[\"standa");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "rd_parallel_2\",51.16666666666666],PARAMETER[\"latitude_");
+        "330555556],PARAMETER[\"central_meridian\",58],PARAMETER[");
     add_srs_wkt (p, 10,
-        "of_origin\",90],PARAMETER[\"central_meridian\",0],PARAME");
+        "\"false_easting\",30500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "TER[\"false_easting\",150000],PARAMETER[\"false_northing");
+        ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "\",5400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 13,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 14,
-        ",\"21500\"]]");
-    p = add_epsg_def (filter, first, last, 21780, "epsg", 21780,
-        "Bern 1898 (Bern) / LV03C");
+        "TY[\"EPSG\",\"6081\"]]");
+    p = add_epsg_def (filter, first, last, 6082, "epsg", 6082,
+        "WGS 84 / EPSG Arctic zone 4-32");
     add_proj4text (p, 0,
-        "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "_0=0 +y_0=0 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,");
+        "6440330555556 +lon_0=82 +x_0=32500000 +y_0=4500000 +datu");
     add_proj4text (p, 2,
-        "0,0 +pm=bern +units=m +no_defs");
+        "m=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bern 1898 (Bern) / LV03C\",GEOGCS[\"Bern 1898 (");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-32\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "Bern)\",DATUM[\"CH1903_Bern\",SPHEROID[\"Bessel 1841\",6");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "GS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6801");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Bern\",7.439583333333333,AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        ",\"8907\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4801\"]],PROJE");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "of_center\",46.95240555555556],PARAMETER[\"longitude_of_");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "center\",0],PARAMETER[\"azimuth\",90],PARAMETER[\"rectif");
+        "330555556],PARAMETER[\"central_meridian\",82],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ied_grid_angle\",90],PARAMETER[\"scale_factor\",1],PARAM");
+        "\"false_easting\",32500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0");
+        ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 13,
-        "Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21780\"");
-    add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 21781, "epsg", 21781,
-        "CH1903 / LV03");
+        "TY[\"EPSG\",\"6082\"]]");
+    p = add_epsg_def (filter, first, last, 6083, "epsg", 6083,
+        "WGS 84 / EPSG Arctic zone 4-34");
     add_proj4text (p, 0,
-        "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +tow");
+        "6440330555556 +lon_0=106 +x_0=34500000 +y_0=4500000 +dat");
     add_proj4text (p, 2,
-        "gs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs");
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"CH1903 / LV03\",GEOGCS[\"CH1903\",DATUM[\"CH190");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-34\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "3\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich\",");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "G\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],P");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "ARAMETER[\"latitude_of_center\",46.95240555555556],PARAM");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "ETER[\"longitude_of_center\",7.439583333333333],PARAMETE");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "R[\"azimuth\",90],PARAMETER[\"rectified_grid_angle\",90]");
+        "330555556],PARAMETER[\"central_meridian\",106],PARAMETER");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting");
+        "[\"false_easting\",34500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "\",600000],PARAMETER[\"false_northing\",200000],UNIT[\"m");
+        ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 13,
-        "AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21781\"]]");
-    p = add_epsg_def (filter, first, last, 21782, "epsg", 21782,
-        "CH1903 / LV03C-G");
+        "TY[\"EPSG\",\"6083\"]]");
+    p = add_epsg_def (filter, first, last, 6084, "epsg", 6084,
+        "WGS 84 / EPSG Arctic zone 4-36");
     add_proj4text (p, 0,
-        "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.4");
+        "6440330555556 +lon_0=130 +x_0=36500000 +y_0=4500000 +dat");
     add_proj4text (p, 2,
-        ",15.1,405.3,0,0,0,0 +units=m +no_defs");
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"CH1903 / LV03C-G\",GEOGCS[\"CH1903\",DATUM[\"CH");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-36\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "1903\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        ",0,0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator\"");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_center\",46.95240555555556],PA");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "RAMETER[\"longitude_of_center\",7.439583333333333],PARAM");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "ETER[\"azimuth\",90],PARAMETER[\"rectified_grid_angle\",");
+        "330555556],PARAMETER[\"central_meridian\",130],PARAMETER");
     add_srs_wkt (p, 10,
-        "90],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "[\"false_easting\",36500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 13,
-        "X\",NORTH],AUTHORITY[\"EPSG\",\"21782\"]]");
-    p = add_epsg_def (filter, first, last, 21817, "epsg", 21817,
-        "Bogota 1975 / UTM zone 17N (deprecated)");
+        "TY[\"EPSG\",\"6084\"]]");
+    p = add_epsg_def (filter, first, last, 6085, "epsg", 6085,
+        "WGS 84 / EPSG Arctic zone 4-38");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "6440330555556 +lon_0=154 +x_0=38500000 +y_0=4500000 +dat");
+    add_proj4text (p, 2,
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / UTM zone 17N (deprecated)\",GEOGC");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-38\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "S[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inter");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"621");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "330555556],PARAMETER[\"central_meridian\",154],PARAMETER");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "[\"false_easting\",38500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"21817\"]]");
-    p = add_epsg_def (filter, first, last, 21818, "epsg", 21818,
-        "Bogota 1975 / UTM zone 18N");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6085\"]]");
+    p = add_epsg_def (filter, first, last, 6086, "epsg", 6086,
+        "WGS 84 / EPSG Arctic zone 4-40");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "6440330555556 +lon_0=179 +x_0=40500000 +y_0=4500000 +dat");
+    add_proj4text (p, 2,
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / UTM zone 18N\",GEOGCS[\"Bogota 19");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-40\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "75\",DATUM[\"Bogota_1975\",SPHEROID[\"International 1924");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[307");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        ",304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM[");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mer");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "330555556],PARAMETER[\"central_meridian\",179],PARAMETER");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "[\"false_easting\",40500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        ",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"21818\"]]");
-    p = add_epsg_def (filter, first, last, 21891, "epsg", 21891,
-        "Bogota 1975 / Colombia West zone (deprecated)");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6086\"]]");
+    p = add_epsg_def (filter, first, last, 6087, "epsg", 6087,
+        "WGS 84 / EPSG Arctic zone 5-15");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=54 +x_0=15500000 +y_");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia West zone (deprecated)\"");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-15\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        ",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTIO");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "n\",4.599047222222222],PARAMETER[\"central_meridian\",-7");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "7.08091666666667],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",1000000],PARAMETER[\"false_northing\"");
+        ",54],PARAMETER[\"false_easting\",15500000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "alse_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        "21891\"]]");
-    p = add_epsg_def (filter, first, last, 21892, "epsg", 21892,
-        "Bogota 1975 / Colombia Bogota zone (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6087\"]]");
+    p = add_epsg_def (filter, first, last, 6088, "epsg", 6088,
+        "WGS 84 / EPSG Arctic zone 5-17");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=74 +x_0=17500000 +y_");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia Bogota zone (deprecated)");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-17\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\"");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 5,
         "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+    add_srs_wkt (p, 5,
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTI");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "in\",4.599047222222222],PARAMETER[\"central_meridian\",-");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "74.08091666666667],PARAMETER[\"scale_factor\",1],PARAMET");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_easting\",1000000],PARAMETER[\"false_northing");
+        ",74],PARAMETER[\"false_easting\",17500000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "alse_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        ",\"21892\"]]");
-    p = add_epsg_def (filter, first, last, 21893, "epsg", 21893,
-        "Bogota 1975 / Colombia East Central zone (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6088\"]]");
+    p = add_epsg_def (filter, first, last, 6089, "epsg", 6089,
+        "WGS 84 / EPSG Arctic zone 5-19");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=95 +x_0=19500000 +y_");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia East Central zone (depre");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-19\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "cated)\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SP");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "SG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_of_origin\",4.599047222222222],PARAMETER[\"central_meri");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "dian\",-71.08091666666667],PARAMETER[\"scale_factor\",1]");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_");
+        ",95],PARAMETER[\"false_easting\",19500000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "alse_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        "\"EPSG\",\"21893\"]]");
-    p = add_epsg_def (filter, first, last, 21894, "epsg", 21894,
-        "Bogota 1975 / Colombia East (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6089\"]]");
+    p = add_epsg_def (filter, first, last, 6090, "epsg", 6090,
+        "WGS 84 / EPSG Arctic zone 5-21");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=116 +x_0=21500000 +y");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "_0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia East (deprecated)\",GEOG");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-21\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        ".599047222222222],PARAMETER[\"central_meridian\",-68.080");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "alse_easting\",1000000],PARAMETER[\"false_northing\",100");
+        ",116],PARAMETER[\"false_easting\",21500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"218");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        "94\"]]");
-    p = add_epsg_def (filter, first, last, 21896, "epsg", 21896,
-        "Bogota 1975 / Colombia West zone");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6090\"]]");
+    p = add_epsg_def (filter, first, last, 6091, "epsg", 6091,
+        "WGS 84 / EPSG Arctic zone 5-23");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=137 +x_0=23500000 +y");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "_0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia West zone\",GEOGCS[\"Bog");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-23\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "ota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internationa");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],P");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transver");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",4.599047");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "222222222],PARAMETER[\"central_meridian\",-77.0809166666");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "6667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "sting\",1000000],PARAMETER[\"false_northing\",1000000],U");
+        ",137],PARAMETER[\"false_easting\",23500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21896\"]]");
-    p = add_epsg_def (filter, first, last, 21897, "epsg", 21897,
-        "Bogota 1975 / Colombia Bogota zone");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6091\"]]");
+    p = add_epsg_def (filter, first, last, 6092, "epsg", 6092,
+        "WGS 84 / EPSG Arctic zone 5-25");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=158 +x_0=25500000 +y");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "_0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia Bogota zone\",GEOGCS[\"B");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-25\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "ogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internatio");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "GS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]]");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "22\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transv");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.5990");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "47222222222],PARAMETER[\"central_meridian\",-74.08091666");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "easting\",1000000],PARAMETER[\"false_northing\",1000000]");
+        ",158],PARAMETER[\"false_easting\",25500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+        "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21897\"]");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 21898, "epsg", 21898,
-        "Bogota 1975 / Colombia East Central zone");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6092\"]]");
+    p = add_epsg_def (filter, first, last, 6093, "epsg", 6093,
+        "WGS 84 / EPSG Arctic zone 5-27");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=179 +x_0=27500000 +y");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "_0=5500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia East Central zone\",GEOG");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 5-27\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
+        "_parallel_1\",73.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        ".599047222222222],PARAMETER[\"central_meridian\",-71.080");
+        "rallel_2\",70.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
+        "igin\",72.02500919444445],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "alse_easting\",1000000],PARAMETER[\"false_northing\",100");
+        ",179],PARAMETER[\"false_easting\",27500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"218");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        "98\"]]");
-    p = add_epsg_def (filter, first, last, 21899, "epsg", 21899,
-        "Bogota 1975 / Colombia East");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6093\"]]");
+    p = add_epsg_def (filter, first, last, 6094, "epsg", 6094,
+        "NAD83(NSRS2007) / EPSG Arctic zone 5-29");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+        "333 +lat_0=72.02500919444445 +lon_0=-163 +x_0=29500000 +");
     add_proj4text (p, 2,
-        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
+        "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Bogota 1975 / Colombia East\",GEOGCS[\"Bogota 1");
+        "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 5-29\",GEOGC");
     add_srs_wkt (p, 1,
-        "975\",DATUM[\"Bogota_1975\",SPHEROID[\"International 192");
+        "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[30");
+        "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        "7,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Me");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",4.59904722222");
+        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "2222],PARAMETER[\"central_meridian\",-68.08091666666667]");
+        "\"],PARAMETER[\"standard_parallel_1\",73.66666666666667]");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting");
+        ",PARAMETER[\"standard_parallel_2\",70.33333333333333],PA");
     add_srs_wkt (p, 10,
-        "\",1000000],PARAMETER[\"false_northing\",1000000],UNIT[\"");
+        "RAMETER[\"latitude_of_origin\",72.02500919444445],PARAME");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "TER[\"central_meridian\",-163],PARAMETER[\"false_easting");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21899\"]]");
-    p = add_epsg_def (filter, first, last, 22032, "epsg", 22032,
-        "Camacupa / UTM zone 32S");
+        "\",29500000],PARAMETER[\"false_northing\",5500000],UNIT[");
+    add_srs_wkt (p, 13,
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 14,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 15,
+        "094\"]]");
+    p = add_epsg_def (filter, first, last, 6095, "epsg", 6095,
+        "NAD83(NSRS2007) / EPSG Arctic zone 5-31");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +ellps=clrk80 +towgs84=-50.9,-");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "347.6,-231,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=72.02500919444445 +lon_0=-147 +x_0=31500000 +");
+    add_proj4text (p, 2,
+        "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Camacupa / UTM zone 32S\",GEOGCS[\"Camacupa\",D");
+        "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 5-31\",GEOGC");
     add_srs_wkt (p, 1,
-        "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9");
+        "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9");
+        "\"],PARAMETER[\"standard_parallel_1\",73.66666666666667]");
     add_srs_wkt (p, 9,
-        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        ",PARAMETER[\"standard_parallel_2\",70.33333333333333],PA");
     add_srs_wkt (p, 10,
-        "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "RAMETER[\"latitude_of_origin\",72.02500919444445],PARAME");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+        "TER[\"central_meridian\",-147],PARAMETER[\"false_easting");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"22032\"]]");
-    p = add_epsg_def (filter, first, last, 22033, "epsg", 22033,
-        "Camacupa / UTM zone 33S");
+        "\",31500000],PARAMETER[\"false_northing\",5500000],UNIT[");
+    add_srs_wkt (p, 13,
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 14,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 15,
+        "095\"]]");
+    p = add_epsg_def (filter, first, last, 6096, "epsg", 6096,
+        "NAD83(NSRS2007) / EPSG Arctic zone 6-14");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-50.9,-");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "347.6,-231,0,0,0,0 +units=m +no_defs");
+        "8747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Camacupa / UTM zone 33S\",GEOGCS[\"Camacupa\",D");
+        "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 6-14\",GEOGC");
     add_srs_wkt (p, 1,
-        "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
+        "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9");
+        "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.");
+        "\"],PARAMETER[\"standard_parallel_1\",70.33333333333333]");
     add_srs_wkt (p, 9,
-        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        ",PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latit");
     add_srs_wkt (p, 10,
-        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ude_of_origin\",68.68747555555557],PARAMETER[\"central_m");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "eridian\",-165],PARAMETER[\"false_easting\",14500000],PA");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"22033\"]]");
-    p = add_epsg_def (filter, first, last, 22091, "epsg", 22091,
-        "Camacupa / TM 11.30 SE");
+        "RAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"6096\"]]");
+    p = add_epsg_def (filter, first, last, 6097, "epsg", 6097,
+        "NAD83(NSRS2007) / EPSG Arctic zone 6-16");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "y_0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,");
+        "8747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +el");
     add_proj4text (p, 2,
-        "0,0,0 +units=m +no_defs");
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Camacupa / TM 11.30 SE\",GEOGCS[\"Camacupa\",DA");
+        "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 6-16\",GEOGC");
     add_srs_wkt (p, 1,
-        "TUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.");
+        "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,");
+        "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        "-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIME");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_M");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "[\"central_meridian\",11.5],PARAMETER[\"scale_factor\",0");
+        "\"],PARAMETER[\"standard_parallel_1\",70.33333333333333]");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        ",PARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latit");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "ude_of_origin\",68.68747555555557],PARAMETER[\"central_m");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "eridian\",-147],PARAMETER[\"false_easting\",16500000],PA");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"22091\"]]");
-    p = add_epsg_def (filter, first, last, 22092, "epsg", 22092,
-        "Camacupa / TM 12 SE");
+        "RAMETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"6097\"]]");
+    p = add_epsg_def (filter, first, last, 6098, "epsg", 6098,
+        "NAD83(CSRS) / EPSG Arctic zone 1-23");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_");
+        "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4");
     add_proj4text (p, 1,
-        "0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,0,");
+        "3711833333333 +lon_0=-90 +x_0=23500000 +y_0=1500000 +ell");
     add_proj4text (p, 2,
-        "0,0 +units=m +no_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Camacupa / TM 12 SE\",GEOGCS[\"Camacupa\",DATUM");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 1-23\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,-34");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIMEM[\"");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Merca");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "entral_meridian\",12],PARAMETER[\"scale_factor\",0.9996]");
+        "[\"standard_parallel_1\",87],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "el_2\",83.66666666666667],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "\",85.43711833333333],PARAMETER[\"central_meridian\",-90");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "],PARAMETER[\"false_easting\",23500000],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"22092\"]]");
-    p = add_epsg_def (filter, first, last, 22171, "epsg", 22171,
-        "POSGAR 98 / Argentina 1");
+        "e_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"6098\"]]");
+    p = add_epsg_def (filter, first, last, 6099, "epsg", 6099,
+        "NAD83(CSRS) / EPSG Arctic zone 2-14");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=82.05842488888888 +lon_0=-115 +x_0=14500000 +");
+    add_proj4text (p, 2,
+        "y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 1\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 2-14\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",83.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",1500000],PARAM");
+        "standard_parallel_2\",80.33333333333333],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "itude_of_origin\",82.05842488888888],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "_meridian\",-115],PARAMETER[\"false_easting\",14500000],");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22171\"]]");
-    p = add_epsg_def (filter, first, last, 22172, "epsg", 22172,
-        "POSGAR 98 / Argentina 2");
+        "PARAMETER[\"false_northing\",2500000],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6099\"]]");
+    p = add_epsg_def (filter, first, last, 6100, "epsg", 6100,
+        "NAD83(CSRS) / EPSG Arctic zone 2-16");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=82.05842488888888 +lon_0=-75 +x_0=16500000 +y");
+    add_proj4text (p, 2,
+        "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 2\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 2-16\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",83.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",2500000],PARAM");
+        "standard_parallel_2\",80.33333333333333],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "itude_of_origin\",82.05842488888888],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "_meridian\",-75],PARAMETER[\"false_easting\",16500000],P");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22172\"]]");
-    p = add_epsg_def (filter, first, last, 22173, "epsg", 22173,
-        "POSGAR 98 / Argentina 3");
+        "ARAMETER[\"false_northing\",2500000],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 13,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+    add_srs_wkt (p, 14,
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6100\"]]");
+    p = add_epsg_def (filter, first, last, 6101, "epsg", 6101,
+        "NAD83(CSRS) / EPSG Arctic zone 3-25");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "0733752777778 +lon_0=-129 +x_0=25500000 +y_0=3500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 3\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-25\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",80.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM");
+        "standard_parallel_2\",77],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "\",78.70733752777778],PARAMETER[\"central_meridian\",-12");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "9],PARAMETER[\"false_easting\",25500000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22173\"]]");
-    p = add_epsg_def (filter, first, last, 22174, "epsg", 22174,
-        "POSGAR 98 / Argentina 4");
+        "se_northing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+    add_srs_wkt (p, 14,
+        "ORTH],AUTHORITY[\"EPSG\",\"6101\"]]");
+    p = add_epsg_def (filter, first, last, 6102, "epsg", 6102,
+        "NAD83(CSRS) / EPSG Arctic zone 3-27");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "0733752777778 +lon_0=-99 +x_0=27500000 +y_0=3500000 +ell");
+    add_proj4text (p, 2,
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 4\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-27\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",80.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",4500000],PARAM");
+        "standard_parallel_2\",77],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "\",78.70733752777778],PARAMETER[\"central_meridian\",-99");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "],PARAMETER[\"false_easting\",27500000],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22174\"]]");
-    p = add_epsg_def (filter, first, last, 22175, "epsg", 22175,
-        "POSGAR 98 / Argentina 5");
+        "e_northing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"6102\"]]");
+    p = add_epsg_def (filter, first, last, 6103, "epsg", 6103,
+        "NAD83(CSRS) / EPSG Arctic zone 3-29");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "0733752777778 +lon_0=-69 +x_0=29500000 +y_0=3500000 +ell");
+    add_proj4text (p, 2,
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 5\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-29\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",80.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",5500000],PARAM");
+        "standard_parallel_2\",77],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "\",78.70733752777778],PARAMETER[\"central_meridian\",-69");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "],PARAMETER[\"false_easting\",29500000],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22175\"]]");
-    p = add_epsg_def (filter, first, last, 22176, "epsg", 22176,
-        "POSGAR 98 / Argentina 6");
+        "e_northing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"6103\"]]");
+    p = add_epsg_def (filter, first, last, 6104, "epsg", 6104,
+        "NAD83(CSRS) / EPSG Arctic zone 4-14");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "6440330555556 +lon_0=-129 +x_0=14500000 +y_0=4500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 6\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-14\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",77],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",6500000],PARAM");
+        "el_2\",73.66666666666667],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "\",75.36440330555556],PARAMETER[\"central_meridian\",-12");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "9],PARAMETER[\"false_easting\",14500000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22176\"]]");
-    p = add_epsg_def (filter, first, last, 22177, "epsg", 22177,
-        "POSGAR 98 / Argentina 7");
+        "se_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+    add_srs_wkt (p, 14,
+        "ORTH],AUTHORITY[\"EPSG\",\"6104\"]]");
+    p = add_epsg_def (filter, first, last, 6105, "epsg", 6105,
+        "NAD83(CSRS) / EPSG Arctic zone 4-16");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "6440330555556 +lon_0=-104 +x_0=16500000 +y_0=4500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 98 / Argentina 7\",GEOGCS[\"POSGAR 98\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-16\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "90],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scal");
+        "[\"standard_parallel_1\",77],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",7500000],PARAM");
+        "el_2\",73.66666666666667],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "\",75.36440330555556],PARAMETER[\"central_meridian\",-10");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "4],PARAMETER[\"false_easting\",16500000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22177\"]]");
-    p = add_epsg_def (filter, first, last, 22181, "epsg", 22181,
-        "POSGAR 94 / Argentina 1");
+        "se_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+    add_srs_wkt (p, 14,
+        "ORTH],AUTHORITY[\"EPSG\",\"6105\"]]");
+    p = add_epsg_def (filter, first, last, 6106, "epsg", 6106,
+        "NAD83(CSRS) / EPSG Arctic zone 4-18");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "6440330555556 +lon_0=-79 +x_0=18500000 +y_0=4500000 +ell");
+    add_proj4text (p, 2,
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 1\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-18\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",77],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",1500000],PARAME");
+        "el_2\",73.66666666666667],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "\",75.36440330555556],PARAMETER[\"central_meridian\",-79");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "],PARAMETER[\"false_easting\",18500000],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22181\"]]");
-    p = add_epsg_def (filter, first, last, 22182, "epsg", 22182,
-        "POSGAR 94 / Argentina 2");
+        "e_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"6106\"]]");
+    p = add_epsg_def (filter, first, last, 6107, "epsg", 6107,
+        "NAD83(CSRS) / EPSG Arctic zone 5-33");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=72.02500919444445 +lon_0=-131 +x_0=33500000 +");
+    add_proj4text (p, 2,
+        "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 2\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-33\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",2500000],PARAME");
+        "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "itude_of_origin\",72.02500919444445],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "_meridian\",-131],PARAMETER[\"false_easting\",33500000],");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22182\"]]");
-    p = add_epsg_def (filter, first, last, 22183, "epsg", 22183,
-        "POSGAR 94 / Argentina 3");
+        "PARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6107\"]]");
+    p = add_epsg_def (filter, first, last, 6108, "epsg", 6108,
+        "NAD83(CSRS) / EPSG Arctic zone 5-35");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=72.02500919444445 +lon_0=-111 +x_0=35500000 +");
+    add_proj4text (p, 2,
+        "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 3\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-35\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",3500000],PARAME");
+        "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "itude_of_origin\",72.02500919444445],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "_meridian\",-111],PARAMETER[\"false_easting\",35500000],");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22183\"]]");
-    p = add_epsg_def (filter, first, last, 22184, "epsg", 22184,
-        "POSGAR 94 / Argentina 4");
+        "PARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6108\"]]");
+    p = add_epsg_def (filter, first, last, 6109, "epsg", 6109,
+        "NAD83(CSRS) / EPSG Arctic zone 5-37");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=72.02500919444445 +lon_0=-91 +x_0=37500000 +y");
+    add_proj4text (p, 2,
+        "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 4\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-37\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME");
+        "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "itude_of_origin\",72.02500919444445],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "_meridian\",-91],PARAMETER[\"false_easting\",37500000],P");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22184\"]]");
-    p = add_epsg_def (filter, first, last, 22185, "epsg", 22185,
-        "POSGAR 94 / Argentina 5");
+        "ARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 13,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+    add_srs_wkt (p, 14,
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6109\"]]");
+    p = add_epsg_def (filter, first, last, 6110, "epsg", 6110,
+        "NAD83(CSRS) / EPSG Arctic zone 5-39");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=72.02500919444445 +lon_0=-71 +x_0=39500000 +y");
+    add_proj4text (p, 2,
+        "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 5\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-39\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",73.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME");
+        "standard_parallel_2\",70.33333333333333],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "itude_of_origin\",72.02500919444445],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "_meridian\",-71],PARAMETER[\"false_easting\",39500000],P");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22185\"]]");
-    p = add_epsg_def (filter, first, last, 22186, "epsg", 22186,
-        "POSGAR 94 / Argentina 6");
+        "ARAMETER[\"false_northing\",5500000],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 13,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+    add_srs_wkt (p, 14,
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6110\"]]");
+    p = add_epsg_def (filter, first, last, 6111, "epsg", 6111,
+        "NAD83(CSRS) / EPSG Arctic zone 6-18");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "8747555555557 +lon_0=-132 +x_0=18500000 +y_0=6500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 6\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-18\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",6500000],PARAME");
+        "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "\",68.68747555555557],PARAMETER[\"central_meridian\",-13");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "2],PARAMETER[\"false_easting\",18500000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22186\"]]");
-    p = add_epsg_def (filter, first, last, 22187, "epsg", 22187,
-        "POSGAR 94 / Argentina 7");
+        "se_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+    add_srs_wkt (p, 14,
+        "ORTH],AUTHORITY[\"EPSG\",\"6111\"]]");
+    p = add_epsg_def (filter, first, last, 6112, "epsg", 6112,
+        "NAD83(CSRS) / EPSG Arctic zone 6-20");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "8747555555557 +lon_0=-113 +x_0=20500000 +y_0=6500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"POSGAR 94 / Argentina 7\",GEOGCS[\"POSGAR 94\",");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-20\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale");
+        "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_factor\",1],PARAMETER[\"false_easting\",7500000],PARAME");
+        "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "\",68.68747555555557],PARAMETER[\"central_meridian\",-11");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH");
+        "3],PARAMETER[\"false_easting\",20500000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"22187\"]]");
-    p = add_epsg_def (filter, first, last, 22191, "epsg", 22191,
-        "Campo Inchauspe / Argentina 1");
+        "se_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+    add_srs_wkt (p, 14,
+        "ORTH],AUTHORITY[\"EPSG\",\"6112\"]]");
+    p = add_epsg_def (filter, first, last, 6113, "epsg", 6113,
+        "NAD83(CSRS) / EPSG Arctic zone 6-22");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "8747555555557 +lon_0=-94 +x_0=22500000 +y_0=6500000 +ell");
     add_proj4text (p, 2,
-        "_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 1\",GEOGCS[\"Campo ");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-22\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale_f");
+        "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",1500000],PARAMETE");
+        "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "\",68.68747555555557],PARAMETER[\"central_meridian\",-94");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        "],PARAMETER[\"false_easting\",22500000],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22191\"]]");
-    p = add_epsg_def (filter, first, last, 22192, "epsg", 22192,
-        "Campo Inchauspe / Argentina 2");
+        "e_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"6113\"]]");
+    p = add_epsg_def (filter, first, last, 6114, "epsg", 6114,
+        "NAD83(CSRS) / EPSG Arctic zone 6-24");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "8747555555557 +lon_0=-75 +x_0=24500000 +y_0=6500000 +ell");
     add_proj4text (p, 2,
-        "_defs");
+        "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 2\",GEOGCS[\"Campo ");
+        "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-24\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f");
+        "[\"standard_parallel_1\",70.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",2500000],PARAMETE");
+        "standard_parallel_2\",67],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "\",68.68747555555557],PARAMETER[\"central_meridian\",-75");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        "],PARAMETER[\"false_easting\",24500000],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22192\"]]");
-    p = add_epsg_def (filter, first, last, 22193, "epsg", 22193,
-        "Campo Inchauspe / Argentina 3");
+        "e_northing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"6114\"]]");
+    p = add_epsg_def (filter, first, last, 6115, "epsg", 6115,
+        "WGS 84 / EPSG Arctic zone 1-27");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0");
+        "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "3711833333333 +lon_0=30 +x_0=27500000 +y_0=1500000 +datu");
     add_proj4text (p, 2,
-        "_defs");
+        "m=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 3\",GEOGCS[\"Campo ");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 1-27\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale_f");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE");
+        "833333333],PARAMETER[\"central_meridian\",30],PARAMETER[");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "\"false_easting\",27500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        ",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22193\"]]");
-    p = add_epsg_def (filter, first, last, 22194, "epsg", 22194,
-        "Campo Inchauspe / Argentina 4");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6115\"]]");
+    p = add_epsg_def (filter, first, last, 6116, "epsg", 6116,
+        "WGS 84 / EPSG Arctic zone 1-29");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0");
+        "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "3711833333333 +lon_0=90 +x_0=29500000 +y_0=1500000 +datu");
     add_proj4text (p, 2,
-        "_defs");
+        "m=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 4\",GEOGCS[\"Campo ");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 1-29\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",4500000],PARAMETE");
+        "833333333],PARAMETER[\"central_meridian\",90],PARAMETER[");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "\"false_easting\",29500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        ",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22194\"]]");
-    p = add_epsg_def (filter, first, last, 22195, "epsg", 22195,
-        "Campo Inchauspe / Argentina 5");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6116\"]]");
+    p = add_epsg_def (filter, first, last, 6117, "epsg", 6117,
+        "WGS 84 / EPSG Arctic zone 1-31");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0");
+        "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "3711833333333 +lon_0=150 +x_0=31500000 +y_0=1500000 +dat");
     add_proj4text (p, 2,
-        "_defs");
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 5\",GEOGCS[\"Campo ");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 1-31\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale_f");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",5500000],PARAMETE");
+        "833333333],PARAMETER[\"central_meridian\",150],PARAMETER");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "[\"false_easting\",31500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        ",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22195\"]]");
-    p = add_epsg_def (filter, first, last, 22196, "epsg", 22196,
-        "Campo Inchauspe / Argentina 6");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6117\"]]");
+    p = add_epsg_def (filter, first, last, 6118, "epsg", 6118,
+        "WGS 84 / EPSG Arctic zone 1-21");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0");
+        "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "3711833333333 +lon_0=-150 +x_0=21500000 +y_0=1500000 +da");
     add_proj4text (p, 2,
-        "_defs");
+        "tum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 6\",GEOGCS[\"Campo ");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 1-21\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "_parallel_1\",87],PARAMETER[\"standard_parallel_2\",83.6");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",85.43711");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",6500000],PARAMETE");
+        "833333333],PARAMETER[\"central_meridian\",-150],PARAMETE");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "R[\"false_easting\",21500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        "\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22196\"]]");
-    p = add_epsg_def (filter, first, last, 22197, "epsg", 22197,
-        "Campo Inchauspe / Argentina 7");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"6118\"]]");
+    p = add_epsg_def (filter, first, last, 6119, "epsg", 6119,
+        "WGS 84 / EPSG Arctic zone 2-28");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
+        "333 +lat_0=82.05842488888888 +lon_0=133 +x_0=28500000 +y");
     add_proj4text (p, 2,
-        "_defs");
+        "_0=2500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Campo Inchauspe / Argentina 7\",GEOGCS[\"Campo ");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 2-28\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
+        "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale_f");
+        "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "actor\",1],PARAMETER[\"false_easting\",7500000],PARAMETE");
+        "igin\",82.05842488888888],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        ",133],PARAMETER[\"false_easting\",28500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR");
+        "false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"22197\"]]");
-    p = add_epsg_def (filter, first, last, 22234, "epsg", 22234,
-        "Cape / UTM zone 34S");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6119\"]]");
+    p = add_epsg_def (filter, first, last, 6120, "epsg", 6120,
+        "WGS 84 / EPSG Arctic zone 2-10");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=82.05842488888888 +lon_0=166 +x_0=10500000 +y");
+    add_proj4text (p, 2,
+        "_0=2500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / UTM zone 34S\",GEOGCS[\"Cape\",DATUM[\"C");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 2-10\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "igin\",82.05842488888888],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        ",166],PARAMETER[\"false_easting\",10500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22234\"]]");
-    p = add_epsg_def (filter, first, last, 22235, "epsg", 22235,
-        "Cape / UTM zone 35S");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6120\"]]");
+    p = add_epsg_def (filter, first, last, 6121, "epsg", 6121,
+        "WGS 84 / EPSG Arctic zone 2-12");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663");
+        "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333");
     add_proj4text (p, 1,
-        "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=82.05842488888888 +lon_0=-154 +x_0=12500000 +");
+    add_proj4text (p, 2,
+        "y_0=2500000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / UTM zone 35S\",GEOGCS[\"Cape\",DATUM[\"C");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 2-12\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "_parallel_1\",83.66666666666667],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "rallel_2\",80.33333333333333],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "igin\",82.05842488888888],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        ",-154],PARAMETER[\"false_easting\",12500000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "false_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"22235\"]]");
-    p = add_epsg_def (filter, first, last, 22236, "epsg", 22236,
-        "Cape / UTM zone 36S (deprecated)");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6121\"]]");
+    p = add_epsg_def (filter, first, last, 6122, "epsg", 6122,
+        "WGS 84 / EPSG Arctic zone 3-21");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs");
+        "0733752777778 +lon_0=176 +x_0=21500000 +y_0=3500000 +dat");
+    add_proj4text (p, 2,
+        "um=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / UTM zone 36S (deprecated)\",GEOGCS[\"Cap");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 3-21\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "e\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (Arc)\",637824");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "9.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PR");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
+        "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0");
+        "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "752777778],PARAMETER[\"central_meridian\",176],PARAMETER");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "[\"false_easting\",21500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"22236\"]]");
-    p = add_epsg_def (filter, first, last, 22275, "epsg", 22275,
-        "Cape / Lo15");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6122\"]]");
+    p = add_epsg_def (filter, first, last, 6123, "epsg", 6123,
+        "WGS 84 / EPSG Arctic zone 3-23");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
+        "0733752777778 +lon_0=-153 +x_0=23500000 +y_0=3500000 +da");
     add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "tum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo15\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 3-23\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "_parallel_1\",80.33333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "central_meridian\",15],PARAMETER[\"scale_factor\",1],PAR");
+        "rallel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "752777778],PARAMETER[\"central_meridian\",-153],PARAMETE");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "R[\"false_easting\",23500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22275");
+        "\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22277, "epsg", 22277,
-        "Cape / Lo17");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"6123\"]]");
+    p = add_epsg_def (filter, first, last, 6124, "epsg", 6124,
+        "WGS 84 / EPSG Arctic zone 4-12");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
+        "6440330555556 +lon_0=-155 +x_0=12500000 +y_0=4500000 +da");
     add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "tum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo17\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"WGS 84 / EPSG Arctic zone 4-12\",GEOGCS[\"WGS 8");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "_parallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6");
     add_srs_wkt (p, 8,
-        "central_meridian\",17],PARAMETER[\"scale_factor\",1],PAR");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",75.36440");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "330555556],PARAMETER[\"central_meridian\",-155],PARAMETE");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "R[\"false_easting\",12500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22277");
+        "\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22279, "epsg", 22279,
-        "Cape / Lo19");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"6124\"]]");
+    p = add_epsg_def (filter, first, last, 6125, "epsg", 6125,
+        "ETRS89 / EPSG Arctic zone 5-47");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
+        "333 +lat_0=72.02500919444445 +lon_0=-5 +x_0=47500000 +y_");
     add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo19\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"ETRS89 / EPSG Arctic zone 5-47\",GEOGCS[\"ETRS8");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "9\",DATUM[\"European_Terrestrial_Reference_System_1989\"");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJE");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "central_meridian\",19],PARAMETER[\"scale_factor\",1],PAR");
+        "ard_parallel_1\",73.66666666666667],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "_parallel_2\",70.33333333333333],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "_origin\",72.02500919444445],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22279");
+        "n\",-5],PARAMETER[\"false_easting\",47500000],PARAMETER[");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22281, "epsg", 22281,
-        "Cape / Lo21");
+        "\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6125\"]]");
+    p = add_epsg_def (filter, first, last, 6128, "epsg", 6128,
+        "Grand Cayman National Grid 1959");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.3");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
-    add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "79,-27.584,-7.862,8.163,6.042,-13.925 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo21\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"Grand Cayman National Grid 1959\",GEOGCS[\"GCGD");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "59\",DATUM[\"Grand_Cayman_Geodetic_Datum_1959\",SPHEROID");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "EPSG\",\"7008\"]],TOWGS84[-179.483,-69.379,-27.584,-7.86");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "2,8.163,6.042,-13.925],AUTHORITY[\"EPSG\",\"6723\"]],PRI");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"4723\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 8,
-        "central_meridian\",21],PARAMETER[\"scale_factor\",1],PAR");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "R[\"central_meridian\",-81],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ".9996],PARAMETER[\"false_easting\",1640419.9475],PARAMET");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22281");
+        "ER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22283, "epsg", 22283,
-        "Cape / Lo23");
+        "\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 13,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"6128\"]]");
+    p = add_epsg_def (filter, first, last, 6129, "epsg", 6129,
+        "Sister Islands National Grid 1961");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
-    add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "180.304,-0.393,-2.323,2.96,-24.081 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo23\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"Sister Islands National Grid 1961\",GEOGCS[\"SI");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "GD61\",DATUM[\"Sister_Islands_Geodetic_Datum_1961\",SPHE");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "ROID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORI");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "TY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644,180.304,-0.");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",\"6726\"]],P");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "\"]],AUTHORITY[\"EPSG\",\"4726\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 8,
-        "central_meridian\",23],PARAMETER[\"scale_factor\",1],PAR");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "ETER[\"central_meridian\",-81],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ",0.9996],PARAMETER[\"false_easting\",1640419.9475],PARAM");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22283");
+        "ETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORIT");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22285, "epsg", 22285,
-        "Cape / Lo25");
+        "Y[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+    add_srs_wkt (p, 13,
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"6129\"]]");
+    p = add_epsg_def (filter, first, last, 6135, "epsg", 6135,
+        "CIGD11");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
-    add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo25\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "GEOGCS[\"CIGD11\",DATUM[\"Cayman_Islands_Geodetic_Datum_");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "Y[\"EPSG\",\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
-    add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
-    add_srs_wkt (p, 8,
-        "central_meridian\",25],PARAMETER[\"scale_factor\",1],PAR");
-    add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
-    add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
-    add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22285");
-    add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22287, "epsg", 22287,
-        "Cape / Lo27");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6135\"]]");
+    p = add_epsg_def (filter, first, last, 6141, "epsg", 6141,
+        "Cayman Islands National Grid 2011 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
+        ".33333333333333 +lon_0=80.56666666666666 +x_0=899160 +y_");
     add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo27\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"Cayman Islands National Grid 2011 (deprecated)\"");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        ",GEOGCS[\"CIGD11\",DATUM[\"Cayman_Islands_Geodetic_Datum");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "TY[\"EPSG\",\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6135\"");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "central_meridian\",27],PARAMETER[\"scale_factor\",1],PAR");
+        "[\"standard_parallel_1\",19.33333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "standard_parallel_2\",19.7],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "in\",19.33333333333333],PARAMETER[\"central_meridian\",8");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22287");
+        "0.56666666666666],PARAMETER[\"false_easting\",2950000],P");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22289, "epsg", 22289,
-        "Cape / Lo29");
+        "ARAMETER[\"false_northing\",1900000],UNIT[\"foot\",0.304");
+    add_srs_wkt (p, 13,
+        "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],A");
+    add_srs_wkt (p, 14,
+        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6141\"]]");
+    p = add_epsg_def (filter, first, last, 6204, "epsg", 6204,
+        "Macedonian State Coordinate System");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=500000 +y_");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
+        "0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo29\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"Macedonian State Coordinate System\",GEOGCS[\"M");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "GI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",63");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "S84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "2\"]],AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",29],PARAMETER[\"scale_factor\",1],PAR");
+        "METER[\"central_meridian\",21],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22289");
+        "\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22291, "epsg", 22291,
-        "Cape / Lo31");
+        "\"EPSG\",\"6204\"]]");
+    p = add_epsg_def (filter, first, last, 6207, "epsg", 6207,
+        "Nepal 1981");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
-    add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "4=293.17,726.18,245.36,0,0,0,0 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo31\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "GEOGCS[\"Nepal 1981\",DATUM[\"Nepal_1981\",SPHEROID[\"Ev");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "erest 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTH");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "ORITY[\"EPSG\",\"7015\"]],TOWGS84[293.17,726.18,245.36,0");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"1111\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
-    add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
-    add_srs_wkt (p, 8,
-        "central_meridian\",31],PARAMETER[\"scale_factor\",1],PAR");
-    add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
-    add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
-    add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22291");
-    add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22293, "epsg", 22293,
-        "Cape / Lo33");
+        "EPSG\",\"6207\"]]");
+    p = add_epsg_def (filter, first, last, 6210, "epsg", 6210,
+        "SIRGAS 2000 / UTM zone 23N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis=");
+        "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
-    add_proj4text (p, 2,
-        "08,-292,0,0,0,0 +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Cape / Lo33\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
+        "PROJCS[\"SIRGAS 2000 / UTM zone 23N\",GEOGCS[\"SIRGAS 20");
     add_srs_wkt (p, 1,
-        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
     add_srs_wkt (p, 2,
-        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "central_meridian\",33],PARAMETER[\"scale_factor\",1],PAR");
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22293");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 12,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22332, "epsg", 22332,
-        "Carthage / UTM zone 32N");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "6210\"]]");
+    p = add_epsg_def (filter, first, last, 6211, "epsg", 6211,
+        "SIRGAS 2000 / UTM zone 24N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +datum=carthage +units=m +no_defs");
+        "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Carthage / UTM zone 32N\",GEOGCS[\"Carthage\",D");
+        "PROJCS[\"SIRGAS 2000 / UTM zone 24N\",GEOGCS[\"SIRGAS 20");
     add_srs_wkt (p, 1,
-        "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249");
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
     add_srs_wkt (p, 2,
-        ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS");
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
     add_srs_wkt (p, 4,
-        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9");
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"22332\"]]");
-    p = add_epsg_def (filter, first, last, 22391, "epsg", 22391,
-        "Carthage / Nord Tunisie");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "6211\"]]");
+    p = add_epsg_def (filter, first, last, 6316, "epsg", 6316,
+        "Macedonia State Coordinate System zone 7");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.99962554");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y");
     add_proj4text (p, 1,
-        "4 +x_0=500000 +y_0=300000 +datum=carthage +units=m +no_d");
+        "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=");
     add_proj4text (p, 2,
-        "efs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Carthage / Nord Tunisie\",GEOGCS[\"Carthage\",D");
+        "PROJCS[\"Macedonia State Coordinate System zone 7\",GEOG");
     add_srs_wkt (p, 1,
-        "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249");
+        "CS[\"MGI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 184");
     add_srs_wkt (p, 2,
-        ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS");
+        "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]");
     add_srs_wkt (p, 3,
-        "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI");
+        "],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"103");
     add_srs_wkt (p, 4,
-        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "1\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36]");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale_f");
+        "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "actor\",0.999625544],PARAMETER[\"false_easting\",500000]");
+        "actor\",0.9999],PARAMETER[\"false_easting\",7500000],PAR");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],A");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"22391\"]]");
-    p = add_epsg_def (filter, first, last, 22392, "epsg", 22392,
-        "Carthage / Sud Tunisie");
+        "UTHORITY[\"EPSG\",\"6316\"]]");
+    p = add_epsg_def (filter, first, last, 6318, "epsg", 6318,
+        "NAD83(2011)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.9996");
-    add_proj4text (p, 1,
-        "25769 +x_0=500000 +y_0=300000 +datum=carthage +units=m +");
-    add_proj4text (p, 2,
-        "no_defs");
+        "+proj=longlat +ellps=GRS80 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Carthage / Sud Tunisie\",GEOGCS[\"Carthage\",DA");
+        "GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Re");
     add_srs_wkt (p, 1,
-        "TUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.");
+        "ference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 2,
-        "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "4[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIM");
+        "\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
-    add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con");
-    add_srs_wkt (p, 7,
-        "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.");
-    add_srs_wkt (p, 8,
-        "3],PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale");
-    add_srs_wkt (p, 9,
-        "_factor\",0.999625769],PARAMETER[\"false_easting\",50000");
-    add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1");
-    add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
-    add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"22392\"]]");
-    p = add_epsg_def (filter, first, last, 22521, "epsg", 22521,
-        "Corrego Alegre 1970-72 / UTM zone 21S");
+        "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]]");
+    p = add_epsg_def (filter, first, last, 6322, "epsg", 6322,
+        "NAD83(PA11)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,");
-    add_proj4text (p, 1,
-        "-6,0,0,0,0 +units=m +no_defs");
+        "+proj=longlat +ellps=GRS80 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 21S\",GEOGCS[");
+        "GEOGCS[\"NAD83(PA11)\",DATUM[\"NAD83_National_Spatial_Re");
     add_srs_wkt (p, 1,
-        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
+        "ference_System_PA11\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 2,
-        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
+        "\",\"1117\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
-    add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
-    add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
-    add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]");
-    add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
-    add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
-    add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
-    add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"22521\"]]");
-    p = add_epsg_def (filter, first, last, 22522, "epsg", 22522,
-        "Corrego Alegre 1970-72 / UTM zone 22S");
+        "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6322\"]]");
+    p = add_epsg_def (filter, first, last, 6325, "epsg", 6325,
+        "NAD83(MA11)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,");
-    add_proj4text (p, 1,
-        "-6,0,0,0,0 +units=m +no_defs");
+        "+proj=longlat +ellps=GRS80 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 22S\",GEOGCS[");
+        "GEOGCS[\"NAD83(MA11)\",DATUM[\"NAD83_National_Spatial_Re");
     add_srs_wkt (p, 1,
-        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
+        "ference_System_MA11\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 2,
-        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
+        "\",\"1118\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
-    add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
-    add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
-    add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]");
-    add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
-    add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
-    add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
-    add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"22522\"]]");
-    p = add_epsg_def (filter, first, last, 22523, "epsg", 22523,
-        "Corrego Alegre 1970-72 / UTM zone 23S");
+        "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6325\"]]");
+    p = add_epsg_def (filter, first, last, 6328, "epsg", 6328,
+        "NAD83(2011) / UTM zone 59N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,");
-    add_proj4text (p, 1,
-        "-6,0,0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=59 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 23S\",GEOGCS[");
+        "PROJCS[\"NAD83(2011) / UTM zone 59N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]");
+        "R[\"central_meridian\",171],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"22523\"]]");
-    p = add_epsg_def (filter, first, last, 22524, "epsg", 22524,
-        "Corrego Alegre 1970-72 / UTM zone 24S");
+        ",AUTHORITY[\"EPSG\",\"6328\"]]");
+    p = add_epsg_def (filter, first, last, 6329, "epsg", 6329,
+        "NAD83(2011) / UTM zone 60N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,");
-    add_proj4text (p, 1,
-        "-6,0,0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=60 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 24S\",GEOGCS[");
+        "PROJCS[\"NAD83(2011) / UTM zone 60N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]");
+        "R[\"central_meridian\",177],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"22524\"]]");
-    p = add_epsg_def (filter, first, last, 22525, "epsg", 22525,
-        "Corrego Alegre 1970-72 / UTM zone 25S");
+        ",AUTHORITY[\"EPSG\",\"6329\"]]");
+    p = add_epsg_def (filter, first, last, 6330, "epsg", 6330,
+        "NAD83(2011) / UTM zone 1N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,");
-    add_proj4text (p, 1,
-        "-6,0,0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=1 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 25S\",GEOGCS[");
+        "PROJCS[\"NAD83(2011) / UTM zone 1N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]");
+        "[\"central_meridian\",-177],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"22525\"]]");
-    p = add_epsg_def (filter, first, last, 22700, "epsg", 22700,
-        "Deir ez Zor / Levant Zone");
+        ",AUTHORITY[\"EPSG\",\"6330\"]]");
+    p = add_epsg_def (filter, first, last, 6331, "epsg", 6331,
+        "NAD83(2011) / UTM zone 2N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.");
-    add_proj4text (p, 1,
-        "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 ");
-    add_proj4text (p, 2,
-        "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=2 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Deir ez Zor / Levant Zone\",GEOGCS[\"Deir ez Zo");
+        "PROJCS[\"NAD83(2011) / UTM zone 2N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "r\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)\"");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"EP");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "SG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PROJE");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "ude_of_origin\",34.65],PARAMETER[\"central_meridian\",37");
+        "[\"central_meridian\",-171],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        ".35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"f");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "alse_easting\",300000],PARAMETER[\"false_northing\",3000");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22700");
-    add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 22770, "epsg", 22770,
-        "Deir ez Zor / Syria Lambert");
+        ",AUTHORITY[\"EPSG\",\"6331\"]]");
+    p = add_epsg_def (filter, first, last, 6332, "epsg", 6332,
+        "NAD83(2011) / UTM zone 3N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.");
-    add_proj4text (p, 1,
-        "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 ");
-    add_proj4text (p, 2,
-        "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=3 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Deir ez Zor / Syria Lambert\",GEOGCS[\"Deir ez ");
+        "PROJCS[\"NAD83(2011) / UTM zone 3N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PR");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "titude_of_origin\",34.65],PARAMETER[\"central_meridian\"");
+        "[\"central_meridian\",-165],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        ",37.35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "\"false_easting\",300000],PARAMETER[\"false_northing\",3");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22");
-    add_srs_wkt (p, 13,
-        "770\"]]");
-    p = add_epsg_def (filter, first, last, 22780, "epsg", 22780,
-        "Deir ez Zor / Levant Stereographic");
+        ",AUTHORITY[\"EPSG\",\"6332\"]]");
+    p = add_epsg_def (filter, first, last, 6333, "epsg", 6333,
+        "NAD83(2011) / UTM zone 4N");
     add_proj4text (p, 0,
-        "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0=");
-    add_proj4text (p, 1,
-        "0 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532");
-    add_proj4text (p, 2,
-        ",238.69,0,0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Deir ez Zor / Levant Stereographic\",GEOGCS[\"D");
+        "PROJCS[\"NAD83(2011) / UTM zone 4N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "eir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 188");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\"");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        ",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHO");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",34.2],PARAMETER[\"central_meridian\"");
+        "[\"central_meridian\",-159],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        ",39.15],PARAMETER[\"scale_factor\",0.9995341],PARAMETER[");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22780\"]]");
-    p = add_epsg_def (filter, first, last, 22832, "epsg", 22832,
-        "Douala / UTM zone 32N (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"6333\"]]");
+    p = add_epsg_def (filter, first, last, 6334, "epsg", 6334,
+        "NAD83(2011) / UTM zone 5N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_");
-    add_proj4text (p, 1,
-        "defs");
+        "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Douala / UTM zone 32N (deprecated)\",GEOGCS[\"D");
+        "PROJCS[\"NAD83(2011) / UTM zone 5N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "ouala\",DATUM[\"Douala\",SPHEROID[\"Clarke 1880 (IGN)\",");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Greenwich\",0,A");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        ",\"4228\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "[\"central_meridian\",-153],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "22832\"]]");
-    p = add_epsg_def (filter, first, last, 22991, "epsg", 22991,
-        "Egypt 1907 / Blue Belt");
+        ",AUTHORITY[\"EPSG\",\"6334\"]]");
+    p = add_epsg_def (filter, first, last, 6335, "epsg", 6335,
+        "NAD83(2011) / UTM zone 6N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=11");
-    add_proj4text (p, 1,
-        "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit");
-    add_proj4text (p, 2,
-        "s=m +no_defs");
+        "+proj=utm +zone=6 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Egypt 1907 / Blue Belt\",GEOGCS[\"Egypt 1907\",");
+        "PROJCS[\"NAD83(2011) / UTM zone 6N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,2");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwic");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "eridian\",35],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+        "[\"central_meridian\",-147],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "false_easting\",300000],PARAMETER[\"false_northing\",110");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "EPSG\",\"22991\"]]");
-    p = add_epsg_def (filter, first, last, 22992, "epsg", 22992,
-        "Egypt 1907 / Red Belt");
+        ",AUTHORITY[\"EPSG\",\"6335\"]]");
+    p = add_epsg_def (filter, first, last, 6336, "epsg", 6336,
+        "NAD83(2011) / UTM zone 7N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81");
-    add_proj4text (p, 1,
-        "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Egypt 1907 / Red Belt\",GEOGCS[\"Egypt 1907\",D");
+        "PROJCS[\"NAD83(2011) / UTM zone 7N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "ATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,29");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "8.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,0");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        ",0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwich");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "eridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+        "[\"central_meridian\",-141],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "false_easting\",615000],PARAMETER[\"false_northing\",810");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "EPSG\",\"22992\"]]");
-    p = add_epsg_def (filter, first, last, 22993, "epsg", 22993,
-        "Egypt 1907 / Purple Belt");
+        ",AUTHORITY[\"EPSG\",\"6336\"]]");
+    p = add_epsg_def (filter, first, last, 6337, "epsg", 6337,
+        "NAD83(2011) / UTM zone 8N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=20");
-    add_proj4text (p, 1,
-        "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Egypt 1907 / Purple Belt\",GEOGCS[\"Egypt 1907\"");
+        "PROJCS[\"NAD83(2011) / UTM zone 8N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        ",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwi");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"central");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[");
+        "[\"central_meridian\",-135],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "\"false_easting\",700000],PARAMETER[\"false_northing\",2");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"22993\"]]");
-    p = add_epsg_def (filter, first, last, 22994, "epsg", 22994,
-        "Egypt 1907 / Extended Purple Belt");
+        ",AUTHORITY[\"EPSG\",\"6337\"]]");
+    p = add_epsg_def (filter, first, last, 6338, "epsg", 6338,
+        "NAD83(2011) / UTM zone 9N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=12");
-    add_proj4text (p, 1,
-        "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit");
-    add_proj4text (p, 2,
-        "s=m +no_defs");
+        "+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Egypt 1907 / Extended Purple Belt\",GEOGCS[\"Eg");
+        "PROJCS[\"NAD83(2011) / UTM zone 9N\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "ypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\"");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        ",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-13");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "0,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mer");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",27],PARAMETER[\"scale_factor\",1],P");
+        "[\"central_meridian\",-129],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "thing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"22994\"]]");
-    p = add_epsg_def (filter, first, last, 23028, "epsg", 23028,
-        "ED50 / UTM zone 28N");
+        ",AUTHORITY[\"EPSG\",\"6338\"]]");
+    p = add_epsg_def (filter, first, last, 6339, "epsg", 6339,
+        "NAD83(2011) / UTM zone 10N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 28N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 10N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "R[\"central_meridian\",-123],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"23028\"]]");
-    p = add_epsg_def (filter, first, last, 23029, "epsg", 23029,
-        "ED50 / UTM zone 29N");
+        "H],AUTHORITY[\"EPSG\",\"6339\"]]");
+    p = add_epsg_def (filter, first, last, 6340, "epsg", 6340,
+        "NAD83(2011) / UTM zone 11N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 29N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 11N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-117],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23029\"]]");
-    p = add_epsg_def (filter, first, last, 23030, "epsg", 23030,
-        "ED50 / UTM zone 30N");
+        "H],AUTHORITY[\"EPSG\",\"6340\"]]");
+    p = add_epsg_def (filter, first, last, 6341, "epsg", 6341,
+        "NAD83(2011) / UTM zone 12N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 30N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 12N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-111],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23030\"]]");
-    p = add_epsg_def (filter, first, last, 23031, "epsg", 23031,
-        "ED50 / UTM zone 31N");
+        "H],AUTHORITY[\"EPSG\",\"6341\"]]");
+    p = add_epsg_def (filter, first, last, 6342, "epsg", 6342,
+        "NAD83(2011) / UTM zone 13N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 31N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 13N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",3],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "R[\"central_meridian\",-105],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"23031\"]]");
-    p = add_epsg_def (filter, first, last, 23032, "epsg", 23032,
-        "ED50 / UTM zone 32N");
+        "H],AUTHORITY[\"EPSG\",\"6342\"]]");
+    p = add_epsg_def (filter, first, last, 6343, "epsg", 6343,
+        "NAD83(2011) / UTM zone 14N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 32N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 14N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM");
+        "R[\"central_meridian\",-99],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"23032\"]]");
-    p = add_epsg_def (filter, first, last, 23033, "epsg", 23033,
-        "ED50 / UTM zone 33N");
+        ",AUTHORITY[\"EPSG\",\"6343\"]]");
+    p = add_epsg_def (filter, first, last, 6344, "epsg", 6344,
+        "NAD83(2011) / UTM zone 15N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 33N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 15N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-93],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23033\"]]");
+        ",AUTHORITY[\"EPSG\",\"6344\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_29.c b/src/srsinit/epsg_inlined_29.c
index 20d2321..d34c2cf 100644
--- a/src/srsinit/epsg_inlined_29.c
+++ b/src/srsinit/epsg_inlined_29.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3390 +52,3506 @@ initialize_epsg_29 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 23034, "epsg", 23034,
-        "ED50 / UTM zone 34N");
+    p = add_epsg_def (filter, first, last, 6345, "epsg", 6345,
+        "NAD83(2011) / UTM zone 16N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 34N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 16N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-87],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23034\"]]");
-    p = add_epsg_def (filter, first, last, 23035, "epsg", 23035,
-        "ED50 / UTM zone 35N");
+        ",AUTHORITY[\"EPSG\",\"6345\"]]");
+    p = add_epsg_def (filter, first, last, 6346, "epsg", 6346,
+        "NAD83(2011) / UTM zone 17N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 35N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 17N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-81],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23035\"]]");
-    p = add_epsg_def (filter, first, last, 23036, "epsg", 23036,
-        "ED50 / UTM zone 36N");
+        ",AUTHORITY[\"EPSG\",\"6346\"]]");
+    p = add_epsg_def (filter, first, last, 6347, "epsg", 6347,
+        "NAD83(2011) / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 36N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 18N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-75],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23036\"]]");
-    p = add_epsg_def (filter, first, last, 23037, "epsg", 23037,
-        "ED50 / UTM zone 37N");
+        ",AUTHORITY[\"EPSG\",\"6347\"]]");
+    p = add_epsg_def (filter, first, last, 6348, "epsg", 6348,
+        "NAD83(2011) / UTM zone 19N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=intl +towgs84=-87,-98,-121,0,0");
-    add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 37N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / UTM zone 19N\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "R[\"central_meridian\",-69],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23037\"]]");
-    p = add_epsg_def (filter, first, last, 23038, "epsg", 23038,
-        "ED50 / UTM zone 38N");
+        ",AUTHORITY[\"EPSG\",\"6348\"]]");
+    p = add_epsg_def (filter, first, last, 6350, "epsg", 6350,
+        "NAD83(2011) / Conus Albers");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=intl +towgs84=-87,-98,-121,0,0");
+        "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / UTM zone 38N\",GEOGCS[\"ED50\",DATUM[\"E");
+        "PROJCS[\"NAD83(2011) / Conus Albers\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Coni");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "c_Equal_Area\"],PARAMETER[\"standard_parallel_1\",29.5],");
     add_srs_wkt (p, 8,
-        "l_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        "tude_of_center\",23],PARAMETER[\"longitude_of_center\",-");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "96],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23038\"]]");
-    p = add_epsg_def (filter, first, last, 23090, "epsg", 23090,
-        "ED50 / TM 0 N");
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"6350\"]]");
+    p = add_epsg_def (filter, first, last, 6351, "epsg", 6351,
+        "NAD83(2011) / EPSG Arctic zone 5-29");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n");
+        "333 +lat_0=72.02500919444445 +lon_0=-163 +x_0=29500000 +");
     add_proj4text (p, 2,
-        "o_defs");
+        "y_0=5500000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / TM 0 N\",GEOGCS[\"ED50\",DATUM[\"Europea");
+        "PROJCS[\"NAD83(2011) / EPSG Arctic zone 5-29\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "n_Datum_1950\",SPHEROID[\"International 1924\",6378388,2");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "SG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "dian\",0],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "el_1\",73.66666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "2\",70.33333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "72.02500919444445],PARAMETER[\"central_meridian\",-163],");
     add_srs_wkt (p, 11,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+        "PARAMETER[\"false_easting\",29500000],PARAMETER[\"false_");
     add_srs_wkt (p, 12,
-        ",\"23090\"]]");
-    p = add_epsg_def (filter, first, last, 23095, "epsg", 23095,
-        "ED50 / TM 5 NE");
+        "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+    add_srs_wkt (p, 14,
+        "H],AUTHORITY[\"EPSG\",\"6351\"]]");
+    p = add_epsg_def (filter, first, last, 6352, "epsg", 6352,
+        "NAD83(2011) / EPSG Arctic zone 5-31");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0");
+        "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333");
     add_proj4text (p, 1,
-        "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n");
+        "333 +lat_0=72.02500919444445 +lon_0=-147 +x_0=31500000 +");
     add_proj4text (p, 2,
-        "o_defs");
+        "y_0=5500000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ED50 / TM 5 NE\",GEOGCS[\"ED50\",DATUM[\"Europe");
+        "PROJCS[\"NAD83(2011) / EPSG Arctic zone 5-31\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "ridian\",5],PARAMETER[\"scale_factor\",0.9996],PARAMETER");
+        "el_1\",73.66666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
+        "2\",70.33333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "72.02500919444445],PARAMETER[\"central_meridian\",-147],");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "PARAMETER[\"false_easting\",31500000],PARAMETER[\"false_");
     add_srs_wkt (p, 12,
-        "G\",\"23095\"]]");
-    p = add_epsg_def (filter, first, last, 23239, "epsg", 23239,
-        "Fahud / UTM zone 39N");
+        "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+    add_srs_wkt (p, 14,
+        "H],AUTHORITY[\"EPSG\",\"6352\"]]");
+    p = add_epsg_def (filter, first, last, 6353, "epsg", 6353,
+        "NAD83(2011) / EPSG Arctic zone 6-14");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-346,-1,224,0,");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "8747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Fahud / UTM zone 39N\",GEOGCS[\"Fahud\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / EPSG Arctic zone 6-14\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "dian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[");
+        "el_1\",70.33333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
+        "2\",67],PARAMETER[\"latitude_of_origin\",68.687475555555");
     add_srs_wkt (p, 10,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "57],PARAMETER[\"central_meridian\",-165],PARAMETER[\"fal");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "se_easting\",14500000],PARAMETER[\"false_northing\",6500");
     add_srs_wkt (p, 12,
-        "G\",\"23239\"]]");
-    p = add_epsg_def (filter, first, last, 23240, "epsg", 23240,
-        "Fahud / UTM zone 40N");
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 14,
+        "EPSG\",\"6353\"]]");
+    p = add_epsg_def (filter, first, last, 6354, "epsg", 6354,
+        "NAD83(2011) / EPSG Arctic zone 6-16");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-346,-1,224,0,");
+        "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "8747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Fahud / UTM zone 40N\",GEOGCS[\"Fahud\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / EPSG Arctic zone 6-16\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "dian\",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[");
+        "el_1\",70.33333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
+        "2\",67],PARAMETER[\"latitude_of_origin\",68.687475555555");
     add_srs_wkt (p, 10,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "57],PARAMETER[\"central_meridian\",-147],PARAMETER[\"fal");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "se_easting\",16500000],PARAMETER[\"false_northing\",6500");
     add_srs_wkt (p, 12,
-        "G\",\"23240\"]]");
-    p = add_epsg_def (filter, first, last, 23433, "epsg", 23433,
-        "Garoua / UTM zone 33N (deprecated)");
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 14,
+        "EPSG\",\"6354\"]]");
+    p = add_epsg_def (filter, first, last, 6355, "epsg", 6355,
+        "NAD83(2011) / Alabama East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_");
+        "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "defs");
+        "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Garoua / UTM zone 33N (deprecated)\",GEOGCS[\"G");
+        "PROJCS[\"NAD83(2011) / Alabama East\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "aroua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 1880 (IGN)\",");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Greenwich\",0,A");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",\"4234\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",30.5],PARAM");
     add_srs_wkt (p, 8,
-        "\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "ETER[\"central_meridian\",-85.83333333333333],PARAMETER[");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "\"scale_factor\",0.99996],PARAMETER[\"false_easting\",20");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "\"23433\"]]");
-    p = add_epsg_def (filter, first, last, 23700, "epsg", 23700,
-        "HD72 / EOV");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6355\"]]");
+    p = add_epsg_def (filter, first, last, 6356, "epsg", 6356,
+        "NAD83(2011) / Alabama West");
     add_proj4text (p, 0,
-        "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177");
+        "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6");
     add_proj4text (p, 1,
-        "777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67");
-    add_proj4text (p, 2,
-        " +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +no_defs");
+        "00000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"HD72 / EOV\",GEOGCS[\"HD72\",DATUM[\"Hungarian_");
+        "PROJCS[\"NAD83(2011) / Alabama West\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "Datum_1972\",SPHEROID[\"GRS 1967\",6378160,298.247167427");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        ",AUTHORITY[\"EPSG\",\"7036\"]],TOWGS84[52.17,-71.82,-14.");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "9,0,0,0,0],AUTHORITY[\"EPSG\",\"6237\"]],PRIMEM[\"Greenw");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"4237\"]],PROJECTION[\"Hotine_Oblique_Mercato");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "r\"],PARAMETER[\"latitude_of_center\",47.14439372222222]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAMET");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"longitude_of_center\",19.04857177777778],PA");
+        "ER[\"central_meridian\",-87.5],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "RAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_angle");
+        ",0.999933333],PARAMETER[\"false_easting\",600000],PARAME");
     add_srs_wkt (p, 10,
-        "\",90],PARAMETER[\"scale_factor\",0.99993],PARAMETER[\"f");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "alse_easting\",650000],PARAMETER[\"false_northing\",2000");
+        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
-    add_srs_wkt (p, 13,
-        "\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"23700");
-    add_srs_wkt (p, 14,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 23830, "epsg", 23830,
-        "DGN95 / Indonesia TM-3 zone 46.2");
+        "ORITY[\"EPSG\",\"6356\"]]");
+    p = add_epsg_def (filter, first, last, 6362, "epsg", 6362,
+        "Mexico ITRF92 / LCC");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +");
+        "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 ");
     add_proj4text (p, 1,
-        "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m");
+        "+x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 ");
     add_proj4text (p, 2,
-        " +no_defs");
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 46.2\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF92 / LCC\",GEOGCS[\"Mexico ITRF92\",");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6378137,29");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "EPSG\",\"4483\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "SP\"],PARAMETER[\"standard_parallel_1\",17.5],PARAMETER[");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",94.5],PARAMETER[\"scale_facto");
+        "\"standard_parallel_2\",29.5],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 9,
-        "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE");
+        "igin\",12],PARAMETER[\"central_meridian\",-102],PARAMETE");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY");
+        "R[\"false_easting\",2500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"23830\"]]");
-    p = add_epsg_def (filter, first, last, 23831, "epsg", 23831,
-        "DGN95 / Indonesia TM-3 zone 47.1");
+        "RITY[\"EPSG\",\"6362\"]]");
+    p = add_epsg_def (filter, first, last, 6365, "epsg", 6365,
+        "Mexico ITRF2008");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +");
+        "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de");
     add_proj4text (p, 1,
-        "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m");
-    add_proj4text (p, 2,
-        " +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.1\",GEOGCS[\"DGN");
+        "GEOGCS[\"Mexico ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPH");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",\"1120\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
-    add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
-    add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
-    add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",97.5],PARAMETER[\"scale_facto");
-    add_srs_wkt (p, 9,
-        "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE");
-    add_srs_wkt (p, 10,
-        "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY");
-    add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"23831\"]]");
-    p = add_epsg_def (filter, first, last, 23832, "epsg", 23832,
-        "DGN95 / Indonesia TM-3 zone 47.2");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6365\"]]");
+    p = add_epsg_def (filter, first, last, 6366, "epsg", 6366,
+        "Mexico ITRF2008 / UTM zone 11N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 ");
+        "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.2\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / UTM zone 11N\",GEOGCS[\"Mexic");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",100.5],PARAMETER[\"scale_fact");
+        "ER[\"central_meridian\",-117],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23832\"]]");
-    p = add_epsg_def (filter, first, last, 23833, "epsg", 23833,
-        "DGN95 / Indonesia TM-3 zone 48.1");
+        "H],AUTHORITY[\"EPSG\",\"6366\"]]");
+    p = add_epsg_def (filter, first, last, 6367, "epsg", 6367,
+        "Mexico ITRF2008 / UTM zone 12N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 ");
+        "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.1\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / UTM zone 12N\",GEOGCS[\"Mexic");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",103.5],PARAMETER[\"scale_fact");
+        "ER[\"central_meridian\",-111],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23833\"]]");
-    p = add_epsg_def (filter, first, last, 23834, "epsg", 23834,
-        "DGN95 / Indonesia TM-3 zone 48.2");
+        "H],AUTHORITY[\"EPSG\",\"6367\"]]");
+    p = add_epsg_def (filter, first, last, 6368, "epsg", 6368,
+        "Mexico ITRF2008 / UTM zone 13N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 ");
+        "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.2\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / UTM zone 13N\",GEOGCS[\"Mexic");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",106.5],PARAMETER[\"scale_fact");
+        "ER[\"central_meridian\",-105],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23834\"]]");
-    p = add_epsg_def (filter, first, last, 23835, "epsg", 23835,
-        "DGN95 / Indonesia TM-3 zone 49.1");
+        "H],AUTHORITY[\"EPSG\",\"6368\"]]");
+    p = add_epsg_def (filter, first, last, 6369, "epsg", 6369,
+        "Mexico ITRF2008 / UTM zone 14N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 ");
+        "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.1\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / UTM zone 14N\",GEOGCS[\"Mexic");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",109.5],PARAMETER[\"scale_fact");
+        "ER[\"central_meridian\",-99],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23835\"]]");
-    p = add_epsg_def (filter, first, last, 23836, "epsg", 23836,
-        "DGN95 / Indonesia TM-3 zone 49.2");
+        "H],AUTHORITY[\"EPSG\",\"6369\"]]");
+    p = add_epsg_def (filter, first, last, 6370, "epsg", 6370,
+        "Mexico ITRF2008 / UTM zone 15N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 ");
+        "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.2\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / UTM zone 15N\",GEOGCS[\"Mexic");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",112.5],PARAMETER[\"scale_fact");
+        "ER[\"central_meridian\",-93],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23836\"]]");
-    p = add_epsg_def (filter, first, last, 23837, "epsg", 23837,
-        "DGN95 / Indonesia TM-3 zone 50.1");
+        "H],AUTHORITY[\"EPSG\",\"6370\"]]");
+    p = add_epsg_def (filter, first, last, 6371, "epsg", 6371,
+        "Mexico ITRF2008 / UTM zone 16N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 ");
+        "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.1\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / UTM zone 16N\",GEOGCS[\"Mexic");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "]],AUTHORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",115.5],PARAMETER[\"scale_fact");
+        "ER[\"central_meridian\",-87],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23837\"]]");
-    p = add_epsg_def (filter, first, last, 23838, "epsg", 23838,
-        "DGN95 / Indonesia TM-3 zone 50.2");
+        "H],AUTHORITY[\"EPSG\",\"6371\"]]");
+    p = add_epsg_def (filter, first, last, 6372, "epsg", 6372,
+        "Mexico ITRF2008 / LCC");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 ");
+        "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 ");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "+x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 ");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.2\",GEOGCS[\"DGN");
+        "PROJCS[\"Mexico ITRF2008 / LCC\",GEOGCS[\"Mexico ITRF200");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "8\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "ITY[\"EPSG\",\"6365\"]],PROJECTION[\"Lambert_Conformal_C");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",17.5],PARA");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",118.5],PARAMETER[\"scale_fact");
+        "METER[\"standard_parallel_2\",29.5],PARAMETER[\"latitude");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "_of_origin\",12],PARAMETER[\"central_meridian\",-102],PA");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "RAMETER[\"false_easting\",2500000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23838\"]]");
-    p = add_epsg_def (filter, first, last, 23839, "epsg", 23839,
-        "DGN95 / Indonesia TM-3 zone 51.1");
+        "],AUTHORITY[\"EPSG\",\"6372\"]]");
+    p = add_epsg_def (filter, first, last, 6381, "epsg", 6381,
+        "UCS-2000 / Ukraine TM zone 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.1\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 7\",GEOGCS[\"UCS-200");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\",");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",121.5],PARAMETER[\"scale_fact");
+        "AMETER[\"central_meridian\",21],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23839\"]]");
-    p = add_epsg_def (filter, first, last, 23840, "epsg", 23840,
-        "DGN95 / Indonesia TM-3 zone 51.2");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6381\"]]");
+    p = add_epsg_def (filter, first, last, 6382, "epsg", 6382,
+        "UCS-2000 / Ukraine TM zone 8");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.2\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 8\",GEOGCS[\"UCS-200");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\",");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",124.5],PARAMETER[\"scale_fact");
+        "AMETER[\"central_meridian\",24],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23840\"]]");
-    p = add_epsg_def (filter, first, last, 23841, "epsg", 23841,
-        "DGN95 / Indonesia TM-3 zone 52.1");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6382\"]]");
+    p = add_epsg_def (filter, first, last, 6383, "epsg", 6383,
+        "UCS-2000 / Ukraine TM zone 9");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.1\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 9\",GEOGCS[\"UCS-200");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\",");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",127.5],PARAMETER[\"scale_fact");
+        "AMETER[\"central_meridian\",27],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23841\"]]");
-    p = add_epsg_def (filter, first, last, 23842, "epsg", 23842,
-        "DGN95 / Indonesia TM-3 zone 52.2");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6383\"]]");
+    p = add_epsg_def (filter, first, last, 6384, "epsg", 6384,
+        "UCS-2000 / Ukraine TM zone 10");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.2\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 10\",GEOGCS[\"UCS-20");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",130.5],PARAMETER[\"scale_fact");
+        "RAMETER[\"central_meridian\",30],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23842\"]]");
-    p = add_epsg_def (filter, first, last, 23843, "epsg", 23843,
-        "DGN95 / Indonesia TM-3 zone 53.1");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6384\"]]");
+    p = add_epsg_def (filter, first, last, 6385, "epsg", 6385,
+        "UCS-2000 / Ukraine TM zone 11");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.1\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 11\",GEOGCS[\"UCS-20");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",133.5],PARAMETER[\"scale_fact");
+        "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23843\"]]");
-    p = add_epsg_def (filter, first, last, 23844, "epsg", 23844,
-        "DGN95 / Indonesia TM-3 zone 53.2");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6385\"]]");
+    p = add_epsg_def (filter, first, last, 6386, "epsg", 6386,
+        "UCS-2000 / Ukraine TM zone 12");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.2\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 12\",GEOGCS[\"UCS-20");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",136.5],PARAMETER[\"scale_fact");
+        "RAMETER[\"central_meridian\",36],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23844\"]]");
-    p = add_epsg_def (filter, first, last, 23845, "epsg", 23845,
-        "DGN95 / Indonesia TM-3 zone 54.1");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6386\"]]");
+    p = add_epsg_def (filter, first, last, 6387, "epsg", 6387,
+        "UCS-2000 / Ukraine TM zone 13");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=300000 +y_0=0 +");
     add_proj4text (p, 1,
-        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+        "ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +unit");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / Indonesia TM-3 zone 54.1\",GEOGCS[\"DGN");
+        "PROJCS[\"UCS-2000 / Ukraine TM zone 13\",GEOGCS[\"UCS-20");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
+        "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\"");
     add_srs_wkt (p, 2,
-        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
+        ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
+        "-141,-78.5,-0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
+        "122\"]],AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",139.5],PARAMETER[\"scale_fact");
+        "RAMETER[\"central_meridian\",39],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"23845\"]]");
-    p = add_epsg_def (filter, first, last, 23846, "epsg", 23846,
-        "ID74 / UTM zone 46N");
+        "9001\"]],AUTHORITY[\"EPSG\",\"6387\"]]");
+    p = add_epsg_def (filter, first, last, 6391, "epsg", 6391,
+        "Cayman Islands National Grid 2011");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        ".33333333333333 +lon_0=-80.56666666666666 +x_0=899160 +y");
+    add_proj4text (p, 2,
+        "_0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 46N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"Cayman Islands National Grid 2011\",GEOGCS[\"CI");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "GD11\",DATUM[\"Cayman_Islands_Geodetic_Datum_2011\",SPHE");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6135\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",93],PARAMETER[\"scale_factor\"");
+        "parallel_1\",19.33333333333333],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "allel_2\",19.7],PARAMETER[\"latitude_of_origin\",19.3333");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "3333333333],PARAMETER[\"central_meridian\",-80.566666666");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "66666],PARAMETER[\"false_easting\",2950000],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"23846\"]]");
-    p = add_epsg_def (filter, first, last, 23847, "epsg", 23847,
-        "ID74 / UTM zone 47N");
+        "false_northing\",1900000],UNIT[\"foot\",0.3048,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+    add_srs_wkt (p, 14,
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"6391\"]]");
+    p = add_epsg_def (filter, first, last, 6393, "epsg", 6393,
+        "NAD83(2011) / Alaska Albers");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 47N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / Alaska Albers\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Coni");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "c_Equal_Area\"],PARAMETER[\"standard_parallel_1\",55],PA");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\"");
+        "RAMETER[\"standard_parallel_2\",65],PARAMETER[\"latitude");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "_of_center\",50],PARAMETER[\"longitude_of_center\",-154]");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"23847\"]]");
-    p = add_epsg_def (filter, first, last, 23848, "epsg", 23848,
-        "ID74 / UTM zone 48N");
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 13,
+        "393\"]]");
+    p = add_epsg_def (filter, first, last, 6394, "epsg", 6394,
+        "NAD83(2011) / Alaska zone 1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no");
+    add_proj4text (p, 2,
+        "_uoff +gamma=323.1301023611111 +ellps=GRS80 +units=m +no");
+    add_proj4text (p, 3,
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 48N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / Alaska zone 1\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Hotine_Obli");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "que_Mercator\"],PARAMETER[\"latitude_of_center\",57],PAR");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",105],PARAMETER[\"scale_factor");
+        "AMETER[\"longitude_of_center\",-133.6666666666667],PARAM");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "ETER[\"azimuth\",323.1301023611111],PARAMETER[\"rectifie");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+        "or\",0.9999],PARAMETER[\"false_easting\",5000000],PARAME");
     add_srs_wkt (p, 12,
-        "ORTH],AUTHORITY[\"EPSG\",\"23848\"]]");
-    p = add_epsg_def (filter, first, last, 23849, "epsg", 23849,
-        "ID74 / UTM zone 49N");
+        "TER[\"false_northing\",-5000000],UNIT[\"metre\",1,AUTHOR");
+    add_srs_wkt (p, 13,
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+    add_srs_wkt (p, 14,
+        "H],AUTHORITY[\"EPSG\",\"6394\"]]");
+    p = add_epsg_def (filter, first, last, 6395, "epsg", 6395,
+        "NAD83(2011) / Alaska zone 2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 49N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / Alaska zone 2\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",111],PARAMETER[\"scale_factor");
+        "ER[\"central_meridian\",-142],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "ORTH],AUTHORITY[\"EPSG\",\"23849\"]]");
-    p = add_epsg_def (filter, first, last, 23850, "epsg", 23850,
-        "ID74 / UTM zone 50N");
+        "\"EPSG\",\"6395\"]]");
+    p = add_epsg_def (filter, first, last, 6396, "epsg", 6396,
+        "NAD83(2011) / Alaska zone 3");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 50N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / Alaska zone 3\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",117],PARAMETER[\"scale_factor");
+        "ER[\"central_meridian\",-146],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "ORTH],AUTHORITY[\"EPSG\",\"23850\"]]");
-    p = add_epsg_def (filter, first, last, 23851, "epsg", 23851,
-        "ID74 / UTM zone 51N");
+        "\"EPSG\",\"6396\"]]");
+    p = add_epsg_def (filter, first, last, 6397, "epsg", 6397,
+        "NAD83(2011) / Alaska zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 51N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / Alaska zone 4\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",123],PARAMETER[\"scale_factor");
+        "ER[\"central_meridian\",-150],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "ORTH],AUTHORITY[\"EPSG\",\"23851\"]]");
-    p = add_epsg_def (filter, first, last, 23852, "epsg", 23852,
-        "ID74 / UTM zone 52N");
+        "\"EPSG\",\"6397\"]]");
+    p = add_epsg_def (filter, first, last, 6398, "epsg", 6398,
+        "NAD83(2011) / Alaska zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 52N\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / Alaska zone 5\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",129],PARAMETER[\"scale_factor");
+        "ER[\"central_meridian\",-154],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "ORTH],AUTHORITY[\"EPSG\",\"23852\"]]");
-    p = add_epsg_def (filter, first, last, 23853, "epsg", 23853,
-        "ID74 / UTM zone 53N (deprecated)");
+        "\"EPSG\",\"6398\"]]");
+    p = add_epsg_def (filter, first, last, 6399, "epsg", 6399,
+        "NAD83(2011) / Alaska zone 6");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +towgs");
+        "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 53N (deprecated)\",GEOGCS[\"ID7");
+        "PROJCS[\"NAD83(2011) / Alaska zone 6\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\"");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"");
+        "ER[\"central_meridian\",-158],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23853\"]]");
-    p = add_epsg_def (filter, first, last, 23866, "epsg", 23866,
-        "DGN95 / UTM zone 46N");
+        "\"EPSG\",\"6399\"]]");
+    p = add_epsg_def (filter, first, last, 6400, "epsg", 6400,
+        "NAD83(2011) / Alaska zone 7");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 46N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Alaska zone 7\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "l_meridian\",93],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "ER[\"central_meridian\",-162],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23866\"]]");
-    p = add_epsg_def (filter, first, last, 23867, "epsg", 23867,
-        "DGN95 / UTM zone 47N");
+        "\"EPSG\",\"6400\"]]");
+    p = add_epsg_def (filter, first, last, 6401, "epsg", 6401,
+        "NAD83(2011) / Alaska zone 8");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 47N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Alaska zone 8\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "ER[\"central_meridian\",-166],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"23867\"]]");
-    p = add_epsg_def (filter, first, last, 23868, "epsg", 23868,
-        "DGN95 / UTM zone 48N");
+        "\"EPSG\",\"6401\"]]");
+    p = add_epsg_def (filter, first, last, 6402, "epsg", 6402,
+        "NAD83(2011) / Alaska zone 9");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 48N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Alaska zone 9\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",54],PARAMET");
     add_srs_wkt (p, 8,
-        "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "ER[\"central_meridian\",-170],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"23868\"]]");
-    p = add_epsg_def (filter, first, last, 23869, "epsg", 23869,
-        "DGN95 / UTM zone 49N");
+        "\"EPSG\",\"6402\"]]");
+    p = add_epsg_def (filter, first, last, 6403, "epsg", 6403,
+        "NAD83(2011) / Alaska zone 10");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS");
+    add_proj4text (p, 2,
+        "80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 49N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Alaska zone 10\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",5");
     add_srs_wkt (p, 8,
-        "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "3.83333333333334],PARAMETER[\"standard_parallel_2\",51.8");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "3333333333334],PARAMETER[\"latitude_of_origin\",51],PARA");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "METER[\"central_meridian\",-176],PARAMETER[\"false_easti");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "ng\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"23869\"]]");
-    p = add_epsg_def (filter, first, last, 23870, "epsg", 23870,
-        "DGN95 / UTM zone 50N");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6403\"]]");
+    p = add_epsg_def (filter, first, last, 6404, "epsg", 6404,
+        "NAD83(2011) / Arizona Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 50N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arizona Central\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA");
     add_srs_wkt (p, 8,
-        "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "METER[\"central_meridian\",-111.9166666666667],PARAMETER");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",21");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "3360],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"23870\"]]");
-    p = add_epsg_def (filter, first, last, 23871, "epsg", 23871,
-        "DGN95 / UTM zone 51N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6404\"]]");
+    p = add_epsg_def (filter, first, last, 6405, "epsg", 6405,
+        "NAD83(2011) / Arizona Central (ft)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 51N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arizona Central (ft)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],");
     add_srs_wkt (p, 8,
-        "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "PARAMETER[\"central_meridian\",-111.9166666666667],PARAM");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        ",700000],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        ".3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"23871\"]]");
-    p = add_epsg_def (filter, first, last, 23872, "epsg", 23872,
-        "DGN95 / UTM zone 52N");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6405\"]]");
+    p = add_epsg_def (filter, first, last, 6406, "epsg", 6406,
+        "NAD83(2011) / Arizona East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 52N\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arizona East\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMET");
     add_srs_wkt (p, 8,
-        "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "ER[\"central_meridian\",-110.1666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",21336");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"23872\"]]");
-    p = add_epsg_def (filter, first, last, 23877, "epsg", 23877,
-        "DGN95 / UTM zone 47S");
+        "RTH],AUTHORITY[\"EPSG\",\"6406\"]]");
+    p = add_epsg_def (filter, first, last, 6407, "epsg", 6407,
+        "NAD83(2011) / Arizona East (ft)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 47S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arizona East (ft)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PA");
     add_srs_wkt (p, 8,
-        "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "RAMETER[\"central_meridian\",-110.1666666666667],PARAMET");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        "ER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "ng\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "700000],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        "3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"23877\"]]");
-    p = add_epsg_def (filter, first, last, 23878, "epsg", 23878,
-        "DGN95 / UTM zone 48S");
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6407\"]]");
+    p = add_epsg_def (filter, first, last, 6408, "epsg", 6408,
+        "NAD83(2011) / Arizona West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 48S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arizona West\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMET");
     add_srs_wkt (p, 8,
-        "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "ER[\"central_meridian\",-113.75],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "r\",0.999933333],PARAMETER[\"false_easting\",213360],PAR");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23878\"]]");
-    p = add_epsg_def (filter, first, last, 23879, "epsg", 23879,
-        "DGN95 / UTM zone 49S");
+        "UTHORITY[\"EPSG\",\"6408\"]]");
+    p = add_epsg_def (filter, first, last, 6409, "epsg", 6409,
+        "NAD83(2011) / Arizona West (ft)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 49S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arizona West (ft)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PA");
     add_srs_wkt (p, 8,
-        "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "RAMETER[\"central_meridian\",-113.75],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "factor\",0.999933333],PARAMETER[\"false_easting\",700000");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,A");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "UTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23879\"]]");
-    p = add_epsg_def (filter, first, last, 23880, "epsg", 23880,
-        "DGN95 / UTM zone 50S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6409\"]]");
+    p = add_epsg_def (filter, first, last, 6410, "epsg", 6410,
+        "NAD83(2011) / Arkansas North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 50S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arkansas North\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "6.23333333333333],PARAMETER[\"standard_parallel_2\",34.9");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "3333333333333],PARAMETER[\"latitude_of_origin\",34.33333");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "333333334],PARAMETER[\"central_meridian\",-92],PARAMETER");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "[\"false_easting\",400000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23880\"]]");
-    p = add_epsg_def (filter, first, last, 23881, "epsg", 23881,
-        "DGN95 / UTM zone 51S");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6410\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 6411, "epsg", 6411,
+        "NAD83(2011) / Arkansas North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999");
+    add_proj4text (p, 2,
+        "8984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 51S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arkansas North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "el_1\",36.23333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "2\",34.93333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "34.33333333333334],PARAMETER[\"central_meridian\",-92],P");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "ARAMETER[\"false_easting\",1312333.3333],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23881\"]]");
-    p = add_epsg_def (filter, first, last, 23882, "epsg", 23882,
-        "DGN95 / UTM zone 52S");
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 13,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 14,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6411\"]]");
+    p = add_epsg_def (filter, first, last, 6412, "epsg", 6412,
+        "NAD83(2011) / Arkansas South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp");
+    add_proj4text (p, 2,
+        "s=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 52S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arkansas South\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "4.76666666666667],PARAMETER[\"standard_parallel_2\",33.3");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "],PARAMETER[\"latitude_of_origin\",32.66666666666666],PA");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "RAMETER[\"central_meridian\",-92],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "ing\",400000],PARAMETER[\"false_northing\",400000],UNIT[");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23882\"]]");
-    p = add_epsg_def (filter, first, last, 23883, "epsg", 23883,
-        "DGN95 / UTM zone 53S");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+    add_srs_wkt (p, 13,
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6412\"]]");
+    p = add_epsg_def (filter, first, last, 6413, "epsg", 6413,
+        "NAD83(2011) / Arkansas South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399");
+    add_proj4text (p, 2,
+        "999.99998984 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 53S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Arkansas South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "l_meridian\",135],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "el_1\",34.76666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "2\",33.3],PARAMETER[\"latitude_of_origin\",32.6666666666");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "6666],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "lse_easting\",1312333.3333],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23883\"]]");
-    p = add_epsg_def (filter, first, last, 23884, "epsg", 23884,
-        "DGN95 / UTM zone 54S");
+        ",1312333.3333],UNIT[\"US survey foot\",0.304800609601219");
+    add_srs_wkt (p, 13,
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6413\"]]");
+    p = add_epsg_def (filter, first, last, 6414, "epsg", 6414,
+        "NAD83(2011) / California Albers");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,");
+        "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DGN95 / UTM zone 54S\",GEOGCS[\"DGN95\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / California Albers\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "l_meridian\",141],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "4],PARAMETER[\"standard_parallel_2\",40.5],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "atitude_of_center\",0],PARAMETER[\"longitude_of_center\"");
     add_srs_wkt (p, 10,
-        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        ",-120],PARAMETER[\"false_easting\",0],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "northing\",-4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"23884\"]]");
-    p = add_epsg_def (filter, first, last, 23886, "epsg", 23886,
-        "ID74 / UTM zone 46S (deprecated)");
+        ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"6414\"]]");
+    p = add_epsg_def (filter, first, last, 6415, "epsg", 6415,
+        "NAD83(2011) / California zone 1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp");
+    add_proj4text (p, 2,
+        "s=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 46S (deprecated)\",GEOGCS[\"ID7");
+        "PROJCS[\"NAD83(2011) / California zone 1\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\"");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s");
+        "\",41.66666666666666],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
+        "40],PARAMETER[\"latitude_of_origin\",39.33333333333334],");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",");
+        "PARAMETER[\"central_meridian\",-122],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
+        "asting\",2000000],PARAMETER[\"false_northing\",500000],U");
     add_srs_wkt (p, 12,
-        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"23886\"]]");
-    p = add_epsg_def (filter, first, last, 23887, "epsg", 23887,
-        "ID74 / UTM zone 47S");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6415\"]]");
+    p = add_epsg_def (filter, first, last, 6416, "epsg", 6416,
+        "NAD83(2011) / California zone 1 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000");
+    add_proj4text (p, 2,
+        "00.0001016001 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 47S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 1 (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\"");
+        "llel_1\",41.66666666666666],PARAMETER[\"standard_paralle");
     add_srs_wkt (p, 9,
-        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "l_2\",40],PARAMETER[\"latitude_of_origin\",39.3333333333");
     add_srs_wkt (p, 10,
-        "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"");
+        "3334],PARAMETER[\"central_meridian\",-122],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "alse_easting\",6561666.667],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"23887\"]]");
-    p = add_epsg_def (filter, first, last, 23888, "epsg", 23888,
-        "ID74 / UTM zone 48S");
+        ",1640416.667],UNIT[\"US survey foot\",0.3048006096012192");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6416\"]]");
+    p = add_epsg_def (filter, first, last, 6417, "epsg", 6417,
+        "NAD83(2011) / California zone 2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y");
+    add_proj4text (p, 2,
+        "_0=500000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 48S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 2\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",105],PARAMETER[\"scale_factor");
+        "\",39.83333333333334],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "38.33333333333334],PARAMETER[\"latitude_of_origin\",37.6");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        "6666666666666],PARAMETER[\"central_meridian\",-122],PARA");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "METER[\"false_easting\",2000000],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23888\"]]");
-    p = add_epsg_def (filter, first, last, 23889, "epsg", 23889,
-        "ID74 / UTM zone 49S");
+        "ing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+    add_srs_wkt (p, 13,
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"6417\"]]");
+    p = add_epsg_def (filter, first, last, 6418, "epsg", 6418,
+        "NAD83(2011) / California zone 2 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00");
+    add_proj4text (p, 2,
+        "01016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 49S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 2 (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",111],PARAMETER[\"scale_factor");
+        "llel_1\",39.83333333333334],PARAMETER[\"standard_paralle");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "l_2\",38.33333333333334],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        ",37.66666666666666],PARAMETER[\"central_meridian\",-122]");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        ",PARAMETER[\"false_easting\",6561666.667],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23889\"]]");
-    p = add_epsg_def (filter, first, last, 23890, "epsg", 23890,
-        "ID74 / UTM zone 50S");
+        "lse_northing\",1640416.667],UNIT[\"US survey foot\",0.30");
+    add_srs_wkt (p, 13,
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 14,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6418\"]]");
+    p = add_epsg_def (filter, first, last, 6419, "epsg", 6419,
+        "NAD83(2011) / California zone 3");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +");
+    add_proj4text (p, 2,
+        "ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 50S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 3\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",117],PARAMETER[\"scale_factor");
+        "\",38.43333333333333],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "37.06666666666667],PARAMETER[\"latitude_of_origin\",36.5");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        "],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"fal");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "se_easting\",2000000],PARAMETER[\"false_northing\",50000");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23890\"]]");
-    p = add_epsg_def (filter, first, last, 23891, "epsg", 23891,
-        "ID74 / UTM zone 51S");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6419\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 6420, "epsg", 6420,
+        "NAD83(2011) / California zone 3 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=");
+    add_proj4text (p, 2,
+        "500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 51S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 3 (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",123],PARAMETER[\"scale_factor");
+        "llel_1\",38.43333333333333],PARAMETER[\"standard_paralle");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "l_2\",37.06666666666667],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        ",36.5],PARAMETER[\"central_meridian\",-120.5],PARAMETER[");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "\"false_easting\",6561666.667],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23891\"]]");
-    p = add_epsg_def (filter, first, last, 23892, "epsg", 23892,
-        "ID74 / UTM zone 52S");
+        "g\",1640416.667],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 13,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 14,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6420\"]]");
+    p = add_epsg_def (filter, first, last, 6421, "epsg", 6421,
+        "NAD83(2011) / California zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +uni");
+    add_proj4text (p, 2,
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 52S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 4\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",129],PARAMETER[\"scale_factor");
+        "\",37.25],PARAMETER[\"standard_parallel_2\",36],PARAMETE");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "R[\"latitude_of_origin\",35.33333333333334],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        "central_meridian\",-119],PARAMETER[\"false_easting\",200");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "0000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23892\"]]");
-    p = add_epsg_def (filter, first, last, 23893, "epsg", 23893,
-        "ID74 / UTM zone 53S");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6421\"]]");
+    p = add_epsg_def (filter, first, last, 6422, "epsg", 6422,
+        "NAD83(2011) / California zone 4 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600");
+    add_proj4text (p, 2,
+        "1 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 53S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 4 (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",135],PARAMETER[\"scale_factor");
+        "llel_1\",37.25],PARAMETER[\"standard_parallel_2\",36],PA");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "RAMETER[\"latitude_of_origin\",35.33333333333334],PARAME");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        "TER[\"central_meridian\",-119],PARAMETER[\"false_easting");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "\",6561666.667],PARAMETER[\"false_northing\",1640416.667");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23893\"]]");
-    p = add_epsg_def (filter, first, last, 23894, "epsg", 23894,
-        "ID74 / UTM zone 54S");
+        "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 14,
+        "HORITY[\"EPSG\",\"6422\"]]");
+    p = add_epsg_def (filter, first, last, 6423, "epsg", 6423,
+        "NAD83(2011) / California zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554");
+        "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333");
     add_proj4text (p, 1,
-        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ID74 / UTM zone 54S\",GEOGCS[\"ID74\",DATUM[\"I");
+        "PROJCS[\"NAD83(2011) / California zone 5\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",141],PARAMETER[\"scale_factor");
+        "\",35.46666666666667],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
+        "34.03333333333333],PARAMETER[\"latitude_of_origin\",33.5");
     add_srs_wkt (p, 10,
-        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
+        "],PARAMETER[\"central_meridian\",-118],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "_easting\",2000000],PARAMETER[\"false_northing\",500000]");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23894\"]]");
-    p = add_epsg_def (filter, first, last, 23946, "epsg", 23946,
-        "Indian 1954 / UTM zone 46N");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+    add_srs_wkt (p, 13,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6423\"]]");
+    p = add_epsg_def (filter, first, last, 6424, "epsg", 6424,
+        "NAD83(2011) / California zone 5 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333");
     add_proj4text (p, 1,
-        "towgs84=217,823,299,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50");
+    add_proj4text (p, 2,
+        "0000.0001016001 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Indian 1954 / UTM zone 46N\",GEOGCS[\"Indian 19");
+        "PROJCS[\"NAD83(2011) / California zone 5 (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s");
+        "llel_1\",35.46666666666667],PARAMETER[\"standard_paralle");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
+        "l_2\",34.03333333333333],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        ",33.5],PARAMETER[\"central_meridian\",-118],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "false_easting\",6561666.667],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23946\"]]");
-    p = add_epsg_def (filter, first, last, 23947, "epsg", 23947,
-        "Indian 1954 / UTM zone 47N");
+        ",1640416.667],UNIT[\"US survey foot\",0.3048006096012192");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6424\"]]");
+    p = add_epsg_def (filter, first, last, 6425, "epsg", 6425,
+        "NAD83(2011) / California zone 6");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333");
     add_proj4text (p, 1,
-        "towgs84=217,823,299,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000");
+    add_proj4text (p, 2,
+        " +y_0=500000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Indian 1954 / UTM zone 47N\",GEOGCS[\"Indian 19");
+        "PROJCS[\"NAD83(2011) / California zone 6\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s");
+        "\",33.88333333333333],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
+        "32.78333333333333],PARAMETER[\"latitude_of_origin\",32.1");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "6666666666666],PARAMETER[\"central_meridian\",-116.25],P");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23947\"]]");
-    p = add_epsg_def (filter, first, last, 23948, "epsg", 23948,
-        "Indian 1954 / UTM zone 48N");
+        "rthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+    add_srs_wkt (p, 13,
+        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 14,
+        "PSG\",\"6425\"]]");
+    p = add_epsg_def (filter, first, last, 6426, "epsg", 6426,
+        "NAD83(2011) / California zone 6 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333");
     add_proj4text (p, 1,
-        "towgs84=217,823,299,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000");
+    add_proj4text (p, 2,
+        ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-f");
+    add_proj4text (p, 3,
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Indian 1954 / UTM zone 48N\",GEOGCS[\"Indian 19");
+        "PROJCS[\"NAD83(2011) / California zone 6 (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"");
+        "llel_1\",33.88333333333333],PARAMETER[\"standard_paralle");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "l_2\",32.78333333333333],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        ",32.16666666666666],PARAMETER[\"central_meridian\",-116.");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "25],PARAMETER[\"false_easting\",6561666.667],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23948\"]]");
-    p = add_epsg_def (filter, first, last, 24047, "epsg", 24047,
-        "Indian 1975 / UTM zone 47N");
+        "false_northing\",1640416.667],UNIT[\"US survey foot\",0.");
+    add_srs_wkt (p, 13,
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 14,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6426\"]]");
+    p = add_epsg_def (filter, first, last, 6427, "epsg", 6427,
+        "NAD83(2011) / Colorado Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333");
     add_proj4text (p, 1,
-        "towgs84=210,814,289,0,0,0,0 +units=m +no_defs");
+        "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el");
+    add_proj4text (p, 2,
+        "lps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Indian 1975 / UTM zone 47N\",GEOGCS[\"Indian 19");
+        "PROJCS[\"NAD83(2011) / Colorado Central\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s");
+        ",39.75],PARAMETER[\"standard_parallel_2\",38.45],PARAMET");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
+        "ER[\"latitude_of_origin\",37.83333333333334],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "central_meridian\",-105.5],PARAMETER[\"false_easting\",9");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "14401.8289],PARAMETER[\"false_northing\",304800.6096],UN");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"24047\"]]");
-    p = add_epsg_def (filter, first, last, 24048, "epsg", 24048,
-        "Indian 1975 / UTM zone 48N");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 13,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6427\"]]");
+    p = add_epsg_def (filter, first, last, 6428, "epsg", 6428,
+        "NAD83(2011) / Colorado Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333");
     add_proj4text (p, 1,
-        "towgs84=210,814,289,0,0,0,0 +units=m +no_defs");
+        "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60");
+    add_proj4text (p, 2,
+        "96012192 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Indian 1975 / UTM zone 48N\",GEOGCS[\"Indian 19");
+        "PROJCS[\"NAD83(2011) / Colorado Central (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"");
+        "lel_1\",39.75],PARAMETER[\"standard_parallel_2\",38.45],");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "PARAMETER[\"latitude_of_origin\",37.83333333333334],PARA");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "METER[\"central_meridian\",-105.5],PARAMETER[\"false_eas");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "ting\",3000000],PARAMETER[\"false_northing\",1000000],UN");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"24048\"]]");
-    p = add_epsg_def (filter, first, last, 24100, "epsg", 24100,
-        "Jamaica 1875 / Jamaica (Old Grid)");
+        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 14,
+        "ITY[\"EPSG\",\"6428\"]]");
+    p = add_epsg_def (filter, first, last, 6429, "epsg", 6429,
+        "NAD83(2011) / Colorado North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167");
+        "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666");
     add_proj4text (p, 1,
-        "638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356");
+        "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8");
     add_proj4text (p, 2,
-        "514.966204134 +to_meter=0.3047972654 +no_defs");
+        "289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Jamaica 1875 / Jamaica (Old Grid)\",GEOGCS[\"Ja");
+        "PROJCS[\"NAD83(2011) / Colorado North\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "maica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[\"Clarke 18");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "80\",6378249.144808011,293.4663076556303,AUTHORITY[\"EPS");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "G\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],PRIMEM[\"Gr");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4241\"]],PROJECTION[\"Lambert_Conformal_C");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",18],PARAMET");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",-77],PARAMETER[\"scale_factor\",");
+        "0.78333333333333],PARAMETER[\"standard_parallel_2\",39.7");
     add_srs_wkt (p, 9,
-        "1],PARAMETER[\"false_easting\",550000],PARAMETER[\"false");
+        "1666666666667],PARAMETER[\"latitude_of_origin\",39.33333");
     add_srs_wkt (p, 10,
-        "_northing\",400000],UNIT[\"Clarke's foot\",0.3047972654,");
+        "333333334],PARAMETER[\"central_meridian\",-105.5],PARAME");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9005\"]],AXIS[\"Easting\",EAST],AXI");
+        "TER[\"false_easting\",914401.8289],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24100\"]]");
-    p = add_epsg_def (filter, first, last, 24200, "epsg", 24200,
-        "JAD69 / Jamaica National Grid");
+        "thing\",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 14,
+        "[\"EPSG\",\"6429\"]]");
+    p = add_epsg_def (filter, first, last, 6430, "epsg", 6430,
+        "NAD83(2011) / Colorado North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250");
+        "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666");
     add_proj4text (p, 1,
-        "000 +y_0=150000 +ellps=clrk66 +towgs84=70,207,389.5,0,0,");
+        "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8");
     add_proj4text (p, 2,
-        "0,0 +units=m +no_defs");
+        "288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-");
+    add_proj4text (p, 3,
+        "ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"JAD69 / Jamaica National Grid\",GEOGCS[\"JAD69\"");
+        "PROJCS[\"NAD83(2011) / Colorado North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"Jamaica_1969\",SPHEROID[\"Clarke 1866\",6378206");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6242\"]],P");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4242\"]],PROJECTION[\"Lambert_");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "18],PARAMETER[\"central_meridian\",-77],PARAMETER[\"scal");
+        "el_1\",40.78333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME");
+        "2\",39.71666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",150000],UNIT[\"metre\",1,AUTHORIT");
+        "39.33333333333334],PARAMETER[\"central_meridian\",-105.5");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "],PARAMETER[\"false_easting\",3000000],PARAMETER[\"false");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24200\"]]");
-    p = add_epsg_def (filter, first, last, 24305, "epsg", 24305,
-        "Kalianpur 1937 / UTM zone 45N");
+        "_northing\",1000000],UNIT[\"US survey foot\",0.304800609");
+    add_srs_wkt (p, 13,
+        "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 14,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6430\"]]");
+    p = add_epsg_def (filter, first, last, 6431, "epsg", 6431,
+        "NAD83(2011) / Colorado South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=45 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333");
     add_proj4text (p, 1,
-        "towgs84=282,726,254,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8");
+    add_proj4text (p, 2,
+        "289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1937 / UTM zone 45N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Colorado South\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\"");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA");
+        "8.43333333333333],PARAMETER[\"standard_parallel_2\",37.2");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
+        "3333333333333],PARAMETER[\"latitude_of_origin\",36.66666");
     add_srs_wkt (p, 10,
-        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "666666666],PARAMETER[\"central_meridian\",-105.5],PARAME");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "TER[\"false_easting\",914401.8289],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24305\"]]");
-    p = add_epsg_def (filter, first, last, 24306, "epsg", 24306,
-        "Kalianpur 1937 / UTM zone 46N");
+        "thing\",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 14,
+        "[\"EPSG\",\"6431\"]]");
+    p = add_epsg_def (filter, first, last, 6432, "epsg", 6432,
+        "NAD83(2011) / Colorado South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333");
     add_proj4text (p, 1,
-        "towgs84=282,726,254,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8");
+    add_proj4text (p, 2,
+        "288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-");
+    add_proj4text (p, 3,
+        "ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1937 / UTM zone 46N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Colorado South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA");
+        "el_1\",38.43333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
+        "2\",37.23333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "36.66666666666666],PARAMETER[\"central_meridian\",-105.5");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+        "],PARAMETER[\"false_easting\",3000000],PARAMETER[\"false");
     add_srs_wkt (p, 12,
-        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24306\"]]");
-    p = add_epsg_def (filter, first, last, 24311, "epsg", 24311,
-        "Kalianpur 1962 / UTM zone 41N");
+        "_northing\",1000000],UNIT[\"US survey foot\",0.304800609");
+    add_srs_wkt (p, 13,
+        "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 14,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6432\"]]");
+    p = add_epsg_def (filter, first, last, 6433, "epsg", 6433,
+        "NAD83(2011) / Connecticut");
     add_proj4text (p, 0,
-        "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165385 +");
+        "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40");
     add_proj4text (p, 1,
-        "towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
+        ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524");
+    add_proj4text (p, 2,
+        "00.3048 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1962 / UTM zone 41N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Connecticut\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],");
+        "86666666666667],PARAMETER[\"standard_parallel_2\",41.2],");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "PARAMETER[\"latitude_of_origin\",40.83333333333334],PARA");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "METER[\"central_meridian\",-72.75],PARAMETER[\"false_eas");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "ting\",304800.6096],PARAMETER[\"false_northing\",152400.");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24311");
+        "3048],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24312, "epsg", 24312,
-        "Kalianpur 1962 / UTM zone 42N");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"643");
+    add_srs_wkt (p, 14,
+        "3\"]]");
+    p = add_epsg_def (filter, first, last, 6434, "epsg", 6434,
+        "NAD83(2011) / Connecticut (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165385 +");
+        "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40");
     add_proj4text (p, 1,
-        "towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
+        ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_");
+    add_proj4text (p, 2,
+        "0=152400.3048006096 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1962 / UTM zone 42N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Connecticut (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],");
+        "1\",41.86666666666667],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        ",41.2],PARAMETER[\"latitude_of_origin\",40.8333333333333");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "4],PARAMETER[\"central_meridian\",-72.75],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "lse_easting\",1000000],PARAMETER[\"false_northing\",5000");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24312");
+        "00],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24313, "epsg", 24313,
-        "Kalianpur 1962 / UTM zone 43N");
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"6434\"]]");
+    p = add_epsg_def (filter, first, last, 6435, "epsg", 6435,
+        "NAD83(2011) / Delaware");
     add_proj4text (p, 0,
-        "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165385 +");
+        "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
+        "995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1962 / UTM zone 43N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Delaware\",GEOGCS[\"NAD83(2011)\"");
     add_srs_wkt (p, 1,
-        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
+        ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\",");
     add_srs_wkt (p, 2,
-        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "tor\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],");
+        "central_meridian\",-75.41666666666667],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "_factor\",0.999995],PARAMETER[\"false_easting\",200000],");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24313");
-    add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24342, "epsg", 24342,
-        "Kalianpur 1975 / UTM zone 42N");
+        "],AUTHORITY[\"EPSG\",\"6435\"]]");
+    p = add_epsg_def (filter, first, last, 6436, "epsg", 6436,
+        "NAD83(2011) / Delaware (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +");
+        "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us");
+    add_proj4text (p, 2,
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / UTM zone 42N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Delaware (ftUS)\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARA");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],");
+        "METER[\"central_meridian\",-75.41666666666667],PARAMETER");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "[\"scale_factor\",0.999995],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "656166.667],PARAMETER[\"false_northing\",0],UNIT[\"US su");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24342");
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24343, "epsg", 24343,
-        "Kalianpur 1975 / UTM zone 43N");
+        "\",\"6436\"]]");
+    p = add_epsg_def (filter, first, last, 6437, "epsg", 6437,
+        "NAD83(2011) / Florida East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999");
     add_proj4text (p, 1,
-        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / UTM zone 43N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida East\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",24.33333333");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],");
+        "333333],PARAMETER[\"central_meridian\",-81],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "scale_factor\",0.999941177],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24343");
-    add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24344, "epsg", 24344,
-        "Kalianpur 1975 / UTM zone 44N");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6437\"]]");
+    p = add_epsg_def (filter, first, last, 6438, "epsg", 6438,
+        "NAD83(2011) / Florida East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999");
     add_proj4text (p, 1,
-        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units");
+    add_proj4text (p, 2,
+        "=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / UTM zone 44N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida East (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",24.3");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],");
+        "3333333333333],PARAMETER[\"central_meridian\",-81],PARAM");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "ting\",656166.667],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24344");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24345, "epsg", 24345,
-        "Kalianpur 1975 / UTM zone 45N");
+        "[\"EPSG\",\"6438\"]]");
+    p = add_epsg_def (filter, first, last, 6439, "epsg", 6439,
+        "NAD83(2011) / Florida GDL Albers");
     add_proj4text (p, 0,
-        "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +");
+        "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_");
     add_proj4text (p, 1,
-        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / UTM zone 45N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida GDL Albers\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Alber");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "s_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\",");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],");
+        "24],PARAMETER[\"standard_parallel_2\",31.5],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "latitude_of_center\",24],PARAMETER[\"longitude_of_center");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "\",-84],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24345");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24346, "epsg", 24346,
-        "Kalianpur 1975 / UTM zone 46N");
+        "\"EPSG\",\"6439\"]]");
+    p = add_epsg_def (filter, first, last, 6440, "epsg", 6440,
+        "NAD83(2011) / Florida North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +");
+        "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2");
     add_proj4text (p, 1,
-        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / UTM zone 46N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida North\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],");
+        ".75],PARAMETER[\"standard_parallel_2\",29.58333333333333");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "],PARAMETER[\"latitude_of_origin\",29],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "al_meridian\",-84.5],PARAMETER[\"false_easting\",600000]");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24346");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24347, "epsg", 24347,
-        "Kalianpur 1975 / UTM zone 47N");
+        "H],AUTHORITY[\"EPSG\",\"6440\"]]");
+    p = add_epsg_def (filter, first, last, 6441, "epsg", 6441,
+        "NAD83(2011) / Florida North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +");
+        "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2");
     add_proj4text (p, 1,
-        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us");
+    add_proj4text (p, 2,
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / UTM zone 47N\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida North (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],");
+        "_1\",30.75],PARAMETER[\"standard_parallel_2\",29.5833333");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
+        "3333333],PARAMETER[\"latitude_of_origin\",29],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "\"central_meridian\",-84.5],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
+        "1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
     add_srs_wkt (p, 12,
-        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24347");
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 24370, "epsg", 24370,
-        "Kalianpur 1880 / India zone 0");
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6441\"]]");
+    p = add_epsg_def (filter, first, last, 6442, "epsg", 6442,
+        "NAD83(2011) / Florida West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999");
     add_proj4text (p, 1,
-        "154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377");
-    add_proj4text (p, 2,
-        "299.36559538 +b=6356098.359005156 +to_meter=0.9143985307");
-    add_proj4text (p, 3,
-        "444408 +no_defs");
+        "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1880 / India zone 0\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida West\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest (");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "1830 Definition)\",6377299.36559538,300.8017255433612,AU");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",24.33333333");
     add_srs_wkt (p, 8,
-        "\",39.5],PARAMETER[\"central_meridian\",68],PARAMETER[\"");
+        "333333],PARAMETER[\"central_meridian\",-82],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.99846154],PARAMETER[\"false_easting\",2");
+        "scale_factor\",0.999941177],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "355500],PARAMETER[\"false_northing\",2590000],UNIT[\"Ind");
+        "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"24370\"]]");
-    p = add_epsg_def (filter, first, last, 24371, "epsg", 24371,
-        "Kalianpur 1880 / India zone I");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6442\"]]");
+    p = add_epsg_def (filter, first, last, 6443, "epsg", 6443,
+        "NAD83(2011) / Florida West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999");
     add_proj4text (p, 1,
-        "641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=637");
+        "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units");
     add_proj4text (p, 2,
-        "7299.36559538 +b=6356098.359005156 +to_meter=0.914398530");
-    add_proj4text (p, 3,
-        "7444408 +no_defs");
+        "=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1880 / India zone I\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Florida West (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest (");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "1830 Definition)\",6377299.36559538,300.8017255433612,AU");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",24.3");
     add_srs_wkt (p, 8,
-        "\",32.5],PARAMETER[\"central_meridian\",68],PARAMETER[\"");
+        "3333333333333],PARAMETER[\"central_meridian\",-82],PARAM");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3");
+        "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind");
+        "ting\",656166.667],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 11,
-        "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"24371\"]]");
-    p = add_epsg_def (filter, first, last, 24372, "epsg", 24372,
-        "Kalianpur 1880 / India zone IIa");
+        "[\"EPSG\",\"6443\"]]");
+    p = add_epsg_def (filter, first, last, 6444, "epsg", 6444,
+        "NAD83(2011) / Georgia East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
-    add_proj4text (p, 2,
-        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
-    add_proj4text (p, 3,
-        "408 +no_defs");
+        "9 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1880 / India zone IIa\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Georgia East\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        " (1830 Definition)\",6377299.36559538,300.8017255433612,");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAMET");
     add_srs_wkt (p, 8,
-        "n\",26],PARAMETER[\"central_meridian\",74],PARAMETER[\"s");
+        "ER[\"central_meridian\",-82.16666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",20000");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"24372\"]]");
-    p = add_epsg_def (filter, first, last, 24373, "epsg", 24373,
-        "Kalianpur 1880 / India zone III");
+        "RTH],AUTHORITY[\"EPSG\",\"6444\"]]");
+    p = add_epsg_def (filter, first, last, 6445, "epsg", 6445,
+        "NAD83(2011) / Georgia East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
+        "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-f");
     add_proj4text (p, 2,
-        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
-    add_proj4text (p, 3,
-        "408 +no_defs");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1880 / India zone III\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Georgia East (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        " (1830 Definition)\",6377299.36559538,300.8017255433612,");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
         "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
         "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",30],");
     add_srs_wkt (p, 8,
-        "n\",19],PARAMETER[\"central_meridian\",80],PARAMETER[\"s");
+        "PARAMETER[\"central_meridian\",-82.16666666666667],PARAM");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
+        "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
+        ",656166.667],PARAMETER[\"false_northing\",0],UNIT[\"US s");
     add_srs_wkt (p, 11,
-        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"24373\"]]");
-    p = add_epsg_def (filter, first, last, 24374, "epsg", 24374,
-        "Kalianpur 1880 / India zone IV");
+        "G\",\"6445\"]]");
+    p = add_epsg_def (filter, first, last, 6446, "epsg", 6446,
+        "NAD83(2011) / Georgia West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
-    add_proj4text (p, 2,
-        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
-    add_proj4text (p, 3,
-        "408 +no_defs");
+        "9 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1880 / India zone IV\",GEOGCS[\"Kalia");
+        "PROJCS[\"NAD83(2011) / Georgia West\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "npur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "(1830 Definition)\",6377299.36559538,300.8017255433612,A");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAMET");
     add_srs_wkt (p, 8,
-        "n\",12],PARAMETER[\"central_meridian\",80],PARAMETER[\"s");
+        "ER[\"central_meridian\",-84.16666666666667],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",70000");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"24374\"]]");
-    p = add_epsg_def (filter, first, last, 24375, "epsg", 24375,
-        "Kalianpur 1937 / India zone IIb");
+        "RTH],AUTHORITY[\"EPSG\",\"6446\"]]");
+    p = add_epsg_def (filter, first, last, 6447, "epsg", 6447,
+        "NAD83(2011) / Georgia West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "+x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075");
+        "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-f");
     add_proj4text (p, 2,
-        ".413140239 +towgs84=282,726,254,0,0,0,0 +units=m +no_def");
-    add_proj4text (p, 3,
-        "s");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1937 / India zone IIb\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Georgia West (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "anpur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        " 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"7015\"]],TOWGS84[282,726,254,0,0,0,0],AUTHOR");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "ITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",30],");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",26],PARAMETER[\"central_meridian");
+        "PARAMETER[\"central_meridian\",-84.16666666666667],PARAM");
     add_srs_wkt (p, 9,
-        "\",90],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[");
+        "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "\"false_easting\",2743185.69],PARAMETER[\"false_northing");
+        ",2296583.333],PARAMETER[\"false_northing\",0],UNIT[\"US ");
     add_srs_wkt (p, 11,
-        "\",914395.23],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
     add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"24375\"]]");
-    p = add_epsg_def (filter, first, last, 24376, "epsg", 24376,
-        "Kalianpur 1962 / India zone I");
+        "SG\",\"6447\"]]");
+    p = add_epsg_def (filter, first, last, 6448, "epsg", 6448,
+        "NAD83(2011) / Idaho Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99");
     add_proj4text (p, 1,
-        "641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=63561");
+        "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m ");
     add_proj4text (p, 2,
-        "00.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_d");
-    add_proj4text (p, 3,
-        "efs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1962 / India zone I\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Idaho Central\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",41.66666666");
     add_srs_wkt (p, 8,
-        "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri");
+        "666666],PARAMETER[\"central_meridian\",-114],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME");
+        "scale_factor\",0.999947368],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 12,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
-    add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"24376\"]]");
-    p = add_epsg_def (filter, first, last, 24377, "epsg", 24377,
-        "Kalianpur 1962 / India zone IIa");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6448\"]]");
+    p = add_epsg_def (filter, first, last, 6449, "epsg", 6449,
+        "NAD83(2011) / Idaho Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99");
     add_proj4text (p, 1,
-        "+x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.2");
+        "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8");
     add_proj4text (p, 2,
-        "30165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
+        "0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1962 / India zone IIa\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Idaho Central (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "anpur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        " 1830 (1962 Definition)\",6377301.243,300.8017255,AUTHOR");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUT");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "45\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.6");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri");
+        "6666666666666],PARAMETER[\"central_meridian\",-114],PARA");
     add_srs_wkt (p, 9,
-        "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME");
+        "METER[\"scale_factor\",0.999947368],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north");
+        "sting\",1640416.667],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
     add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"24377\"]]");
-    p = add_epsg_def (filter, first, last, 24378, "epsg", 24378,
-        "Kalianpur 1975 / India zone I");
+        "TY[\"EPSG\",\"6449\"]]");
+    p = add_epsg_def (filter, first, last, 6450, "epsg", 6450,
+        "NAD83(2011) / Idaho East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666");
     add_proj4text (p, 1,
-        "641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=63560");
+        "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G");
     add_proj4text (p, 2,
-        "98.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_d");
-    add_proj4text (p, 3,
-        "efs");
+        "RS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / India zone I\",GEOGCS[\"Kalian");
+        "PROJCS[\"NAD83(2011) / Idaho East\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET");
+        "tor\"],PARAMETER[\"latitude_of_origin\",41.6666666666666");
     add_srs_wkt (p, 8,
-        "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri");
+        "6],PARAMETER[\"central_meridian\",-112.1666666666667],PA");
     add_srs_wkt (p, 9,
-        "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME");
+        "RAMETER[\"scale_factor\",0.999947368],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
+        "easting\",200000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
     add_srs_wkt (p, 12,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
-    add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"24378\"]]");
-    p = add_epsg_def (filter, first, last, 24379, "epsg", 24379,
-        "Kalianpur 1975 / India zone IIa");
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6450\"]]");
+    p = add_epsg_def (filter, first, last, 6451, "epsg", 6451,
+        "NAD83(2011) / Idaho East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666");
     add_proj4text (p, 1,
-        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
+        "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0");
     add_proj4text (p, 2,
-        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / India zone IIa\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Idaho East (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.666");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri");
+        "66666666666],PARAMETER[\"central_meridian\",-112.1666666");
     add_srs_wkt (p, 9,
-        "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME");
+        "666667],PARAMETER[\"scale_factor\",0.999947368],PARAMETE");
     add_srs_wkt (p, 10,
-        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
+        "R[\"false_easting\",656166.667],PARAMETER[\"false_northi");
     add_srs_wkt (p, 11,
-        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
     add_srs_wkt (p, 12,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
     add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"24379\"]]");
-    p = add_epsg_def (filter, first, last, 24380, "epsg", 24380,
-        "Kalianpur 1975 / India zone IIb");
+        "TH],AUTHORITY[\"EPSG\",\"6451\"]]");
+    p = add_epsg_def (filter, first, last, 6452, "epsg", 6452,
+        "NAD83(2011) / Idaho West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0");
     add_proj4text (p, 1,
-        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
+        ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_");
     add_proj4text (p, 2,
-        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / India zone IIb\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Idaho West\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
+        "tor\"],PARAMETER[\"latitude_of_origin\",41.6666666666666");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri");
+        "6],PARAMETER[\"central_meridian\",-115.75],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "dian\",90],PARAMETER[\"scale_factor\",0.99878641],PARAME");
+        "cale_factor\",0.999933333],PARAMETER[\"false_easting\",8");
     add_srs_wkt (p, 10,
-        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
-    add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"24380\"]]");
-    p = add_epsg_def (filter, first, last, 24381, "epsg", 24381,
-        "Kalianpur 1975 / India zone III");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6452\"]]");
+    p = add_epsg_def (filter, first, last, 6453, "epsg", 6453,
+        "NAD83(2011) / Idaho West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0");
     add_proj4text (p, 1,
-        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
+        ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +u");
     add_proj4text (p, 2,
-        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "nits=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / India zone III\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Idaho West (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.666");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",19],PARAMETER[\"central_meri");
+        "66666666666],PARAMETER[\"central_meridian\",-115.75],PAR");
     add_srs_wkt (p, 9,
-        "dian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAME");
+        "AMETER[\"scale_factor\",0.999933333],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
+        "asting\",2624666.667],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 11,
-        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
     add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"24381\"]]");
-    p = add_epsg_def (filter, first, last, 24382, "epsg", 24382,
-        "Kalianpur 1880 / India zone IIb");
+        "ITY[\"EPSG\",\"6453\"]]");
+    p = add_epsg_def (filter, first, last, 6454, "epsg", 6454,
+        "NAD83(2011) / Illinois East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333");
     add_proj4text (p, 1,
-        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
+        "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G");
     add_proj4text (p, 2,
-        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
-    add_proj4text (p, 3,
-        "408 +no_defs");
+        "RS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1880 / India zone IIb\",GEOGCS[\"Kali");
+        "PROJCS[\"NAD83(2011) / Illinois East\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        " (1830 Definition)\",6377299.36559538,300.8017255433612,");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",36.66666666");
     add_srs_wkt (p, 8,
-        "n\",26],PARAMETER[\"central_meridian\",90],PARAMETER[\"s");
+        "666666],PARAMETER[\"central_meridian\",-88.3333333333333");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
+        "3],PARAMETER[\"scale_factor\",0.999975],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
+        "e_easting\",300000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 11,
-        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"24382\"]]");
-    p = add_epsg_def (filter, first, last, 24383, "epsg", 24383,
-        "Kalianpur 1975 / India zone IV");
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6454\"]]");
+    p = add_epsg_def (filter, first, last, 6455, "epsg", 6455,
+        "NAD83(2011) / Illinois East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 ");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333");
     add_proj4text (p, 1,
-        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
+        "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0");
     add_proj4text (p, 2,
-        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
+        "=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kalianpur 1975 / India zone IV\",GEOGCS[\"Kalia");
+        "PROJCS[\"NAD83(2011) / Illinois East (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "npur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest ");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "1830 (1975 Definition)\",6377299.151,300.8017255,AUTHORI");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "TY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTH");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"414");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "6\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAME");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36.6");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",12],PARAMETER[\"central_merid");
+        "6666666666666],PARAMETER[\"central_meridian\",-88.333333");
     add_srs_wkt (p, 9,
-        "ian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAMET");
+        "33333333],PARAMETER[\"scale_factor\",0.999975],PARAMETER");
     add_srs_wkt (p, 10,
-        "ER[\"false_easting\",2743195.5],PARAMETER[\"false_northi");
+        "[\"false_easting\",984250.0000000002],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "ng\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
     add_srs_wkt (p, 12,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 13,
-        "THORITY[\"EPSG\",\"24383\"]]");
-    p = add_epsg_def (filter, first, last, 24500, "epsg", 24500,
-        "Kertau 1968 / Singapore Grid");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6455\"]]");
+    p = add_epsg_def (filter, first, last, 6456, "epsg", 6456,
+        "NAD83(2011) / Illinois West");
     add_proj4text (p, 0,
-        "+proj=cass +lat_0=1.287646666666667 +lon_0=103.853002222");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666");
     add_proj4text (p, 1,
-        "2222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038");
+        "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +u");
     add_proj4text (p, 2,
-        "993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs");
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kertau 1968 / Singapore Grid\",GEOGCS[\"Kertau ");
+        "PROJCS[\"NAD83(2011) / Illinois West\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Mod");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "ified\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Cass");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ini_Soldner\"],PARAMETER[\"latitude_of_origin\",1.287646");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",36.66666666");
     add_srs_wkt (p, 8,
-        "666666667],PARAMETER[\"central_meridian\",103.8530022222");
+        "666666],PARAMETER[\"central_meridian\",-90.1666666666666");
     add_srs_wkt (p, 9,
-        "222],PARAMETER[\"false_easting\",30000],PARAMETER[\"fals");
+        "7],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "e_northing\",30000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "alse_easting\",700000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"24500\"]]");
-    p = add_epsg_def (filter, first, last, 24547, "epsg", 24547,
-        "Kertau 1968 / UTM zone 47N");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6456\"]]");
+    p = add_epsg_def (filter, first, last, 6457, "epsg", 6457,
+        "NAD83(2011) / Illinois West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666");
     add_proj4text (p, 1,
-        "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs");
+        "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell");
+    add_proj4text (p, 2,
+        "ps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kertau 1968 / UTM zone 47N\",GEOGCS[\"Kertau 19");
+        "PROJCS[\"NAD83(2011) / Illinois West (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36.6");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",99],PARAMETER[\"scale_facto");
+        "6666666666666],PARAMETER[\"central_meridian\",-90.166666");
     add_srs_wkt (p, 9,
-        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
+        "66666667],PARAMETER[\"scale_factor\",0.999941177],PARAME");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "TER[\"false_easting\",2296583.333300001],PARAMETER[\"fal");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"24547\"]]");
-    p = add_epsg_def (filter, first, last, 24548, "epsg", 24548,
-        "Kertau 1968 / UTM zone 48N");
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 13,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6457\"]]");
+    p = add_epsg_def (filter, first, last, 6458, "epsg", 6458,
+        "NAD83(2011) / Indiana East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs");
+        "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +");
+    add_proj4text (p, 2,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kertau 1968 / UTM zone 48N\",GEOGCS[\"Kertau 19");
+        "PROJCS[\"NAD83(2011) / Indiana East\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],PARAM");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact");
+        "ETER[\"central_meridian\",-85.66666666666667],PARAMETER[");
     add_srs_wkt (p, 9,
-        "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET");
+        "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        ",100000],PARAMETER[\"false_northing\",250000],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"24548\"]]");
-    p = add_epsg_def (filter, first, last, 24571, "epsg", 24571,
-        "Kertau / R.S.O. Malaya (ch) (deprecated)");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6458\"]]");
+    p = add_epsg_def (filter, first, last, 6459, "epsg", 6459,
+        "NAD83(2011) / Indiana East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "0.99984 +x_0=804671.2997750348 +y_0=0 +gamma=323.1301023");
+        "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +");
     add_proj4text (p, 2,
-        "611111 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,");
-    add_proj4text (p, 3,
-        "851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs");
+        "ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Kertau / R.S.O. Malaya (ch) (deprecated)\",GEOG");
+        "PROJCS[\"NAD83(2011) / Indiana East (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "CS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Ever");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "est 1830 Modified\",6377304.063,300.8017,AUTHORITY[\"EPS");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "G\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EP");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "SG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJE");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5");
     add_srs_wkt (p, 8,
-        "of_center\",4],PARAMETER[\"longitude_of_center\",102.25]");
+        "],PARAMETER[\"central_meridian\",-85.66666666666667],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"azimuth\",323.0257905],PARAMETER[\"rectifie");
+        "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact");
+        "asting\",328083.333],PARAMETER[\"false_northing\",820208");
     add_srs_wkt (p, 11,
-        "or\",0.99984],PARAMETER[\"false_easting\",40000],PARAMET");
+        ".3330000002],UNIT[\"US survey foot\",0.3048006096012192,");
     add_srs_wkt (p, 12,
-        "ER[\"false_northing\",0],UNIT[\"British chain (Benoit 18");
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 13,
-        "95 B)\",20.11678249437587,AUTHORITY[\"EPSG\",\"9062\"]],");
-    add_srs_wkt (p, 14,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
-    add_srs_wkt (p, 15,
-        "Y[\"EPSG\",\"24571\"]]");
-    p = add_epsg_def (filter, first, last, 24600, "epsg", 24600,
-        "KOC Lambert");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6459\"]]");
+    p = add_epsg_def (filter, first, last, 6460, "epsg", 6460,
+        "NAD83(2011) / Indiana West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow");
+        "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +");
     add_proj4text (p, 2,
-        "gs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs");
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"KOC Lambert\",GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil");
+        "PROJCS[\"NAD83(2011) / Indiana West\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "_Company\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,29");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "3.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-294.7,-200.");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "1,525.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6246\"]],PRIMEM[\"");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4246\"]],PROJECTION[\"Lambert_Conforma");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],PARAM");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",45],PARAMETER[\"scale_facto");
+        "ETER[\"central_meridian\",-87.08333333333333],PARAMETER[");
     add_srs_wkt (p, 9,
-        "r\",0.9987864078],PARAMETER[\"false_easting\",1500000],P");
+        "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",1166200],UNIT[\"metre\",1,AU");
+        ",900000],PARAMETER[\"false_northing\",250000],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24600\"]]");
-    p = add_epsg_def (filter, first, last, 24718, "epsg", 24718,
-        "La Canoa / UTM zone 18N");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6460\"]]");
+    p = add_epsg_def (filter, first, last, 6461, "epsg", 6461,
+        "NAD83(2011) / Indiana West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-35");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "7.9,0,0,0,0 +units=m +no_defs");
+        "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80");
+    add_proj4text (p, 2,
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"La Canoa / UTM zone 18N\",GEOGCS[\"La Canoa\",D");
+        "PROJCS[\"NAD83(2011) / Indiana West (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\"");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996");
+        "],PARAMETER[\"central_meridian\",-87.08333333333333],PAR");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+        "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "asting\",2952750],PARAMETER[\"false_northing\",820208.33");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "30000002],UNIT[\"US survey foot\",0.3048006096012192,AUT");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"24718\"]]");
-    p = add_epsg_def (filter, first, last, 24719, "epsg", 24719,
-        "La Canoa / UTM zone 19N");
+        "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+    add_srs_wkt (p, 13,
+        "ORTH],AUTHORITY[\"EPSG\",\"6461\"]]");
+    p = add_epsg_def (filter, first, last, 6462, "epsg", 6462,
+        "NAD83(2011) / Iowa North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-35");
+        "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
-        "7.9,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +");
+    add_proj4text (p, 2,
+        "ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"La Canoa / UTM zone 19N\",GEOGCS[\"La Canoa\",D");
+        "PROJCS[\"NAD83(2011) / Iowa North\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\"");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
         "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
         "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.2666");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996");
+        "6666666667],PARAMETER[\"standard_parallel_2\",42.0666666");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+        "6666667],PARAMETER[\"latitude_of_origin\",41.5],PARAMETE");
     add_srs_wkt (p, 10,
-        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "R[\"central_meridian\",-93.5],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        ",1500000],PARAMETER[\"false_northing\",1000000],UNIT[\"m");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"24719\"]]");
-    p = add_epsg_def (filter, first, last, 24720, "epsg", 24720,
-        "La Canoa / UTM zone 20N");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6462\"]]");
+    p = add_epsg_def (filter, first, last, 6463, "epsg", 6463,
+        "NAD83(2011) / Iowa North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-35");
+        "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
-        "7.9,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99");
+    add_proj4text (p, 2,
+        "99898402 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"La Canoa / UTM zone 20N\",GEOGCS[\"La Canoa\",D");
+        "PROJCS[\"NAD83(2011) / Iowa North (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\"");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996");
+        "\",43.26666666666667],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+        "42.06666666666667],PARAMETER[\"latitude_of_origin\",41.5");
     add_srs_wkt (p, 10,
-        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        "],PARAMETER[\"central_meridian\",-93.5],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "e_easting\",4921250],PARAMETER[\"false_northing\",328083");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"24720\"]]");
-    p = add_epsg_def (filter, first, last, 24817, "epsg", 24817,
-        "PSAD56 / UTM zone 17N");
+        "3.333300001],UNIT[\"US survey foot\",0.3048006096012192,");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 14,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6463\"]]");
+    p = add_epsg_def (filter, first, last, 6464, "epsg", 6464,
+        "NAD83(2011) / Iowa South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=intl +towgs84=-288,175,-376,0,");
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS");
+    add_proj4text (p, 2,
+        "80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 17N\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Iowa South\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal");
+        "3333333333],PARAMETER[\"standard_parallel_2\",40.6166666");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "6666667],PARAMETER[\"latitude_of_origin\",40],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "\"central_meridian\",-93.5],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24817\"]]");
-    p = add_epsg_def (filter, first, last, 24818, "epsg", 24818,
-        "PSAD56 / UTM zone 18N");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 13,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6464\"]]");
+    p = add_epsg_def (filter, first, last, 6465, "epsg", 6465,
+        "NAD83(2011) / Iowa South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=intl +towgs84=-288,175,-376,0,");
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +");
+    add_proj4text (p, 2,
+        "ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 18N\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Iowa South (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal");
+        "\",41.78333333333333],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "40.61666666666667],PARAMETER[\"latitude_of_origin\",40],");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "PARAMETER[\"central_meridian\",-93.5],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "easting\",1640416.6667],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24818\"]]");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 14,
+        "ORITY[\"EPSG\",\"6465\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_30.c b/src/srsinit/epsg_inlined_30.c
index 18c8c3c..90ed4b0 100644
--- a/src/srsinit/epsg_inlined_30.c
+++ b/src/srsinit/epsg_inlined_30.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:29 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3332 +52,3656 @@ initialize_epsg_30 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 24819, "epsg", 24819,
-        "PSAD56 / UTM zone 19N");
+    p = add_epsg_def (filter, first, last, 6466, "epsg", 6466,
+        "NAD83(2011) / Kansas North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=intl +towgs84=-288,175,-376,0,");
+        "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 19N\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kansas North\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal");
+        ".78333333333333],PARAMETER[\"standard_parallel_2\",38.71");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "666666666667],PARAMETER[\"latitude_of_origin\",38.333333");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "33333334],PARAMETER[\"central_meridian\",-98],PARAMETER[");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "\"false_easting\",400000],PARAMETER[\"false_northing\",0");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24819\"]]");
-    p = add_epsg_def (filter, first, last, 24820, "epsg", 24820,
-        "PSAD56 / UTM zone 20N");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6466\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 6467, "epsg", 6467,
+        "NAD83(2011) / Kansas North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=intl +towgs84=-288,175,-376,0,");
+        "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999");
+    add_proj4text (p, 2,
+        "8984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 20N\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kansas North (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal");
+        "_1\",39.78333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        ",38.71666666666667],PARAMETER[\"latitude_of_origin\",38.");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "33333333333334],PARAMETER[\"central_meridian\",-98],PARA");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "METER[\"false_easting\",1312333.3333],PARAMETER[\"false_");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24820\"]]");
-    p = add_epsg_def (filter, first, last, 24821, "epsg", 24821,
-        "PSAD56 / UTM zone 21N");
+        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 14,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6467\"]]");
+    p = add_epsg_def (filter, first, last, 6468, "epsg", 6468,
+        "NAD83(2011) / Kansas South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=intl +towgs84=-288,175,-376,0,");
+        "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y");
+    add_proj4text (p, 2,
+        "_0=400000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 21N\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kansas South\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal");
+        ".56666666666667],PARAMETER[\"standard_parallel_2\",37.26");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "666666666667],PARAMETER[\"latitude_of_origin\",36.666666");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "66666666],PARAMETER[\"central_meridian\",-98.5],PARAMETE");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "R[\"false_easting\",400000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24821\"]]");
-    p = add_epsg_def (filter, first, last, 24877, "epsg", 24877,
-        "PSAD56 / UTM zone 17S");
+        ",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "6468\"]]");
+    p = add_epsg_def (filter, first, last, 6469, "epsg", 6469,
+        "NAD83(2011) / Kansas South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=intl +towgs84=-288,175,");
+        "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
-        "-376,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99");
+    add_proj4text (p, 2,
+        "998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +n");
+    add_proj4text (p, 3,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 17S\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kansas South (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal");
+        "_1\",38.56666666666667],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        ",37.26666666666667],PARAMETER[\"latitude_of_origin\",36.");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "66666666666666],PARAMETER[\"central_meridian\",-98.5],PA");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "RAMETER[\"false_easting\",1312333.3333],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24877\"]]");
-    p = add_epsg_def (filter, first, last, 24878, "epsg", 24878,
-        "PSAD56 / UTM zone 18S");
+        "e_northing\",1312333.3333],UNIT[\"US survey foot\",0.304");
+    add_srs_wkt (p, 13,
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 14,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6469\"]]");
+    p = add_epsg_def (filter, first, last, 6470, "epsg", 6470,
+        "NAD83(2011) / Kentucky North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=intl +towgs84=-288,175,");
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666");
     add_proj4text (p, 1,
-        "-376,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=");
+    add_proj4text (p, 2,
+        "GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 18S\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kentucky North\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal");
+        "7.96666666666667],PARAMETER[\"standard_parallel_2\",38.9");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",37.5],PA");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "RAMETER[\"central_meridian\",-84.25],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24878\"]]");
-    p = add_epsg_def (filter, first, last, 24879, "epsg", 24879,
-        "PSAD56 / UTM zone 19S");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6470\"]]");
+    p = add_epsg_def (filter, first, last, 6471, "epsg", 6471,
+        "NAD83(2011) / Kentucky North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=intl +towgs84=-288,175,");
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666");
     add_proj4text (p, 1,
-        "-376,0,0,0,0 +units=m +no_defs");
+        "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_");
+    add_proj4text (p, 2,
+        "0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 19S\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kentucky North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal");
+        "el_1\",37.96666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "2\",38.96666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "37.5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "false_easting\",1640416.667],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24879\"]]");
-    p = add_epsg_def (filter, first, last, 24880, "epsg", 24880,
-        "PSAD56 / UTM zone 20S");
+        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"6471\"]]");
+    p = add_epsg_def (filter, first, last, 6472, "epsg", 6472,
+        "NAD83(2011) / Kentucky Single Zone");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=intl +towgs84=-288,175,");
+        "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666");
     add_proj4text (p, 1,
-        "-376,0,0,0,0 +units=m +no_defs");
+        "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 ");
+    add_proj4text (p, 2,
+        "+y_0=1000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 20S\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kentucky Single Zone\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal");
+        "_1\",37.08333333333334],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        ",38.66666666666666],PARAMETER[\"latitude_of_origin\",36.");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "33333333333334],PARAMETER[\"central_meridian\",-85.75],P");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "ARAMETER[\"false_easting\",1500000],PARAMETER[\"false_no");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24880\"]]");
-    p = add_epsg_def (filter, first, last, 24881, "epsg", 24881,
-        "PSAD56 / UTM zone 21S");
+        "rthing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 14,
+        "EPSG\",\"6472\"]]");
+    p = add_epsg_def (filter, first, last, 6473, "epsg", 6473,
+        "NAD83(2011) / Kentucky Single Zone (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=intl +towgs84=-288,175,");
+        "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666");
     add_proj4text (p, 1,
-        "-376,0,0,0,0 +units=m +no_defs");
+        "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 ");
+    add_proj4text (p, 2,
+        "+y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_def");
+    add_proj4text (p, 3,
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 21S\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kentucky Single Zone (ftUS)\",GEO");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal");
+        "parallel_1\",37.08333333333334],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "allel_2\",38.66666666666666],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "gin\",36.33333333333334],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "-85.75],PARAMETER[\"false_easting\",4921250],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24881\"]]");
-    p = add_epsg_def (filter, first, last, 24882, "epsg", 24882,
-        "PSAD56 / UTM zone 22S");
+        "false_northing\",3280833.333],UNIT[\"US survey foot\",0.");
+    add_srs_wkt (p, 13,
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 14,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6473\"]]");
+    p = add_epsg_def (filter, first, last, 6474, "epsg", 6474,
+        "NAD83(2011) / Kentucky South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=intl +towgs84=-288,175,");
+        "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333");
     add_proj4text (p, 1,
-        "-376,0,0,0,0 +units=m +no_defs");
+        "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +");
+    add_proj4text (p, 2,
+        "y_0=500000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / UTM zone 22S\",GEOGCS[\"PSAD56\",DATUM");
+        "PROJCS[\"NAD83(2011) / Kentucky South\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal");
+        "7.93333333333333],PARAMETER[\"standard_parallel_2\",36.7");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "3333333333333],PARAMETER[\"latitude_of_origin\",36.33333");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "333333334],PARAMETER[\"central_meridian\",-85.75],PARAME");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "TER[\"false_easting\",500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24882\"]]");
-    p = add_epsg_def (filter, first, last, 24891, "epsg", 24891,
-        "PSAD56 / Peru west zone");
+        "\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6474\"]]");
+    p = add_epsg_def (filter, first, last, 6475, "epsg", 6475,
+        "NAD83(2011) / Kentucky South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=22");
+        "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333");
     add_proj4text (p, 1,
-        "2000 +y_0=1426834.743 +ellps=intl +towgs84=-288,175,-376");
+        "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0");
     add_proj4text (p, 2,
-        ",0,0,0,0 +units=m +no_defs");
+        "001016001 +y_0=500000.0001016001 +ellps=GRS80 +units=us-");
+    add_proj4text (p, 3,
+        "ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / Peru west zone\",GEOGCS[\"PSAD56\",DAT");
+        "PROJCS[\"NAD83(2011) / Kentucky South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\"");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "in\",-6],PARAMETER[\"central_meridian\",-80.5],PARAMETER");
+        "el_1\",37.93333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "[\"scale_factor\",0.99983008],PARAMETER[\"false_easting\"");
+        "2\",36.73333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        ",222000],PARAMETER[\"false_northing\",1426834.743],UNIT[");
+        "36.33333333333334],PARAMETER[\"central_meridian\",-85.75");
     add_srs_wkt (p, 11,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+        "],PARAMETER[\"false_easting\",1640416.667],PARAMETER[\"f");
     add_srs_wkt (p, 12,
-        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24891\"]]");
-    p = add_epsg_def (filter, first, last, 24892, "epsg", 24892,
-        "PSAD56 / Peru central zone");
+        "alse_northing\",1640416.667],UNIT[\"US survey foot\",0.3");
+    add_srs_wkt (p, 13,
+        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 14,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6475\"]]");
+    p = add_epsg_def (filter, first, last, 6476, "epsg", 6476,
+        "NAD83(2011) / Louisiana North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=72");
+        "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666");
     add_proj4text (p, 1,
-        "0000 +y_0=1039979.159 +ellps=intl +towgs84=-288,175,-376");
+        "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=");
     add_proj4text (p, 2,
-        ",0,0,0,0 +units=m +no_defs");
+        "GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / Peru central zone\",GEOGCS[\"PSAD56\",");
+        "PROJCS[\"NAD83(2011) / Louisiana North\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "DATUM[\"Provisional_South_American_Datum_1956\",SPHEROID");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "7022\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "\",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJEC");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "igin\",-9.5],PARAMETER[\"central_meridian\",-76],PARAMET");
+        ",32.66666666666666],PARAMETER[\"standard_parallel_2\",31");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",0.99932994],PARAMETER[\"false_eastin");
+        ".16666666666667],PARAMETER[\"latitude_of_origin\",30.5],");
     add_srs_wkt (p, 10,
-        "g\",720000],PARAMETER[\"false_northing\",1039979.159],UN");
+        "PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "easting\",1000000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 12,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24892\"]]");
-    p = add_epsg_def (filter, first, last, 24893, "epsg", 24893,
-        "PSAD56 / Peru east zone");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+    add_srs_wkt (p, 13,
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6476\"]]");
+    p = add_epsg_def (filter, first, last, 6477, "epsg", 6477,
+        "NAD83(2011) / Louisiana North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0=");
+        "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666");
     add_proj4text (p, 1,
-        "1324000 +y_0=1040084.558 +ellps=intl +towgs84=-288,175,-");
+        "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0");
     add_proj4text (p, 2,
-        "376,0,0,0,0 +units=m +no_defs");
+        "=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"PSAD56 / Peru east zone\",GEOGCS[\"PSAD56\",DAT");
+        "PROJCS[\"NAD83(2011) / Louisiana North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\"");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "in\",-9.5],PARAMETER[\"central_meridian\",-70.5],PARAMET");
+        "el_1\",32.66666666666666],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",0.99952992],PARAMETER[\"false_eastin");
+        "2\",31.16666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "g\",1324000],PARAMETER[\"false_northing\",1040084.558],U");
+        "30.5],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "false_easting\",3280833.333300001],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24893\"]]");
-    p = add_epsg_def (filter, first, last, 25000, "epsg", 25000,
-        "Leigon / Ghana Metre Grid");
+        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
+    add_srs_wkt (p, 13,
+        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+    add_srs_wkt (p, 14,
+        "NORTH],AUTHORITY[\"EPSG\",\"6477\"]]");
+    p = add_epsg_def (filter, first, last, 6478, "epsg", 6478,
+        "NAD83(2011) / Louisiana South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997");
+        "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91");
     add_proj4text (p, 1,
-        "5 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,3");
+        ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=");
     add_proj4text (p, 2,
-        "64,0,0,0,0 +units=m +no_defs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Leigon / Ghana Metre Grid\",GEOGCS[\"Leigon\",D");
+        "PROJCS[\"NAD83(2011) / Louisiana South\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "ATUM[\"Leigon\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.1");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "45,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-130,29");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        ",364,0,0,0,0],AUTHORITY[\"EPSG\",\"6250\"]],PRIMEM[\"Gre");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4250\"]],PROJECTION[\"Transverse_Mercator");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",4.666666666666667],");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-1],PARAMETER[\"scale_fac");
+        ",30.7],PARAMETER[\"standard_parallel_2\",29.3],PARAMETER");
     add_srs_wkt (p, 9,
-        "tor\",0.99975],PARAMETER[\"false_easting\",274319.51],PA");
+        "[\"latitude_of_origin\",28.5],PARAMETER[\"central_meridi");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "an\",-91.33333333333333],PARAMETER[\"false_easting\",100");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"25000\"]]");
-    p = add_epsg_def (filter, first, last, 25231, "epsg", 25231,
-        "Lome / UTM zone 31N");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6478\"]]");
+    p = add_epsg_def (filter, first, last, 6479, "epsg", 6479,
+        "NAD83(2011) / Louisiana South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_");
+        "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91");
     add_proj4text (p, 1,
-        "defs");
+        ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS");
+    add_proj4text (p, 2,
+        "80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Lome / UTM zone 31N\",GEOGCS[\"Lome\",DATUM[\"L");
+        "PROJCS[\"NAD83(2011) / Louisiana South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ome\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        ",\"6252\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4252\"]],PROJECTI");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]");
+        "el_1\",30.7],PARAMETER[\"standard_parallel_2\",29.3],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+        "AMETER[\"latitude_of_origin\",28.5],PARAMETER[\"central_");
     add_srs_wkt (p, 10,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "meridian\",-91.33333333333333],PARAMETER[\"false_easting");
     add_srs_wkt (p, 11,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"25231\"]]");
-    p = add_epsg_def (filter, first, last, 25391, "epsg", 25391,
-        "Luzon 1911 / Philippines zone I");
+        "\",3280833.333300001],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 12,
+        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 14,
+        "ITY[\"EPSG\",\"6479\"]]");
+    p = add_epsg_def (filter, first, last, 6480, "epsg", 6480,
+        "NAD83(2011) / Maine CS2000 Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +");
+        "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5");
     add_proj4text (p, 1,
-        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "00000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Luzon 1911 / Philippines zone I\",GEOGCS[\"Luzo");
+        "PROJCS[\"NAD83(2011) / Maine CS2000 Central\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.5");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f");
+        "],PARAMETER[\"central_meridian\",-69.125],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR");
+        "ale_factor\",0.99998],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"25391\"]]");
-    p = add_epsg_def (filter, first, last, 25392, "epsg", 25392,
-        "Luzon 1911 / Philippines zone II");
+        "TH],AUTHORITY[\"EPSG\",\"6480\"]]");
+    p = add_epsg_def (filter, first, last, 6481, "epsg", 6481,
+        "NAD83(2011) / Maine CS2000 East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +");
+        "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0");
     add_proj4text (p, 1,
-        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Luzon 1911 / Philippines zone II\",GEOGCS[\"Luz");
+        "PROJCS[\"NAD83(2011) / Maine CS2000 East\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.833");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",119],PARAMETER[\"scale_");
+        "33333333334],PARAMETER[\"central_meridian\",-67.875],PAR");
     add_srs_wkt (p, 9,
-        "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA");
+        "AMETER[\"scale_factor\",0.99998],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "ng\",700000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"25392\"]]");
-    p = add_epsg_def (filter, first, last, 25393, "epsg", 25393,
-        "Luzon 1911 / Philippines zone III");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6481\"]]");
+    p = add_epsg_def (filter, first, last, 6482, "epsg", 6482,
+        "NAD83(2011) / Maine CS2000 West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0");
     add_proj4text (p, 1,
-        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Luzon 1911 / Philippines zone III\",GEOGCS[\"Lu");
+        "PROJCS[\"NAD83(2011) / Maine CS2000 West\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "zon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\"");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "53\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.833");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",121],PARAMETER[\"scale_");
+        "33333333334],PARAMETER[\"central_meridian\",-70.375],PAR");
     add_srs_wkt (p, 9,
-        "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA");
+        "AMETER[\"scale_factor\",0.99998],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "ng\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"25393\"]]");
-    p = add_epsg_def (filter, first, last, 25394, "epsg", 25394,
-        "Luzon 1911 / Philippines zone IV");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6482\"]]");
+    p = add_epsg_def (filter, first, last, 6483, "epsg", 6483,
+        "NAD83(2011) / Maine East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Luzon 1911 / Philippines zone IV\",GEOGCS[\"Luz");
+        "PROJCS[\"NAD83(2011) / Maine East\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "tor\"],PARAMETER[\"latitude_of_origin\",43.6666666666666");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_");
+        "6],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"sca");
     add_srs_wkt (p, 9,
-        "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA");
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",300000],");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"25394\"]]");
-    p = add_epsg_def (filter, first, last, 25395, "epsg", 25395,
-        "Luzon 1911 / Philippines zone V");
+        "],AUTHORITY[\"EPSG\",\"6483\"]]");
+    p = add_epsg_def (filter, first, last, 6484, "epsg", 6484,
+        "NAD83(2011) / Maine East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
+        "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Luzon 1911 / Philippines zone V\",GEOGCS[\"Luzo");
+        "PROJCS[\"NAD83(2011) / Maine East (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.666");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",125],PARAMETER[\"scale_f");
+        "66666666666],PARAMETER[\"central_meridian\",-68.5],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR");
+        "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        ",984250.0000000002],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"25395\"]]");
-    p = add_epsg_def (filter, first, last, 25700, "epsg", 25700,
-        "Makassar (Jakarta) / NEIEZ (deprecated)");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"6484\"]]");
+    p = add_epsg_def (filter, first, last, 6485, "epsg", 6485,
+        "NAD83(2011) / Maine West");
     add_proj4text (p, 0,
-        "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 ");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +u");
     add_proj4text (p, 2,
-        "jakarta +units=m +no_defs");
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Makassar (Jakarta) / NEIEZ (deprecated)\",GEOGC");
+        "PROJCS[\"NAD83(2011) / Maine West\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "S[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHE");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "ROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.807");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PAR");
+        "tor\"],PARAMETER[\"latitude_of_origin\",42.8333333333333");
     add_srs_wkt (p, 8,
-        "AMETER[\"central_meridian\",110],PARAMETER[\"scale_facto");
+        "4],PARAMETER[\"central_meridian\",-70.16666666666667],PA");
     add_srs_wkt (p, 9,
-        "r\",0.997],PARAMETER[\"false_easting\",3900000],PARAMETE");
+        "RAMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORITY[");
+        "easting\",900000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"25700\"]]");
-    p = add_epsg_def (filter, first, last, 25828, "epsg", 25828,
-        "ETRS89 / UTM zone 28N");
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6485\"]]");
+    p = add_epsg_def (filter, first, last, 6486, "epsg", 6486,
+        "NAD83(2011) / Maine West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +u");
+    add_proj4text (p, 2,
+        "nits=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 28N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Maine West (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.833");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_");
+        "33333333334],PARAMETER[\"central_meridian\",-70.16666666");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "666667],PARAMETER[\"scale_factor\",0.999966667],PARAMETE");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "R[\"false_easting\",2952750],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"25828\"]]");
-    p = add_epsg_def (filter, first, last, 25829, "epsg", 25829,
-        "ETRS89 / UTM zone 29N");
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"6486\"]]");
+    p = add_epsg_def (filter, first, last, 6487, "epsg", 6487,
+        "NAD83(2011) / Maryland");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 29N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Maryland\",GEOGCS[\"NAD83(2011)\"");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\",");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_f");
+        "PARAMETER[\"standard_parallel_2\",38.3],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "tude_of_origin\",37.66666666666666],PARAMETER[\"central_");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "meridian\",-77],PARAMETER[\"false_easting\",400000],PARA");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25829\"]]");
-    p = add_epsg_def (filter, first, last, 25830, "epsg", 25830,
-        "ETRS89 / UTM zone 30N");
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"6487\"]]");
+    p = add_epsg_def (filter, first, last, 6488, "epsg", 6488,
+        "NAD83(2011) / Maryland (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8");
+    add_proj4text (p, 2,
+        "0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 30N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Maryland (ftUS)\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_f");
+        ",39.45],PARAMETER[\"standard_parallel_2\",38.3],PARAMETE");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "R[\"latitude_of_origin\",37.66666666666666],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "central_meridian\",-77],PARAMETER[\"false_easting\",1312");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "333.333],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25830\"]]");
-    p = add_epsg_def (filter, first, last, 25831, "epsg", 25831,
-        "ETRS89 / UTM zone 31N");
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6488\"]]");
+    p = add_epsg_def (filter, first, last, 6489, "epsg", 6489,
+        "NAD83(2011) / Massachusetts Island");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS");
+    add_proj4text (p, 2,
+        "80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Massachusetts Island\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa");
+        "_1\",41.48333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        ",41.28333333333333],PARAMETER[\"latitude_of_origin\",41]");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        ",PARAMETER[\"central_meridian\",-70.5],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25831\"]]");
-    p = add_epsg_def (filter, first, last, 25832, "epsg", 25832,
-        "ETRS89 / UTM zone 32N");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+    add_srs_wkt (p, 13,
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6489\"]]");
+    p = add_epsg_def (filter, first, last, 6490, "epsg", 6490,
+        "NAD83(2011) / Massachusetts Island (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0");
+    add_proj4text (p, 2,
+        " +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Massachusetts Island (ftUS)\",GEO");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa");
+        "parallel_1\",41.48333333333333],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "allel_2\",41.28333333333333],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "gin\",41],PARAMETER[\"central_meridian\",-70.5],PARAMETE");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "R[\"false_easting\",1640416.667],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25832\"]]");
-    p = add_epsg_def (filter, first, last, 25833, "epsg", 25833,
-        "ETRS89 / UTM zone 33N");
+        "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH");
+    add_srs_wkt (p, 13,
+        "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 14,
+        "RTH],AUTHORITY[\"EPSG\",\"6490\"]]");
+    p = add_epsg_def (filter, first, last, 6491, "epsg", 6491,
+        "NAD83(2011) / Massachusetts Mainland");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp");
+    add_proj4text (p, 2,
+        "s=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Massachusetts Mainland\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f");
+        "el_1\",42.68333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "2\",41.71666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "41],PARAMETER[\"central_meridian\",-71.5],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "lse_easting\",200000],PARAMETER[\"false_northing\",75000");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25833\"]]");
-    p = add_epsg_def (filter, first, last, 25834, "epsg", 25834,
-        "ETRS89 / UTM zone 34N");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6491\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 6492, "epsg", 6492,
+        "NAD83(2011) / Massachusetts Mainland (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7");
+    add_proj4text (p, 2,
+        "50000 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Massachusetts Mainland (ftUS)\",G");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "EOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "erence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        ",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f");
+        "_parallel_1\",42.68333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "rallel_2\",41.71666666666667],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "igin\",41],PARAMETER[\"central_meridian\",-71.5],PARAMET");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "ER[\"false_easting\",656166.667],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25834\"]]");
-    p = add_epsg_def (filter, first, last, 25835, "epsg", 25835,
-        "ETRS89 / UTM zone 35N");
+        "ing\",2460625],UNIT[\"US survey foot\",0.304800609601219");
+    add_srs_wkt (p, 13,
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6492\"]]");
+    p = add_epsg_def (filter, first, last, 6493, "epsg", 6493,
+        "NAD83(2011) / Michigan Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Michigan Central\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f");
+        ",45.7],PARAMETER[\"standard_parallel_2\",44.183333333333");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "33],PARAMETER[\"latitude_of_origin\",43.31666666666667],");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "PARAMETER[\"central_meridian\",-84.36666666666666],PARAM");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "ETER[\"false_easting\",6000000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25835\"]]");
-    p = add_epsg_def (filter, first, last, 25836, "epsg", 25836,
-        "ETRS89 / UTM zone 36N");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 14,
+        "493\"]]");
+    p = add_epsg_def (filter, first, last, 6494, "epsg", 6494,
+        "NAD83(2011) / Michigan Central (ft)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9");
+    add_proj4text (p, 2,
+        "99976001 +y_0=0 +ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Michigan Central (ft)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f");
+        "el_1\",45.7],PARAMETER[\"standard_parallel_2\",44.183333");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "33333333],PARAMETER[\"latitude_of_origin\",43.3166666666");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "6667],PARAMETER[\"central_meridian\",-84.36666666666666]");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",PARAMETER[\"false_easting\",19685039.37],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25836\"]]");
-    p = add_epsg_def (filter, first, last, 25837, "epsg", 25837,
-        "ETRS89 / UTM zone 37N");
+        "lse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 14,
+        "[\"EPSG\",\"6494\"]]");
+    p = add_epsg_def (filter, first, last, 6495, "epsg", 6495,
+        "NAD83(2011) / Michigan North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_");
+    add_proj4text (p, 2,
+        "0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 37N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Michigan North\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f");
+        "7.08333333333334],PARAMETER[\"standard_parallel_2\",45.4");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "8333333333333],PARAMETER[\"latitude_of_origin\",44.78333");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "333333333],PARAMETER[\"central_meridian\",-87],PARAMETER");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "[\"false_easting\",8000000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25837\"]]");
-    p = add_epsg_def (filter, first, last, 25838, "epsg", 25838,
-        "ETRS89 / UTM zone 38N");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 13,
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6495\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 6496, "epsg", 6496,
+        "NAD83(2011) / Michigan North (ft)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999");
+    add_proj4text (p, 2,
+        "968001 +y_0=0 +ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / UTM zone 38N\",GEOGCS[\"ETRS89\",DATUM");
+        "PROJCS[\"NAD83(2011) / Michigan North (ft)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f");
+        "_1\",47.08333333333334],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        ",45.48333333333333],PARAMETER[\"latitude_of_origin\",44.");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "78333333333333],PARAMETER[\"central_meridian\",-87],PARA");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "METER[\"false_easting\",26246719.16],PARAMETER[\"false_n");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"25838\"]]");
-    p = add_epsg_def (filter, first, last, 25884, "epsg", 25884,
-        "ETRS89 / TM Baltic93");
+        "orthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9");
+    add_srs_wkt (p, 13,
+        "002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 14,
+        "PSG\",\"6496\"]]");
+    p = add_epsg_def (filter, first, last, 6497, "epsg", 6497,
+        "NAD83(2011) / Michigan Oblique Mercator");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_");
+        "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33");
     add_proj4text (p, 1,
-        "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def");
+        "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no");
     add_proj4text (p, 2,
-        "s");
+        "_uoff +gamma=337.25556 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ETRS89 / TM Baltic93\",GEOGCS[\"ETRS89\",DATUM[");
+        "PROJCS[\"NAD83(2011) / Michigan Oblique Mercator\",GEOGC");
     add_srs_wkt (p, 1,
-        "\"European_Terrestrial_Reference_System_1989\",SPHEROID[");
+        "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
+        "\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_of_cen");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f");
+        "ter\",45.30916666666666],PARAMETER[\"longitude_of_center");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "\",-86],PARAMETER[\"azimuth\",337.25556],PARAMETER[\"rec");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "tified_grid_angle\",337.25556],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        ",0.9996],PARAMETER[\"false_easting\",2546731.496],PARAME");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"25884\"]]");
-    p = add_epsg_def (filter, first, last, 25932, "epsg", 25932,
-        "Malongo 1987 / UTM zone 32S");
+        "TER[\"false_northing\",-4354009.816],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 13,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+    add_srs_wkt (p, 14,
+        "NORTH],AUTHORITY[\"EPSG\",\"6497\"]]");
+    p = add_epsg_def (filter, first, last, 6498, "epsg", 6498,
+        "NAD83(2011) / Michigan South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +ellps=intl +towgs84=-254.1,-5");
+        "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41");
     add_proj4text (p, 1,
-        ".36,-100.29,0,0,0,0 +units=m +no_defs");
+        ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=");
+    add_proj4text (p, 2,
+        "GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Malongo 1987 / UTM zone 32S\",GEOGCS[\"Malongo ");
+        "PROJCS[\"NAD83(2011) / Michigan South\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "1987\",DATUM[\"Malongo_1987\",SPHEROID[\"International 1");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY[\"EPSG\",\"6259\"");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4259\"]],PROJECTION[\"Tran");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto");
+        "3.66666666666666],PARAMETER[\"standard_parallel_2\",42.1");
     add_srs_wkt (p, 9,
-        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
+        "],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"cen");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT");
+        "tral_meridian\",-84.36666666666666],PARAMETER[\"false_ea");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "sting\",4000000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"25932\"]]");
-    p = add_epsg_def (filter, first, last, 26191, "epsg", 26191,
-        "Merchich / Nord Maroc");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6498\"]]");
+    p = add_epsg_def (filter, first, last, 6499, "epsg", 6499,
+        "NAD83(2011) / Michigan South (ft)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999");
+        "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41");
     add_proj4text (p, 1,
-        "625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +");
+        ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 ");
     add_proj4text (p, 2,
-        "towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
+        "+ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Merchich / Nord Maroc\",GEOGCS[\"Merchich\",DAT");
+        "PROJCS[\"NAD83(2011) / Michigan South (ft)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3]");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_");
+        "_1\",43.66666666666666],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "factor\",0.999625769],PARAMETER[\"false_easting\",500000");
+        ",42.1],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,");
+        "\"central_meridian\",-84.36666666666666],PARAMETER[\"fal");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "se_easting\",13123359.58],PARAMETER[\"false_northing\",0");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26191\"]]");
-    p = add_epsg_def (filter, first, last, 26192, "epsg", 26192,
-        "Merchich / Sud Maroc");
+        "],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"649");
+    add_srs_wkt (p, 14,
+        "9\"]]");
+    p = add_epsg_def (filter, first, last, 6500, "epsg", 6500,
+        "NAD83(2011) / Minnesota Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.999");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "6155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=63");
+        "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +un");
     add_proj4text (p, 2,
-        "56515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Merchich / Sud Maroc\",GEOGCS[\"Merchich\",DATU");
+        "PROJCS[\"NAD83(2011) / Minnesota Central\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "M[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM[");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confor");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",29.7],");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_f");
+        "\",47.05],PARAMETER[\"standard_parallel_2\",45.616666666");
     add_srs_wkt (p, 9,
-        "actor\",0.999615596],PARAMETER[\"false_easting\",500000]");
+        "66667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A");
+        "central_meridian\",-94.25],PARAMETER[\"false_easting\",8");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "00000],PARAMETER[\"false_northing\",100000],UNIT[\"metre");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26192\"]]");
-    p = add_epsg_def (filter, first, last, 26193, "epsg", 26193,
-        "Merchich / Sahara (deprecated)");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6500\"]]");
+    p = add_epsg_def (filter, first, last, 6501, "epsg", 6501,
+        "NAD83(2011) / Minnesota Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "6 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towg");
+        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
     add_proj4text (p, 2,
-        "s84=31,146,47,0,0,0,0 +units=m +no_defs");
+        "83997 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Merchich / Sahara (deprecated)\",GEOGCS[\"Merch");
+        "PROJCS[\"NAD83(2011) / Minnesota Central (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "ich\",DATUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lamb");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "n\",26.1],PARAMETER[\"central_meridian\",-5.4],PARAMETER");
+        "llel_1\",47.05],PARAMETER[\"standard_parallel_2\",45.616");
     add_srs_wkt (p, 9,
-        "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",12");
+        "66666666667],PARAMETER[\"latitude_of_origin\",45],PARAME");
     add_srs_wkt (p, 10,
-        "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre");
+        "TER[\"central_meridian\",-94.25],PARAMETER[\"false_easti");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+        "ng\",2624666.6667],PARAMETER[\"false_northing\",328083.3");
     add_srs_wkt (p, 12,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26193\"]]");
-    p = add_epsg_def (filter, first, last, 26194, "epsg", 26194,
-        "Merchich / Sahara Nord");
+        "333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT");
+    add_srs_wkt (p, 13,
+        "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+    add_srs_wkt (p, 14,
+        ",AUTHORITY[\"EPSG\",\"6501\"]]");
+    p = add_epsg_def (filter, first, last, 6502, "epsg", 6502,
+        "NAD83(2011) / Minnesota North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 ");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y");
     add_proj4text (p, 2,
-        "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
+        "_0=100000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Merchich / Sahara Nord\",GEOGCS[\"Merchich\",DA");
+        "PROJCS[\"NAD83(2011) / Minnesota North\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "TUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "4[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIME");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conf");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26.1");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale");
+        ",48.63333333333333],PARAMETER[\"standard_parallel_2\",47");
     add_srs_wkt (p, 9,
-        "_factor\",0.999616304],PARAMETER[\"false_easting\",12000");
+        ".03333333333333],PARAMETER[\"latitude_of_origin\",46.5],");
     add_srs_wkt (p, 10,
-        "00],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",");
+        "PARAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "easting\",800000],PARAMETER[\"false_northing\",100000],U");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26194\"]]");
-    p = add_epsg_def (filter, first, last, 26195, "epsg", 26195,
-        "Merchich / Sahara Sud");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6502\"]]");
+    p = add_epsg_def (filter, first, last, 6503, "epsg", 6503,
+        "NAD83(2011) / Minnesota North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 ");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
     add_proj4text (p, 2,
-        "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
+        "00101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-f");
+    add_proj4text (p, 3,
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Merchich / Sahara Sud\",GEOGCS[\"Merchich\",DAT");
+        "PROJCS[\"NAD83(2011) / Minnesota North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",22.5]");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_");
+        "el_1\",48.63333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "factor\",0.999616437],PARAMETER[\"false_easting\",150000");
+        "2\",47.03333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1");
+        "46.5],PARAMETER[\"central_meridian\",-93.1],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+        "false_easting\",2624666.6667],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"26195\"]]");
-    p = add_epsg_def (filter, first, last, 26237, "epsg", 26237,
-        "Massawa / UTM zone 37N");
+        "\",328083.3333],UNIT[\"US survey foot\",0.30480060960121");
+    add_srs_wkt (p, 13,
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6503\"]]");
+    p = add_epsg_def (filter, first, last, 6504, "epsg", 6504,
+        "NAD83(2011) / Minnesota South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=");
+    add_proj4text (p, 2,
+        "GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Massawa / UTM zone 37N\",GEOGCS[\"Massawa\",DAT");
+        "PROJCS[\"NAD83(2011) / Minnesota South\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "UM[\"Massawa\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[639,405,60");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6262\"]],PRIMEM[\"Greenwi");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4262\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAME");
+        ",45.21666666666667],PARAMETER[\"standard_parallel_2\",43");
     add_srs_wkt (p, 9,
-        "TER[\"false_easting\",500000],PARAMETER[\"false_northing");
+        ".78333333333333],PARAMETER[\"latitude_of_origin\",43],PA");
     add_srs_wkt (p, 10,
-        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+        "RAMETER[\"central_meridian\",-94],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "ing\",800000],PARAMETER[\"false_northing\",100000],UNIT[");
     add_srs_wkt (p, 12,
-        "EPSG\",\"26237\"]]");
-    p = add_epsg_def (filter, first, last, 26331, "epsg", 26331,
-        "Minna / UTM zone 31N");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+    add_srs_wkt (p, 13,
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6504\"]]");
+    p = add_epsg_def (filter, first, last, 6505, "epsg", 6505,
+        "NAD83(2011) / Minnesota South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-92,-93,122,0,");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
+    add_proj4text (p, 2,
+        "99.99998983997 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Minna / UTM zone 31N\",GEOGCS[\"Minna\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Minnesota South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "dian\",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "el_1\",45.21666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "2\",43.78333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "43],PARAMETER[\"central_meridian\",-94],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+        "e_easting\",2624666.6667],PARAMETER[\"false_northing\",3");
     add_srs_wkt (p, 12,
-        ",\"26331\"]]");
-    p = add_epsg_def (filter, first, last, 26332, "epsg", 26332,
-        "Minna / UTM zone 32N");
+        "28083.3333],UNIT[\"US survey foot\",0.3048006096012192,A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 14,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6505\"]]");
+    p = add_epsg_def (filter, first, last, 6506, "epsg", 6506,
+        "NAD83(2011) / Mississippi East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-92,-93,122,0,");
+        "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Minna / UTM zone 32N\",GEOGCS[\"Minna\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Mississippi East\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\"");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],P");
     add_srs_wkt (p, 8,
-        "dian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "ARAMETER[\"central_meridian\",-88.83333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "TER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        ",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        ",\"26332\"]]");
-    p = add_epsg_def (filter, first, last, 26391, "epsg", 26391,
-        "Minna / Nigeria West Belt");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6506\"]]");
+    p = add_epsg_def (filter, first, last, 6507, "epsg", 6507,
+        "NAD83(2011) / Mississippi East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.2");
+        "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "6 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni");
+        "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=u");
     add_proj4text (p, 2,
-        "ts=m +no_defs");
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Minna / Nigeria West Belt\",GEOGCS[\"Minna\",DA");
+        "PROJCS[\"NAD83(2011) / Mississippi East (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2");
     add_srs_wkt (p, 8,
-        "l_meridian\",4.5],PARAMETER[\"scale_factor\",0.99975],PA");
+        "9.5],PARAMETER[\"central_meridian\",-88.83333333333333],");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",230738.26],PARAMETER[\"false_n");
+        "PARAMETER[\"scale_factor\",0.99995],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "sting\",984250.0000000002],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"26391\"]]");
-    p = add_epsg_def (filter, first, last, 26392, "epsg", 26392,
-        "Minna / Nigeria Mid Belt");
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"6507\"]]");
+    p = add_epsg_def (filter, first, last, 6508, "epsg", 6508,
+        "NAD83(2011) / Mississippi TM");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.9");
+        "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=");
     add_proj4text (p, 1,
-        "8 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni");
-    add_proj4text (p, 2,
-        "ts=m +no_defs");
+        "500000 +y_0=1300000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Minna / Nigeria Mid Belt\",GEOGCS[\"Minna\",DAT");
+        "PROJCS[\"NAD83(2011) / Mississippi TM\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "UM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,12");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenw");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        ",PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"central");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",32.5],PARA");
     add_srs_wkt (p, 8,
-        "_meridian\",8.5],PARAMETER[\"scale_factor\",0.99975],PAR");
+        "METER[\"central_meridian\",-89.75],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",670553.98],PARAMETER[\"false_no");
+        "tor\",0.9998335],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "AMETER[\"false_northing\",1300000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"26392\"]]");
-    p = add_epsg_def (filter, first, last, 26393, "epsg", 26393,
-        "Minna / Nigeria East Belt");
+        "RTH],AUTHORITY[\"EPSG\",\"6508\"]]");
+    p = add_epsg_def (filter, first, last, 6509, "epsg", 6509,
+        "NAD83(2011) / Mississippi West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369");
+        "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9");
     add_proj4text (p, 1,
-        ".7 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +un");
-    add_proj4text (p, 2,
-        "its=m +no_defs");
+        "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Minna / Nigeria East Belt\",GEOGCS[\"Minna\",DA");
+        "PROJCS[\"NAD83(2011) / Mississippi West\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],P");
     add_srs_wkt (p, 8,
-        "l_meridian\",12.5],PARAMETER[\"scale_factor\",0.99975],P");
+        "ARAMETER[\"central_meridian\",-90.33333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",1110369.7],PARAMETER[\"false_");
+        "TER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+        ",700000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"26393\"]]");
-    p = add_epsg_def (filter, first, last, 26432, "epsg", 26432,
-        "Mhast / UTM zone 32S (deprecated)");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6509\"]]");
+    p = add_epsg_def (filter, first, last, 6510, "epsg", 6510,
+        "NAD83(2011) / Mississippi West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-");
+        "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "4.11,-96.38,0,0,0,0 +units=m +no_defs");
+        "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Mhast / UTM zone 32S (deprecated)\",GEOGCS[\"Mh");
+        "PROJCS[\"NAD83(2011) / Mississippi West (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ast\",DATUM[\"Mhast\",SPHEROID[\"International 1924\",63");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-252.95,");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"6264\"]],PRIM");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4264\"]],PROJECTION[\"Transverse_");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9");
+        "9.5],PARAMETER[\"central_meridian\",-90.33333333333333],");
     add_srs_wkt (p, 9,
-        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        "PARAMETER[\"scale_factor\",0.99995],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "sting\",2296583.333],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26432\"]]");
-    p = add_epsg_def (filter, first, last, 26591, "epsg", 26591,
-        "Monte Mario (Rome) / Italy zone 1 (deprecated)");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"6510\"]]");
+    p = add_epsg_def (filter, first, last, 6511, "epsg", 6511,
+        "NAD83(2011) / Missouri Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 ");
+        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9");
     add_proj4text (p, 1,
-        "+x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9");
+        "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_de");
     add_proj4text (p, 2,
-        ".9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Monte Mario (Rome) / Italy zone 1 (deprecated)\"");
+        "PROJCS[\"NAD83(2011) / Missouri Central\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\"");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\"");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI");
-    add_srs_wkt (p, 6,
         "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+    add_srs_wkt (p, 6,
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",35.8333");
     add_srs_wkt (p, 8,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "3333333334],PARAMETER[\"central_meridian\",-92.5],PARAME");
     add_srs_wkt (p, 9,
-        "METER[\"central_meridian\",-3.45233333333333],PARAMETER[");
+        "TER[\"scale_factor\",0.999933333],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",150");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
-    add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26591\"]]");
-    p = add_epsg_def (filter, first, last, 26592, "epsg", 26592,
-        "Monte Mario (Rome) / Italy zone 2 (deprecated)");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6511\"]]");
+    p = add_epsg_def (filter, first, last, 6512, "epsg", 6512,
+        "NAD83(2011) / Missouri East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +");
+        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9");
     add_proj4text (p, 1,
-        "x_0=2520000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.");
+        "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_de");
     add_proj4text (p, 2,
-        "9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Monte Mario (Rome) / Italy zone 2 (deprecated)\"");
+        "PROJCS[\"NAD83(2011) / Missouri East\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\"");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\"");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",35.83333333");
     add_srs_wkt (p, 8,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "333334],PARAMETER[\"central_meridian\",-90.5],PARAMETER[");
     add_srs_wkt (p, 9,
-        "METER[\"central_meridian\",2.54766666666666],PARAMETER[\"");
+        "\"scale_factor\",0.999933333],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",25200");
+        ",250000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
-    add_srs_wkt (p, 13,
-        "ORTH],AUTHORITY[\"EPSG\",\"26592\"]]");
-    p = add_epsg_def (filter, first, last, 26632, "epsg", 26632,
-        "M'poraloko / UTM zone 32N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6512\"]]");
+    p = add_epsg_def (filter, first, last, 6513, "epsg", 6513,
+        "NAD83(2011) / Missouri West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-74,");
+        "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9");
     add_proj4text (p, 1,
-        "-130,42,0,0,0,0 +units=m +no_defs");
+        "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"M'poraloko / UTM zone 32N\",GEOGCS[\"M'poraloko");
+        "PROJCS[\"NAD83(2011) / Missouri West\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\"");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",36.16666666");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto");
+        "666666],PARAMETER[\"central_meridian\",-94.5],PARAMETER[");
     add_srs_wkt (p, 9,
-        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
+        "\"scale_factor\",0.999941177],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        ",850000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26632\"]]");
-    p = add_epsg_def (filter, first, last, 26692, "epsg", 26692,
-        "M'poraloko / UTM zone 32S");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6513\"]]");
+    p = add_epsg_def (filter, first, last, 6514, "epsg", 6514,
+        "NAD83(2011) / Montana");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs");
+        "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5");
     add_proj4text (p, 1,
-        "84=-74,-130,42,0,0,0,0 +units=m +no_defs");
+        " +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"M'poraloko / UTM zone 32S\",GEOGCS[\"M'poraloko");
+        "PROJCS[\"NAD83(2011) / Montana\",GEOGCS[\"NAD83(2011)\",");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6");
+        "DATUM[\"NAD83_National_Spatial_Reference_System_2011\",S");
     add_srs_wkt (p, 2,
-        "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 3,
-        ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\"");
+        "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PAR");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto");
+        "AMETER[\"standard_parallel_2\",45],PARAMETER[\"latitude_");
     add_srs_wkt (p, 9,
-        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
+        "of_origin\",44.25],PARAMETER[\"central_meridian\",-109.5");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT");
+        "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"26692\"]]");
-    p = add_epsg_def (filter, first, last, 26701, "epsg", 26701,
-        "NAD27 / UTM zone 1N");
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"6514\"]]");
+    p = add_epsg_def (filter, first, last, 6515, "epsg", 6515,
+        "NAD83(2011) / Montana (ft)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=1 +datum=NAD27 +units=m +no_defs");
+        "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5");
+    add_proj4text (p, 1,
+        " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_d");
+    add_proj4text (p, 2,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 1N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Montana (ft)\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49");
     add_srs_wkt (p, 8,
-        "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "],PARAMETER[\"standard_parallel_2\",45],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "tude_of_origin\",44.25],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "109.5],PARAMETER[\"false_easting\",1968503.937],PARAMETE");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "R[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "26701\"]]");
-    p = add_epsg_def (filter, first, last, 26702, "epsg", 26702,
-        "NAD27 / UTM zone 2N");
+        "EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"6515\"]]");
+    p = add_epsg_def (filter, first, last, 6516, "epsg", 6516,
+        "NAD83(2011) / Nebraska");
     add_proj4text (p, 0,
-        "+proj=utm +zone=2 +datum=NAD27 +units=m +no_defs");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+    add_proj4text (p, 1,
+        "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 2N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nebraska\",GEOGCS[\"NAD83(2011)\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\",");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR");
     add_srs_wkt (p, 8,
-        "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "of_origin\",39.83333333333334],PARAMETER[\"central_merid");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ian\",-100],PARAMETER[\"false_easting\",500000],PARAMETE");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "26702\"]]");
-    p = add_epsg_def (filter, first, last, 26703, "epsg", 26703,
-        "NAD27 / UTM zone 3N");
+        "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 13,
+        "ITY[\"EPSG\",\"6516\"]]");
+    p = add_epsg_def (filter, first, last, 6517, "epsg", 6517,
+        "NAD83(2011) / Nebraska (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=3 +datum=NAD27 +units=m +no_defs");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+    add_proj4text (p, 1,
+        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow");
+    add_proj4text (p, 2,
+        "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 3N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nebraska (ftUS)\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"475");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
     add_srs_wkt (p, 8,
-        "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "TER[\"standard_parallel_1\",43],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "allel_2\",40],PARAMETER[\"latitude_of_origin\",39.833333");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "33333334],PARAMETER[\"central_meridian\",-100],PARAMETER");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"false_easting\",1640416.6667],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "26703\"]]");
-    p = add_epsg_def (filter, first, last, 26704, "epsg", 26704,
-        "NAD27 / UTM zone 4N");
+        "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH");
+    add_srs_wkt (p, 13,
+        "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 14,
+        "RTH],AUTHORITY[\"EPSG\",\"6517\"]]");
+    p = add_epsg_def (filter, first, last, 6518, "epsg", 6518,
+        "NAD83(2011) / Nevada Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=4 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 4N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nevada Central\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PAR");
     add_srs_wkt (p, 8,
-        "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "AMETER[\"central_meridian\",-116.6666666666667],PARAMETE");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",5");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "00000],PARAMETER[\"false_northing\",6000000],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "26704\"]]");
-    p = add_epsg_def (filter, first, last, 26705, "epsg", 26705,
-        "NAD27 / UTM zone 5N");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6518\"]]");
+    p = add_epsg_def (filter, first, last, 6519, "epsg", 6519,
+        "NAD83(2011) / Nevada Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=5 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +uni");
+    add_proj4text (p, 2,
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 5N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nevada Central (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",34");
     add_srs_wkt (p, 8,
-        "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        ".75],PARAMETER[\"central_meridian\",-116.6666666666667],");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ting\",1640416.6667],PARAMETER[\"false_northing\",196850");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "00],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
     add_srs_wkt (p, 12,
-        "26705\"]]");
-    p = add_epsg_def (filter, first, last, 26706, "epsg", 26706,
-        "NAD27 / UTM zone 6N");
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"6519\"]]");
+    p = add_epsg_def (filter, first, last, 6520, "epsg", 6520,
+        "NAD83(2011) / Nevada East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=6 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 6N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nevada East\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARAM");
     add_srs_wkt (p, 8,
-        "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "ETER[\"central_meridian\",-115.5833333333333],PARAMETER[");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",200");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "000],PARAMETER[\"false_northing\",8000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "26706\"]]");
-    p = add_epsg_def (filter, first, last, 26707, "epsg", 26707,
-        "NAD27 / UTM zone 7N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6520\"]]");
+    p = add_epsg_def (filter, first, last, 6521, "epsg", 6521,
+        "NAD83(2011) / Nevada East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=7 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=");
+    add_proj4text (p, 2,
+        "GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 7N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nevada East (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75");
     add_srs_wkt (p, 8,
-        "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "],PARAMETER[\"central_meridian\",-115.5833333333333],PAR");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "g\",656166.6667],PARAMETER[\"false_northing\",26246666.6");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "6670001],UNIT[\"US survey foot\",0.3048006096012192,AUTH");
     add_srs_wkt (p, 12,
-        "26707\"]]");
-    p = add_epsg_def (filter, first, last, 26708, "epsg", 26708,
-        "NAD27 / UTM zone 8N");
+        "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"6521\"]]");
+    p = add_epsg_def (filter, first, last, 6522, "epsg", 6522,
+        "NAD83(2011) / Nevada West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=8 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 8N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nevada West\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARAM");
     add_srs_wkt (p, 8,
-        "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "ETER[\"central_meridian\",-118.5833333333333],PARAMETER[");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",800");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "000],PARAMETER[\"false_northing\",4000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "26708\"]]");
-    p = add_epsg_def (filter, first, last, 26709, "epsg", 26709,
-        "NAD27 / UTM zone 9N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6522\"]]");
+    p = add_epsg_def (filter, first, last, 6523, "epsg", 6523,
+        "NAD83(2011) / Nevada West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=9 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps");
+    add_proj4text (p, 2,
+        "=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 9N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Nevada West (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75");
     add_srs_wkt (p, 8,
-        "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "],PARAMETER[\"central_meridian\",-118.5833333333333],PAR");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "g\",2624666.6667],PARAMETER[\"false_northing\",13123333.");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI");
     add_srs_wkt (p, 12,
-        "26709\"]]");
-    p = add_epsg_def (filter, first, last, 26710, "epsg", 26710,
-        "NAD27 / UTM zone 10N");
+        "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
+    add_srs_wkt (p, 13,
+        "],AUTHORITY[\"EPSG\",\"6523\"]]");
+    p = add_epsg_def (filter, first, last, 6524, "epsg", 6524,
+        "NAD83(2011) / New Hampshire");
     add_proj4text (p, 0,
-        "+proj=utm +zone=10 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9");
+    add_proj4text (p, 1,
+        "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 10N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Hampshire\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],PARAM");
     add_srs_wkt (p, 8,
-        "123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "ETER[\"central_meridian\",-71.66666666666667],PARAMETER[");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "\"scale_factor\",0.999966667],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        ",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "26710\"]]");
-    p = add_epsg_def (filter, first, last, 26711, "epsg", 26711,
-        "NAD27 / UTM zone 11N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6524\"]]");
+    p = add_epsg_def (filter, first, last, 6525, "epsg", 6525,
+        "NAD83(2011) / New Hampshire (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9");
+    add_proj4text (p, 1,
+        "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +uni");
+    add_proj4text (p, 2,
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 11N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Hampshire (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.5");
     add_srs_wkt (p, 8,
-        "117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "],PARAMETER[\"central_meridian\",-71.66666666666667],PAR");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "asting\",984250.0000000002],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
     add_srs_wkt (p, 12,
-        "26711\"]]");
-    p = add_epsg_def (filter, first, last, 26712, "epsg", 26712,
-        "NAD27 / UTM zone 12N");
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"6525\"]]");
+    p = add_epsg_def (filter, first, last, 6526, "epsg", 6526,
+        "NAD83(2011) / New Jersey");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+    add_proj4text (p, 1,
+        "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 12N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Jersey\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "tor\"],PARAMETER[\"latitude_of_origin\",38.8333333333333");
     add_srs_wkt (p, 8,
-        "111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "4],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"sca");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",150000],");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
     add_srs_wkt (p, 12,
-        "26712\"]]");
-    p = add_epsg_def (filter, first, last, 26713, "epsg", 26713,
-        "NAD27 / UTM zone 13N");
+        "],AUTHORITY[\"EPSG\",\"6526\"]]");
+    p = add_epsg_def (filter, first, last, 6527, "epsg", 6527,
+        "NAD83(2011) / New Jersey (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+    add_proj4text (p, 1,
+        "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_def");
+    add_proj4text (p, 2,
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 13N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Jersey (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",38.833");
     add_srs_wkt (p, 8,
-        "105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "33333333334],PARAMETER[\"central_meridian\",-74.5],PARAM");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ETER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        ",492125],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
     add_srs_wkt (p, 12,
-        "26713\"]]");
-    p = add_epsg_def (filter, first, last, 26714, "epsg", 26714,
-        "NAD27 / UTM zone 14N");
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"6527\"]]");
+    p = add_epsg_def (filter, first, last, 6528, "epsg", 6528,
+        "NAD83(2011) / New Mexico Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000");
+    add_proj4text (p, 1,
+        "00 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 14N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Mexico Central\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],P");
     add_srs_wkt (p, 8,
-        "99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "ARAMETER[\"central_meridian\",-106.25],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "6714\"]]");
-    p = add_epsg_def (filter, first, last, 26715, "epsg", 26715,
-        "NAD27 / UTM zone 15N");
+        "AUTHORITY[\"EPSG\",\"6528\"]]");
+    p = add_epsg_def (filter, first, last, 6529, "epsg", 6529,
+        "NAD83(2011) / New Mexico Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000");
+    add_proj4text (p, 1,
+        "00.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 15N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Mexico Central (ftUS)\",GEOGC");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        ",31],PARAMETER[\"central_meridian\",-106.25],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",16404");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "16.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]");
     add_srs_wkt (p, 12,
-        "6715\"]]");
-    p = add_epsg_def (filter, first, last, 26716, "epsg", 26716,
-        "NAD27 / UTM zone 16N");
+        ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "6529\"]]");
+    p = add_epsg_def (filter, first, last, 6530, "epsg", 6530,
+        "NAD83(2011) / New Mexico East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 16N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Mexico East\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA");
     add_srs_wkt (p, 8,
-        "87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "METER[\"central_meridian\",-104.3333333333333],PARAMETER");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "[\"scale_factor\",0.999909091],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "\",165000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "6716\"]]");
-    p = add_epsg_def (filter, first, last, 26717, "epsg", 26717,
-        "NAD27 / UTM zone 17N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6530\"]]");
+    p = add_epsg_def (filter, first, last, 6531, "epsg", 6531,
+        "NAD83(2011) / New Mexico East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=us-ft +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 17N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Mexico East (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31");
     add_srs_wkt (p, 8,
-        "81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "],PARAMETER[\"central_meridian\",-104.3333333333333],PAR");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "AMETER[\"scale_factor\",0.999909091],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "asting\",541337.5],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "6717\"]]");
-    p = add_epsg_def (filter, first, last, 26718, "epsg", 26718,
-        "NAD27 / UTM zone 18N");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"6531\"]]");
+    p = add_epsg_def (filter, first, last, 6532, "epsg", 6532,
+        "NAD83(2011) / New Mexico West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 18N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Mexico West\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA");
     add_srs_wkt (p, 8,
-        "75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "METER[\"central_meridian\",-107.8333333333333],PARAMETER");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "[\"scale_factor\",0.999916667],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "\",830000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "6718\"]]");
-    p = add_epsg_def (filter, first, last, 26719, "epsg", 26719,
-        "NAD27 / UTM zone 19N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6532\"]]");
+    p = add_epsg_def (filter, first, last, 6533, "epsg", 6533,
+        "NAD83(2011) / New Mexico West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +units");
+    add_proj4text (p, 2,
+        "=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 19N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New Mexico West (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31");
     add_srs_wkt (p, 8,
-        "69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "],PARAMETER[\"central_meridian\",-107.8333333333333],PAR");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "AMETER[\"scale_factor\",0.999916667],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "asting\",2723091.667],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "6719\"]]");
-    p = add_epsg_def (filter, first, last, 26720, "epsg", 26720,
-        "NAD27 / UTM zone 20N");
+        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 13,
+        "ITY[\"EPSG\",\"6533\"]]");
+    p = add_epsg_def (filter, first, last, 6534, "epsg", 6534,
+        "NAD83(2011) / New York Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 20N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New York Central\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",40],PAR");
     add_srs_wkt (p, 8,
-        "63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "AMETER[\"central_meridian\",-76.58333333333333],PARAMETE");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "R[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        ",250000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "6720\"]]");
-    p = add_epsg_def (filter, first, last, 26721, "epsg", 26721,
-        "NAD27 / UTM zone 21N");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6534\"]]");
+    p = add_epsg_def (filter, first, last, 6535, "epsg", 6535,
+        "NAD83(2011) / New York Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 21N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New York Central (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
     add_srs_wkt (p, 8,
-        "57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "0],PARAMETER[\"central_meridian\",-76.58333333333333],PA");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "RAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "sting\",820208.3330000002],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "6721\"]]");
-    p = add_epsg_def (filter, first, last, 26722, "epsg", 26722,
-        "NAD27 / UTM zone 22N");
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"6535\"]]");
+    p = add_epsg_def (filter, first, last, 6536, "epsg", 6536,
+        "NAD83(2011) / New York East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +datum=NAD27 +units=m +no_defs");
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+    add_proj4text (p, 1,
+        "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / UTM zone 22N\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New York East\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",38.83333333");
     add_srs_wkt (p, 8,
-        "51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "333334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",150");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "6722\"]]");
-    p = add_epsg_def (filter, first, last, 26729, "epsg", 26729,
-        "NAD27 / Alabama East");
+        "NORTH],AUTHORITY[\"EPSG\",\"6536\"]]");
+    p = add_epsg_def (filter, first, last, 6537, "epsg", 6537,
+        "NAD83(2011) / New York East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9");
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
     add_proj4text (p, 1,
-        "9996 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+        "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_def");
     add_proj4text (p, 2,
-        "s-ft +no_defs");
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alabama East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New York East (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",30.5],PARAMETER[\"central_meridian\"");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38.8");
     add_srs_wkt (p, 8,
-        ",-85.83333333333333],PARAMETER[\"scale_factor\",0.99996]");
+        "3333333333334],PARAMETER[\"central_meridian\",-74.5],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
+        "g\",492125],PARAMETER[\"false_northing\",0],UNIT[\"US su");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26729\"]]");
-    p = add_epsg_def (filter, first, last, 26730, "epsg", 26730,
-        "NAD27 / Alabama West");
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"6537\"]]");
+    p = add_epsg_def (filter, first, last, 6538, "epsg", 6538,
+        "NAD83(2011) / New York Long Island");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=1");
+        "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666");
     add_proj4text (p, 1,
-        "52400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_de");
+        "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0");
     add_proj4text (p, 2,
-        "fs");
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alabama West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / New York Long Island\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",30],PARAMETER[\"central_meridian\",");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "-87.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER");
+        "_1\",41.03333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
+        ",40.66666666666666],PARAMETER[\"latitude_of_origin\",40.");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+        "16666666666666],PARAMETER[\"central_meridian\",-74],PARA");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "METER[\"false_easting\",300000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"26730\"]]");
-    p = add_epsg_def (filter, first, last, 26731, "epsg", 26731,
-        "NAD27 / Alaska zone 1");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 14,
+        "538\"]]");
+    p = add_epsg_def (filter, first, last, 6539, "epsg", 6539,
+        "NAD83(2011) / New York Long Island (ftUS)");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32");
+        "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666");
     add_proj4text (p, 1,
-        "3.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5");
+        "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000");
     add_proj4text (p, 2,
-        "000000.001016002 +gamma=323.1301023611111 +datum=NAD27 +");
-    add_proj4text (p, 3,
-        "units=us-ft +no_defs");
+        "000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 1\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / New York Long Island (ftUS)\",GEO");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAM");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "ETER[\"latitude_of_center\",57],PARAMETER[\"longitude_of");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "_center\",-133.6666666666667],PARAMETER[\"azimuth\",323.");
+        "parallel_1\",41.03333333333333],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "1301023611111],PARAMETER[\"rectified_grid_angle\",323.13");
+        "allel_2\",40.66666666666666],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "01023611111],PARAMETER[\"scale_factor\",0.9999],PARAMETE");
+        "gin\",40.16666666666666],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 11,
-        "R[\"false_easting\",16404166.67],PARAMETER[\"false_north");
+        "-74],PARAMETER[\"false_easting\",984250.0000000002],PARA");
     add_srs_wkt (p, 12,
-        "ing\",-16404166.67],UNIT[\"US survey foot\",0.3048006096");
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
     add_srs_wkt (p, 13,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
     add_srs_wkt (p, 14,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26731\"]]");
-    p = add_epsg_def (filter, first, last, 26732, "epsg", 26732,
-        "NAD27 / Alaska zone 2");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6539\"]]");
+    p = add_epsg_def (filter, first, last, 6540, "epsg", 6540,
+        "NAD83(2011) / New York West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400.");
+        "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999");
     add_proj4text (p, 1,
-        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 2\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / New York West\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",40],PARAMET");
     add_srs_wkt (p, 8,
-        "\",-142],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "ER[\"central_meridian\",-78.58333333333333],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "scale_factor\",0.9999375],PARAMETER[\"false_easting\",35");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26732\"]]");
-    p = add_epsg_def (filter, first, last, 26733, "epsg", 26733,
-        "NAD27 / Alaska zone 3");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6540\"]]");
+    p = add_epsg_def (filter, first, last, 6541, "epsg", 6541,
+        "NAD83(2011) / New York West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400.");
+        "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999");
     add_proj4text (p, 1,
-        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 3\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / New York West (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40],");
     add_srs_wkt (p, 8,
-        "\",-146],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "PARAMETER[\"central_meridian\",-78.58333333333333],PARAM");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "ETER[\"scale_factor\",0.9999375],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        "ng\",1148291.667],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26733\"]]");
-    p = add_epsg_def (filter, first, last, 26734, "epsg", 26734,
-        "NAD27 / Alaska zone 4");
+        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"6541\"]]");
+    p = add_epsg_def (filter, first, last, 6542, "epsg", 6542,
+        "NAD83(2011) / North Carolina");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400.");
+        "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333");
     add_proj4text (p, 1,
-        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps");
+    add_proj4text (p, 2,
+        "=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 4\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / North Carolina\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "\",-150],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "6.16666666666666],PARAMETER[\"standard_parallel_2\",34.3");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "3333333333334],PARAMETER[\"latitude_of_origin\",33.75],P");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        "ARAMETER[\"central_meridian\",-79],PARAMETER[\"false_eas");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "ting\",609601.22],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26734\"]]");
-    p = add_epsg_def (filter, first, last, 26735, "epsg", 26735,
-        "NAD27 / Alaska zone 5");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6542\"]]");
+    p = add_epsg_def (filter, first, last, 6543, "epsg", 6543,
+        "NAD83(2011) / North Carolina (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400.");
+        "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333");
     add_proj4text (p, 1,
-        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=");
+    add_proj4text (p, 2,
+        "0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 5\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / North Carolina (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "\",-154],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "el_1\",36.16666666666666],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "2\",34.33333333333334],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        "33.75],PARAMETER[\"central_meridian\",-79],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "alse_easting\",2000000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26735\"]]");
-    p = add_epsg_def (filter, first, last, 26736, "epsg", 26736,
-        "NAD27 / Alaska zone 6");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 14,
+        "ORITY[\"EPSG\",\"6543\"]]");
+    p = add_epsg_def (filter, first, last, 6544, "epsg", 6544,
+        "NAD83(2011) / North Dakota North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400.");
+        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333");
     add_proj4text (p, 1,
-        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR");
+    add_proj4text (p, 2,
+        "S80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 6\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / North Dakota North\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "\",-158],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "1\",48.73333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        ",47.43333333333333],PARAMETER[\"latitude_of_origin\",47]");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        ",PARAMETER[\"central_meridian\",-100.5],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26736\"]]");
-    p = add_epsg_def (filter, first, last, 26737, "epsg", 26737,
-        "NAD27 / Alaska zone 7");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
+    add_srs_wkt (p, 13,
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6544\"]]");
+    p = add_epsg_def (filter, first, last, 6545, "epsg", 6545,
+        "NAD83(2011) / North Dakota North (ft)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360.");
+        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333");
     add_proj4text (p, 1,
-        "4267208534 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +");
+    add_proj4text (p, 2,
+        "ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 7\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / North Dakota North (ft)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 8,
-        "\",-162],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "lel_1\",48.73333333333333],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 9,
-        "false_easting\",700000],PARAMETER[\"false_northing\",0],");
+        "_2\",47.43333333333333],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        ",47],PARAMETER[\"central_meridian\",-100.5],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "false_easting\",1968503.937],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26737\"]]");
-    p = add_epsg_def (filter, first, last, 26738, "epsg", 26738,
-        "NAD27 / Alaska zone 8");
+        ",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 14,
+        "545\"]]");
+    p = add_epsg_def (filter, first, last, 6546, "epsg", 6546,
+        "NAD83(2011) / North Dakota South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400.");
+        "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333");
     add_proj4text (p, 1,
-        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 8\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / North Dakota South\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "\",-166],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "1\",47.48333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        ",46.18333333333333],PARAMETER[\"latitude_of_origin\",45.");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        "66666666666666],PARAMETER[\"central_meridian\",-100.5],P");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "ARAMETER[\"false_easting\",600000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26738\"]]");
-    p = add_epsg_def (filter, first, last, 26739, "epsg", 26739,
-        "NAD27 / Alaska zone 9");
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6546\"]]");
+    p = add_epsg_def (filter, first, last, 6547, "epsg", 6547,
+        "NAD83(2011) / North Dakota South (ft)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880.");
+        "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333");
     add_proj4text (p, 1,
-        "3657607315 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9");
+    add_proj4text (p, 2,
+        "999976 +y_0=0 +ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 9\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / North Dakota South (ft)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+        "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 8,
-        "\",-170],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+        "lel_1\",47.48333333333333],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 9,
-        "false_easting\",600000],PARAMETER[\"false_northing\",0],");
+        "_2\",46.18333333333333],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+        ",45.66666666666666],PARAMETER[\"central_meridian\",-100.");
     add_srs_wkt (p, 11,
-        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+        "5],PARAMETER[\"false_easting\",1968503.937],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"26739\"]]");
-    p = add_epsg_def (filter, first, last, 26740, "epsg", 26740,
-        "NAD27 / Alaska zone 10");
+        "false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 14,
+        "ITY[\"EPSG\",\"6547\"]]");
+    p = add_epsg_def (filter, first, last, 6548, "epsg", 6548,
+        "NAD83(2011) / Ohio North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333");
+        "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39");
     add_proj4text (p, 1,
-        "334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 ");
+        ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G");
     add_proj4text (p, 2,
-        "+datum=NAD27 +units=us-ft +no_defs");
+        "RS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Alaska zone 10\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Ohio North\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",53.83333333333334],PAR");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],P");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",51.83333333333334],PARAME");
+        "ARAMETER[\"standard_parallel_2\",40.43333333333333],PARA");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",51],PARAMETER[\"central_merid");
+        "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE");
     add_srs_wkt (p, 10,
-        "ian\",-176],PARAMETER[\"false_easting\",3000000],PARAMET");
+        "R[\"central_meridian\",-82.5],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480");
+        ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 12,
-        "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 13,
-        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26740\"]]");
-    p = add_epsg_def (filter, first, last, 26741, "epsg", 26741,
-        "NAD27 / California zone I");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6548\"]]");
+    p = add_epsg_def (filter, first, last, 6549, "epsg", 6549,
+        "NAD83(2011) / Ohio North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3");
+        "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39");
     add_proj4text (p, 1,
-        "3333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 ");
+        ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G");
     add_proj4text (p, 2,
-        "+datum=NAD27 +units=us-ft +no_defs");
+        "RS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone I\",GEOGCS[\"NAD27\",DA");
+        "PROJCS[\"NAD83(2011) / Ohio North (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"standard_parallel_1\",41.66666666666666],P");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"standard_parallel_2\",40],PARAMETER[\"latitud");
+        "\",41.7],PARAMETER[\"standard_parallel_2\",40.4333333333");
     add_srs_wkt (p, 9,
-        "e_of_origin\",39.33333333333334],PARAMETER[\"central_mer");
+        "3333],PARAMETER[\"latitude_of_origin\",39.66666666666666");
     add_srs_wkt (p, 10,
-        "idian\",-122],PARAMETER[\"false_easting\",2000000],PARAM");
+        "],PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
+        "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 12,
-        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26741\"]]");
-    p = add_epsg_def (filter, first, last, 26742, "epsg", 26742,
-        "NAD27 / California zone II");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 14,
+        "TY[\"EPSG\",\"6549\"]]");
+    p = add_epsg_def (filter, first, last, 6550, "epsg", 6550,
+        "NAD83(2011) / Ohio South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333");
+        "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333");
     add_proj4text (p, 1,
-        "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.219");
+        "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS");
     add_proj4text (p, 2,
-        "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone II\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD83(2011) / Ohio South\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",39.83333333333334]");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.0333");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",38.33333333333334],PA");
+        "3333333333],PARAMETER[\"standard_parallel_2\",38.7333333");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",37.66666666666666],PARAME");
+        "3333333],PARAMETER[\"latitude_of_origin\",38],PARAMETER[");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-122],PARAMETER[\"false_easting");
+        "\"central_meridian\",-82.5],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 11,
-        "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su");
+        "600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 12,
-        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 13,
-        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 14,
-        "\",\"26742\"]]");
-    p = add_epsg_def (filter, first, last, 26743, "epsg", 26743,
-        "NAD27 / California zone III");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6550\"]]");
+    p = add_epsg_def (filter, first, last, 6551, "epsg", 6551,
+        "NAD83(2011) / Ohio South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666");
+        "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333");
     add_proj4text (p, 1,
-        "667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_");
+        "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS");
     add_proj4text (p, 2,
-        "0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone III\",GEOGCS[\"NAD27\",");
+        "PROJCS[\"NAD83(2011) / Ohio South (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",38.43333333333333]");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",37.06666666666667],PA");
+        "\",40.03333333333333],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",36.5],PARAMETER[\"central");
+        "38.73333333333333],PARAMETER[\"latitude_of_origin\",38],");
     add_srs_wkt (p, 10,
-        "_meridian\",-120.5],PARAMETER[\"false_easting\",2000000]");
+        "PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
+        "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 12,
-        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26743\"");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 26744, "epsg", 26744,
-        "NAD27 / California zone IV");
+        "[\"EPSG\",\"6551\"]]");
+    p = add_epsg_def (filter, first, last, 6552, "epsg", 6552,
+        "NAD83(2011) / Oklahoma North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333");
+        "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666");
     add_proj4text (p, 1,
-        "4 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +datum=NAD27");
+        "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        " +units=us-ft +no_defs");
+        " +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone IV\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD83(2011) / Oklahoma North\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\"");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "standard_parallel_2\",36],PARAMETER[\"latitude_of_origin");
+        "6.76666666666667],PARAMETER[\"standard_parallel_2\",35.5");
     add_srs_wkt (p, 9,
-        "\",35.33333333333334],PARAMETER[\"central_meridian\",-11");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",35],PARA");
     add_srs_wkt (p, 10,
-        "9],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals");
+        "METER[\"central_meridian\",-98],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 11,
-        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
+        "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 12,
-        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
     add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26744\"]]");
-    p = add_epsg_def (filter, first, last, 26745, "epsg", 26745,
-        "NAD27 / California zone V");
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6552\"]]");
+    p = add_epsg_def (filter, first, last, 6553, "epsg", 6553,
+        "NAD83(2011) / Oklahoma North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333");
+        "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666");
     add_proj4text (p, 1,
-        "333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=");
+        "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "0 +datum=NAD27 +units=us-ft +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone V\",GEOGCS[\"NAD27\",DA");
+        "PROJCS[\"NAD83(2011) / Oklahoma North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"standard_parallel_1\",35.46666666666667],P");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"standard_parallel_2\",34.03333333333333],PARA");
+        "el_1\",36.76666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "METER[\"latitude_of_origin\",33.5],PARAMETER[\"central_m");
+        "2\",35.56666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "eridian\",-118],PARAMETER[\"false_easting\",2000000],PAR");
+        "35],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3");
+        "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 12,
-        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26745\"]]");
-    p = add_epsg_def (filter, first, last, 26746, "epsg", 26746,
-        "NAD27 / California zone VI");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 14,
+        "TY[\"EPSG\",\"6553\"]]");
+    p = add_epsg_def (filter, first, last, 6554, "epsg", 6554,
+        "NAD83(2011) / Oklahoma South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333");
+        "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.");
+        "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0");
     add_proj4text (p, 2,
-        "2192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone VI\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD83(2011) / Oklahoma South\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",33.88333333333333]");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",32.78333333333333],PA");
+        "5.23333333333333],PARAMETER[\"standard_parallel_2\",33.9");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",32.16666666666666],PARAME");
+        "3333333333333],PARAMETER[\"latitude_of_origin\",33.33333");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-116.25],PARAMETER[\"false_east");
+        "333333334],PARAMETER[\"central_meridian\",-98],PARAMETER");
     add_srs_wkt (p, 11,
-        "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US");
+        "[\"false_easting\",600000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 12,
-        " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 13,
-        "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6554\"]");
     add_srs_wkt (p, 14,
-        "PSG\",\"26746\"]]");
-    p = add_epsg_def (filter, first, last, 26747, "epsg", 26747,
-        "NAD27 / California zone VII (deprecated)");
+        "]");
+    p = add_epsg_def (filter, first, last, 6555, "epsg", 6555,
+        "NAD83(2011) / Oklahoma South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666");
+        "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333");
     add_proj4text (p, 1,
-        "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +");
+        "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0");
     add_proj4text (p, 2,
-        "x_0=1276106.450596901 +y_0=127079.524511049 +datum=NAD27");
-    add_proj4text (p, 3,
-        " +units=us-ft +no_defs");
+        "=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone VII (deprecated)\",GEOG");
+        "PROJCS[\"NAD83(2011) / Oklahoma South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "CS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROI");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Confo");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.4");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "1666666666666],PARAMETER[\"standard_parallel_2\",33.8666");
+        "el_1\",35.23333333333333],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "6666666667],PARAMETER[\"latitude_of_origin\",34.13333333");
+        "2\",33.93333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "333333],PARAMETER[\"central_meridian\",-118.333333333333");
+        "33.33333333333334],PARAMETER[\"central_meridian\",-98],P");
     add_srs_wkt (p, 11,
-        "3],PARAMETER[\"false_easting\",4186692.58],PARAMETER[\"f");
+        "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no");
     add_srs_wkt (p, 12,
-        "alse_northing\",416926.74],UNIT[\"US survey foot\",0.304");
+        "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A");
     add_srs_wkt (p, 13,
-        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 14,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26747\"]]");
-    p = add_epsg_def (filter, first, last, 26748, "epsg", 26748,
-        "NAD27 / Arizona East");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6555\"]]");
+    p = add_epsg_def (filter, first, last, 6556, "epsg", 6556,
+        "NAD83(2011) / Oregon Lambert");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999");
+        "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120");
     add_proj4text (p, 1,
-        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
-    add_proj4text (p, 2,
-        "t +no_defs");
+        ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Arizona East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Oregon Lambert\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",31],PARAMETER[\"central_meridian\",");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        "-110.1666666666667],PARAMETER[\"scale_factor\",0.9999],P");
+        "3],PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"l");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
+        "atitude_of_origin\",41.75],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
+        ",-120.5],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26748\"]]");
-    p = add_epsg_def (filter, first, last, 26749, "epsg", 26749,
-        "NAD27 / Arizona Central");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"6556\"]]");
+    p = add_epsg_def (filter, first, last, 6557, "epsg", 6557,
+        "NAD83(2011) / Oregon Lambert (ft)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999");
+        "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120");
     add_proj4text (p, 1,
-        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
+        ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no");
     add_proj4text (p, 2,
-        "t +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Arizona Central\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD83(2011) / Oregon Lambert (ft)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "n\",-111.9166666666667],PARAMETER[\"scale_factor\",0.999");
+        "_1\",43],PARAMETER[\"standard_parallel_2\",45.5],PARAMET");
     add_srs_wkt (p, 9,
-        "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "ER[\"latitude_of_origin\",41.75],PARAMETER[\"central_mer");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+        "idian\",-120.5],PARAMETER[\"false_easting\",1312335.958]");
     add_srs_wkt (p, 11,
-        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AU");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26749\"]]");
-    p = add_epsg_def (filter, first, last, 26750, "epsg", 26750,
-        "NAD27 / Arizona West");
+        "THORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+    add_srs_wkt (p, 13,
+        "NORTH],AUTHORITY[\"EPSG\",\"6557\"]]");
+    p = add_epsg_def (filter, first, last, 6558, "epsg", 6558,
+        "NAD83(2011) / Oregon North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0");
+        "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6");
     add_proj4text (p, 1,
-        "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_");
+        "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G");
     add_proj4text (p, 2,
-        "defs");
+        "RS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Arizona West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Oregon North\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",31],PARAMETER[\"central_meridian\",");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46");
     add_srs_wkt (p, 8,
-        "-113.75],PARAMETER[\"scale_factor\",0.999933333],PARAMET");
+        "],PARAMETER[\"standard_parallel_2\",44.33333333333334],P");
     add_srs_wkt (p, 9,
-        "ER[\"false_easting\",500000],PARAMETER[\"false_northing\"");
+        "ARAMETER[\"latitude_of_origin\",43.66666666666666],PARAM");
     add_srs_wkt (p, 10,
-        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+        "ETER[\"central_meridian\",-120.5],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "ing\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"26750\"]]");
-    p = add_epsg_def (filter, first, last, 26751, "epsg", 26751,
-        "NAD27 / Arkansas North");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6558\"]]");
+    p = add_epsg_def (filter, first, last, 6559, "epsg", 6559,
+        "NAD83(2011) / Oregon North (ft)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333");
+        "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6");
     add_proj4text (p, 1,
-        "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192");
+        "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 ");
     add_proj4text (p, 2,
-        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "+ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Arkansas North\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Oregon North (ft)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",36.23333333333333],PAR");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",34.93333333333333],PARAME");
+        "\",46],PARAMETER[\"standard_parallel_2\",44.333333333333");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",34.33333333333334],PARAMETER[");
+        "34],PARAMETER[\"latitude_of_origin\",43.66666666666666],");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-92],PARAMETER[\"false_easting\",20");
+        "PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey ");
+        "_easting\",8202099.738],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 12,
-        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
+        "UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[");
     add_srs_wkt (p, 13,
-        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6559\"");
     add_srs_wkt (p, 14,
-        "26751\"]]");
-    p = add_epsg_def (filter, first, last, 26752, "epsg", 26752,
-        "NAD27 / Arkansas South");
+        "]]");
+    p = add_epsg_def (filter, first, last, 6560, "epsg", 6560,
+        "NAD83(2011) / Oregon South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32");
+        "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6");
     add_proj4text (p, 1,
-        ".66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0");
+        "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G");
     add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "RS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Arkansas South\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Oregon South\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",34.76666666666667],PAR");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",33.3],PARAMETER[\"latitud");
+        "],PARAMETER[\"standard_parallel_2\",42.33333333333334],P");
     add_srs_wkt (p, 9,
-        "e_of_origin\",32.66666666666666],PARAMETER[\"central_mer");
+        "ARAMETER[\"latitude_of_origin\",41.66666666666666],PARAM");
     add_srs_wkt (p, 10,
-        "idian\",-92],PARAMETER[\"false_easting\",2000000],PARAME");
+        "ETER[\"central_meridian\",-120.5],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048");
+        "ing\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 12,
-        "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
     add_srs_wkt (p, 13,
-        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26752\"]]");
-    p = add_epsg_def (filter, first, last, 26753, "epsg", 26753,
-        "NAD27 / Colorado North");
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6560\"]]");
+    p = add_epsg_def (filter, first, last, 6561, "epsg", 6561,
+        "NAD83(2011) / Oregon South (ft)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333");
+        "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6");
     add_proj4text (p, 1,
-        "333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2");
+        "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 ");
     add_proj4text (p, 2,
-        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "+ellps=GRS80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Colorado North\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Oregon South (ft)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",39.71666666666667],PAR");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",40.78333333333333],PARAME");
+        "\",44],PARAMETER[\"standard_parallel_2\",42.333333333333");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",39.33333333333334],PARAMETER[");
+        "34],PARAMETER[\"latitude_of_origin\",41.66666666666666],");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-105.5],PARAMETER[\"false_easting\"");
+        "PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+        "_easting\",4921259.843],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 12,
-        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+        "UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[");
     add_srs_wkt (p, 13,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6561\"");
     add_srs_wkt (p, 14,
-        ",\"26753\"]]");
-    p = add_epsg_def (filter, first, last, 26754, "epsg", 26754,
-        "NAD27 / Colorado Central");
+        "]]");
+    p = add_epsg_def (filter, first, last, 6562, "epsg", 6562,
+        "NAD83(2011) / Pennsylvania North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333");
+        "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4");
     add_proj4text (p, 1,
-        "3334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +datum=");
+        "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps");
     add_proj4text (p, 2,
-        "NAD27 +units=us-ft +no_defs");
+        "=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Colorado Central\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD83(2011) / Pennsylvania North\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"sta");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "ndard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin");
+        "1\",41.95],PARAMETER[\"standard_parallel_2\",40.88333333");
     add_srs_wkt (p, 9,
-        "\",37.83333333333334],PARAMETER[\"central_meridian\",-10");
+        "333333],PARAMETER[\"latitude_of_origin\",40.166666666666");
     add_srs_wkt (p, 10,
-        "5.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa");
+        "66],PARAMETER[\"central_meridian\",-77.75],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
+        "alse_easting\",600000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 12,
-        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 13,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26754\"]]");
-    p = add_epsg_def (filter, first, last, 26755, "epsg", 26755,
-        "NAD27 / Colorado South");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6562\"]]");
+    p = add_epsg_def (filter, first, last, 6563, "epsg", 6563,
+        "NAD83(2011) / Pennsylvania North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333");
+        "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4");
     add_proj4text (p, 1,
-        "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2");
+        "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps");
     add_proj4text (p, 2,
-        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Colorado South\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Pennsylvania North (ftUS)\",GEOGC");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",37.23333333333333],PARAME");
+        "rallel_1\",41.95],PARAMETER[\"standard_parallel_2\",40.8");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",36.66666666666666],PARAMETER[");
+        "8333333333333],PARAMETER[\"latitude_of_origin\",40.16666");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-105.5],PARAMETER[\"false_easting\"");
+        "666666666],PARAMETER[\"central_meridian\",-77.75],PARAME");
     add_srs_wkt (p, 11,
-        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+        "TER[\"false_easting\",1968500],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+        "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR");
     add_srs_wkt (p, 13,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
     add_srs_wkt (p, 14,
-        ",\"26755\"]]");
-    p = add_epsg_def (filter, first, last, 26756, "epsg", 26756,
-        "NAD27 / Connecticut");
+        "H],AUTHORITY[\"EPSG\",\"6563\"]]");
+    p = add_epsg_def (filter, first, last, 6564, "epsg", 6564,
+        "NAD83(2011) / Pennsylvania South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40");
+        "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333");
     add_proj4text (p, 1,
-        ".83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_");
+        "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +");
     add_proj4text (p, 2,
-        "0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Connecticut\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Pennsylvania South\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",41.86666666666667],PARAME");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_o");
+        "1\",40.96666666666667],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "f_origin\",40.83333333333334],PARAMETER[\"central_meridi");
+        ",39.93333333333333],PARAMETER[\"latitude_of_origin\",39.");
     add_srs_wkt (p, 10,
-        "an\",-72.75],PARAMETER[\"false_easting\",600000],PARAMET");
+        "33333333333334],PARAMETER[\"central_meridian\",-77.75],P");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480");
+        "ARAMETER[\"false_easting\",600000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS");
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 13,
-        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26756\"]]");
-    p = add_epsg_def (filter, first, last, 26757, "epsg", 26757,
-        "NAD27 / Delaware");
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"6564\"]]");
+    p = add_epsg_def (filter, first, last, 6565, "epsg", 6565,
+        "NAD83(2011) / Pennsylvania South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999");
+        "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333");
     add_proj4text (p, 1,
-        "995 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us");
+        "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +");
     add_proj4text (p, 2,
-        "-ft +no_defs");
+        "y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Delaware\",GEOGCS[\"NAD27\",DATUM[\"Nor");
+        "PROJCS[\"NAD83(2011) / Pennsylvania South (ftUS)\",GEOGC");
     add_srs_wkt (p, 1,
-        "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820");
+        "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH");
+        "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "titude_of_origin\",38],PARAMETER[\"central_meridian\",-7");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "5.41666666666667],PARAMETER[\"scale_factor\",0.999995],P");
+        "rallel_1\",40.96666666666667],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
+        "lel_2\",39.93333333333333],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
+        "n\",39.33333333333334],PARAMETER[\"central_meridian\",-7");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "7.75],PARAMETER[\"false_easting\",1968500],PARAMETER[\"f");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26757\"]]");
-    p = add_epsg_def (filter, first, last, 26758, "epsg", 26758,
-        "NAD27 / Florida East");
+        "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960");
+    add_srs_wkt (p, 13,
+        "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 14,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6565\"]]");
+    p = add_epsg_def (filter, first, last, 6566, "epsg", 6566,
+        "NAD83(2011) / Puerto Rico and Virgin Is.");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999");
+        "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333");
     add_proj4text (p, 1,
-        "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+        "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +");
     add_proj4text (p, 2,
-        "=us-ft +no_defs");
+        "x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Florida East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Puerto Rico and Virgin Is.\",GEOG");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9999411");
+        "rallel_1\",18.43333333333333],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 9,
-        "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "lel_2\",18.03333333333333],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
+        "n\",17.83333333333333],PARAMETER[\"central_meridian\",-6");
     add_srs_wkt (p, 11,
-        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "6.43333333333334],PARAMETER[\"false_easting\",200000],PA");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26758\"]]");
+        "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 13,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 14,
+        "RTH],AUTHORITY[\"EPSG\",\"6566\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_31.c b/src/srsinit/epsg_inlined_31.c
index c0ccb49..9646f99 100644
--- a/src/srsinit/epsg_inlined_31.c
+++ b/src/srsinit/epsg_inlined_31.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3692 +52,3442 @@ initialize_epsg_31 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 26759, "epsg", 26759,
-        "NAD27 / Florida West");
+    p = add_epsg_def (filter, first, last, 6567, "epsg", 6567,
+        "NAD83(2011) / Rhode Island");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999");
+        "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9");
     add_proj4text (p, 1,
-        "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+        "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_def");
     add_proj4text (p, 2,
-        "=us-ft +no_defs");
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Florida West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Rhode Island\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",41.08333333");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-82],PARAMETER[\"scale_factor\",0.9999411");
+        "333334],PARAMETER[\"central_meridian\",-71.5],PARAMETER[");
     add_srs_wkt (p, 9,
-        "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+        "\"scale_factor\",0.99999375],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
+        ",100000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26759\"]]");
-    p = add_epsg_def (filter, first, last, 26760, "epsg", 26760,
-        "NAD27 / Florida North");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6567\"]]");
+    p = add_epsg_def (filter, first, last, 6568, "epsg", 6568,
+        "NAD83(2011) / Rhode Island (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2");
+        "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9");
     add_proj4text (p, 1,
-        "9 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2");
+        "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +unit");
     add_proj4text (p, 2,
-        "7 +units=us-ft +no_defs");
+        "s=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Florida North\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / Rhode Island (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ARAMETER[\"standard_parallel_1\",30.75],PARAMETER[\"stan");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.0");
     add_srs_wkt (p, 8,
-        "dard_parallel_2\",29.58333333333333],PARAMETER[\"latitud");
+        "8333333333334],PARAMETER[\"central_meridian\",-71.5],PAR");
     add_srs_wkt (p, 9,
-        "e_of_origin\",29],PARAMETER[\"central_meridian\",-84.5],");
+        "AMETER[\"scale_factor\",0.99999375],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n");
+        "sting\",328083.3333],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26760\"]]");
-    p = add_epsg_def (filter, first, last, 26766, "epsg", 26766,
-        "NAD27 / Georgia East");
+        "TY[\"EPSG\",\"6568\"]]");
+    p = add_epsg_def (filter, first, last, 6569, "epsg", 6569,
+        "NAD83(2011) / South Carolina");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999");
+        "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31");
     add_proj4text (p, 1,
-        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
+        ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS");
     add_proj4text (p, 2,
-        "t +no_defs");
+        "80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Georgia East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / South Carolina\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",30],PARAMETER[\"central_meridian\",");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "-82.16666666666667],PARAMETER[\"scale_factor\",0.9999],P");
+        "4.83333333333334],PARAMETER[\"standard_parallel_2\",32.5");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
+        "],PARAMETER[\"latitude_of_origin\",31.83333333333333],PA");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
+        "RAMETER[\"central_meridian\",-81],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "ing\",609600],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26766\"]]");
-    p = add_epsg_def (filter, first, last, 26767, "epsg", 26767,
-        "NAD27 / Georgia West");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6569\"]]");
+    p = add_epsg_def (filter, first, last, 6570, "epsg", 6570,
+        "NAD83(2011) / South Carolina (ft)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999");
+        "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31");
     add_proj4text (p, 1,
-        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
+        ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS");
     add_proj4text (p, 2,
-        "t +no_defs");
+        "80 +units=ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Georgia West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / South Carolina (ft)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",30],PARAMETER[\"central_meridian\",");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "-84.16666666666667],PARAMETER[\"scale_factor\",0.9999],P");
+        "_1\",34.83333333333334],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
+        ",32.5],PARAMETER[\"latitude_of_origin\",31.8333333333333");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
+        "3],PARAMETER[\"central_meridian\",-81],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26767\"]]");
-    p = add_epsg_def (filter, first, last, 26768, "epsg", 26768,
-        "NAD27 / Idaho East");
+        "[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6570\"]]");
+    p = add_epsg_def (filter, first, last, 6571, "epsg", 6571,
+        "NAD83(2011) / South Dakota North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666");
+        "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666");
     add_proj4text (p, 1,
-        "666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0");
+        "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        "0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Idaho East\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(2011) / South Dakota North\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-112.1666666666667],PARAMETER[\"scale_fac");
+        "1\",45.68333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "tor\",0.999947368],PARAMETER[\"false_easting\",500000],P");
+        ",44.41666666666666],PARAMETER[\"latitude_of_origin\",43.");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "83333333333334],PARAMETER[\"central_meridian\",-100],PAR");
     add_srs_wkt (p, 11,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "AMETER[\"false_easting\",600000],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26768\"]");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 26769, "epsg", 26769,
-        "NAD27 / Idaho Central");
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "6571\"]]");
+    p = add_epsg_def (filter, first, last, 6572, "epsg", 6572,
+        "NAD83(2011) / South Dakota North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99");
+        "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666");
     add_proj4text (p, 1,
-        "99473679999999 +x_0=152400.3048006096 +y_0=0 +datum=NAD2");
+        "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_");
     add_proj4text (p, 2,
-        "7 +units=us-ft +no_defs");
+        "0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Idaho Central\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / South Dakota North (ftUS)\",GEOGC");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",41.66666666666666],PARAMETER[\"c");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-114],PARAMETER[\"scale_factor\",0.999");
+        "rallel_1\",45.68333333333333],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 9,
-        "947368],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "lel_2\",44.41666666666666],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "n\",43.83333333333334],PARAMETER[\"central_meridian\",-1");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "00],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26769\"]]");
-    p = add_epsg_def (filter, first, last, 26770, "epsg", 26770,
-        "NAD27 / Idaho West");
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 13,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 14,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6572\"]]");
+    p = add_epsg_def (filter, first, last, 6573, "epsg", 6573,
+        "NAD83(2011) / South Dakota South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0");
+        "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42");
     add_proj4text (p, 1,
-        ".999933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u");
+        ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y");
     add_proj4text (p, 2,
-        "nits=us-ft +no_defs");
+        "_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Idaho West\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(2011) / South Dakota South\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-115.75],PARAMETER[\"scale_factor\",0.999");
+        "1\",44.4],PARAMETER[\"standard_parallel_2\",42.833333333");
     add_srs_wkt (p, 9,
-        "933333],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "33334],PARAMETER[\"latitude_of_origin\",42.3333333333333");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "4],PARAMETER[\"central_meridian\",-100.3333333333333],PA");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "RAMETER[\"false_easting\",600000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26770\"]]");
-    p = add_epsg_def (filter, first, last, 26771, "epsg", 26771,
-        "NAD27 / Illinois East");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "6573\"]]");
+    p = add_epsg_def (filter, first, last, 6574, "epsg", 6574,
+        "NAD83(2011) / South Dakota South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333");
+        "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42");
     add_proj4text (p, 1,
-        "333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0");
+        ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        "_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Illinois East\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / South Dakota South (ftUS)\",GEOGC");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-88.33333333333333],PARAMETER[\"scale_");
+        "rallel_1\",44.4],PARAMETER[\"standard_parallel_2\",42.83");
     add_srs_wkt (p, 9,
-        "factor\",0.999975],PARAMETER[\"false_easting\",500000],P");
+        "333333333334],PARAMETER[\"latitude_of_origin\",42.333333");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "33333334],PARAMETER[\"central_meridian\",-100.3333333333");
     add_srs_wkt (p, 11,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "333],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26771\"]");
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 26772, "epsg", 26772,
-        "NAD27 / Illinois West");
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6574\"]]");
+    p = add_epsg_def (filter, first, last, 6575, "epsg", 6575,
+        "NAD83(2011) / Tennessee");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666");
+        "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3");
     add_proj4text (p, 1,
-        "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+        "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR");
     add_proj4text (p, 2,
-        "um=NAD27 +units=us-ft +no_defs");
+        "S80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Illinois West\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / Tennessee\",GEOGCS[\"NAD83(2011)\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\",");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-90.16666666666667],PARAMETER[\"scale_");
+        "6666666666],PARAMETER[\"standard_parallel_2\",35.25],PAR");
     add_srs_wkt (p, 9,
-        "factor\",0.999941177],PARAMETER[\"false_easting\",500000");
+        "AMETER[\"latitude_of_origin\",34.33333333333334],PARAMET");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
+        "ER[\"central_meridian\",-86],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+        ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 12,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26772\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 26773, "epsg", 26773,
-        "NAD27 / Indiana East");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6575\"]]");
+    p = add_epsg_def (filter, first, last, 6576, "epsg", 6576,
+        "NAD83(2011) / Tennessee (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9");
+        "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3");
     add_proj4text (p, 1,
-        "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "S80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Indiana East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Tennessee (ftUS)\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\"");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966");
+        ",36.41666666666666],PARAMETER[\"standard_parallel_2\",35");
     add_srs_wkt (p, 9,
-        "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        ".25],PARAMETER[\"latitude_of_origin\",34.33333333333334]");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        ",PARAMETER[\"central_meridian\",-86],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26773\"]]");
-    p = add_epsg_def (filter, first, last, 26774, "epsg", 26774,
-        "NAD27 / Indiana West");
+        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 14,
+        "EPSG\",\"6576\"]]");
+    p = add_epsg_def (filter, first, last, 6577, "epsg", 6577,
+        "NAD83(2011) / Texas Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9");
+        "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666");
     add_proj4text (p, 1,
-        "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Indiana West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Texas Central\",GEOGCS[\"NAD83(20");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\"");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",31");
     add_srs_wkt (p, 8,
-        ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966");
+        ".88333333333333],PARAMETER[\"standard_parallel_2\",30.11");
     add_srs_wkt (p, 9,
-        "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        "666666666667],PARAMETER[\"latitude_of_origin\",29.666666");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "66666667],PARAMETER[\"central_meridian\",-100.3333333333");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "333],PARAMETER[\"false_easting\",700000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26774\"]]");
-    p = add_epsg_def (filter, first, last, 26775, "epsg", 26775,
-        "NAD27 / Iowa North");
+        "se_northing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 14,
+        "TY[\"EPSG\",\"6577\"]]");
+    p = add_epsg_def (filter, first, last, 6578, "epsg", 6578,
+        "NAD83(2011) / Texas Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
+        "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666");
     add_proj4text (p, 1,
-        "667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0");
+        "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +units=u");
+    add_proj4text (p, 3,
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Iowa North\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(2011) / Texas Central (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "METER[\"standard_parallel_1\",43.26666666666667],PARAMET");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",42.06666666666667],PARAMETER[");
+        "_1\",31.88333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "\"latitude_of_origin\",41.5],PARAMETER[\"central_meridia");
+        ",30.11666666666667],PARAMETER[\"latitude_of_origin\",29.");
     add_srs_wkt (p, 10,
-        "n\",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "66666666666667],PARAMETER[\"central_meridian\",-100.3333");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        "333333333],PARAMETER[\"false_easting\",2296583.333],PARA");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+        "METER[\"false_northing\",9842500.000000002],UNIT[\"US su");
     add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26775\"]]");
-    p = add_epsg_def (filter, first, last, 26776, "epsg", 26776,
-        "NAD27 / Iowa South");
+        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
+    add_srs_wkt (p, 14,
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 15,
+        "\",\"6578\"]]");
+    p = add_epsg_def (filter, first, last, 6579, "epsg", 6579,
+        "NAD83(2011) / Texas Centric Albers Equal Area");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
+        "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x");
     add_proj4text (p, 1,
-        "667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0");
-    add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Iowa South\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(2011) / Texas Centric Albers Equal Area\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        ",GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_R");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "eference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "G\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJE");
     add_srs_wkt (p, 7,
-        "METER[\"standard_parallel_1\",41.78333333333333],PARAMET");
+        "CTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",40.61666666666667],PARAMETER[");
+        "parallel_1\",27.5],PARAMETER[\"standard_parallel_2\",35]");
     add_srs_wkt (p, 9,
-        "\"latitude_of_origin\",40],PARAMETER[\"central_meridian\"");
+        ",PARAMETER[\"latitude_of_center\",18],PARAMETER[\"longit");
     add_srs_wkt (p, 10,
-        ",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"");
+        "ude_of_center\",-100],PARAMETER[\"false_easting\",150000");
     add_srs_wkt (p, 11,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "0],PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",");
     add_srs_wkt (p, 12,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 13,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26776\"]]");
-    p = add_epsg_def (filter, first, last, 26777, "epsg", 26777,
-        "NAD27 / Kansas North");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6579\"]]");
+    p = add_epsg_def (filter, first, last, 6580, "epsg", 6580,
+        "NAD83(2011) / Texas Centric Lambert Conformal");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
+        "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x");
     add_proj4text (p, 1,
-        "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192");
-    add_proj4text (p, 2,
-        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Kansas North\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Texas Centric Lambert Conformal\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        ",GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_R");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "eference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "G\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJE");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",39.78333333333333],PARAME");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",38.71666666666667],PARAMETER");
+        "ard_parallel_1\",27.5],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"c");
+        ",35],PARAMETER[\"latitude_of_origin\",18],PARAMETER[\"ce");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-98],PARAMETER[\"false_easting\",20000");
+        "ntral_meridian\",-100],PARAMETER[\"false_easting\",15000");
     add_srs_wkt (p, 11,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo");
+        "00],PARAMETER[\"false_northing\",5000000],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 13,
-        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267");
-    add_srs_wkt (p, 14,
-        "77\"]]");
-    p = add_epsg_def (filter, first, last, 26778, "epsg", 26778,
-        "NAD27 / Kansas South");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6580\"]]");
+    p = add_epsg_def (filter, first, last, 6581, "epsg", 6581,
+        "NAD83(2011) / Texas North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
+        "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3");
     add_proj4text (p, 1,
-        "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.21");
+        "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +u");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Kansas South\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD83(2011) / Texas North\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",38.56666666666667],PARAME");
+        "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",37.26666666666667],PARAMETER");
+        "18333333333333],PARAMETER[\"standard_parallel_2\",34.65]");
     add_srs_wkt (p, 9,
-        "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c");
+        ",PARAMETER[\"latitude_of_origin\",34],PARAMETER[\"centra");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200");
+        "l_meridian\",-101.5],PARAMETER[\"false_easting\",200000]");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f");
+        ",PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 13,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2");
-    add_srs_wkt (p, 14,
-        "6778\"]]");
-    p = add_epsg_def (filter, first, last, 26779, "epsg", 26779,
-        "NAD27 / Kentucky North");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6581\"]]");
+    p = add_epsg_def (filter, first, last, 6582, "epsg", 6582,
+        "NAD83(2011) / Texas North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666");
+        "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3");
     add_proj4text (p, 1,
-        "667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_");
+        "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989");
     add_proj4text (p, 2,
-        "0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "83998 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Kentucky North\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Texas North (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",37.96666666666667],PAR");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",38.96666666666667],PARAME");
+        "1\",36.18333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer");
+        ",34.65],PARAMETER[\"latitude_of_origin\",34],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "idian\",-84.25],PARAMETER[\"false_easting\",2000000],PAR");
+        "central_meridian\",-101.5],PARAMETER[\"false_easting\",6");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3");
+        "56166.667],PARAMETER[\"false_northing\",3280833.333],UNI");
     add_srs_wkt (p, 12,
-        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26779\"]]");
-    p = add_epsg_def (filter, first, last, 26780, "epsg", 26780,
-        "NAD27 / Kentucky South");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 14,
+        "TY[\"EPSG\",\"6582\"]]");
+    p = add_epsg_def (filter, first, last, 6583, "epsg", 6583,
+        "NAD83(2011) / Texas North Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333");
+        "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2");
+        "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y");
     add_proj4text (p, 2,
-        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "_0=2000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Kentucky South\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(2011) / Texas North Central\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",36.73333333333333],PAR");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",37.93333333333333],PARAME");
+        "_1\",33.96666666666667],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER[");
+        ",32.13333333333333],PARAMETER[\"latitude_of_origin\",31.");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-85.75],PARAMETER[\"false_easting\"");
+        "66666666666667],PARAMETER[\"central_meridian\",-98.5],PA");
     add_srs_wkt (p, 11,
-        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+        "RAMETER[\"false_easting\",600000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 12,
-        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+        "hing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 13,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
     add_srs_wkt (p, 14,
-        ",\"26780\"]]");
-    p = add_epsg_def (filter, first, last, 26781, "epsg", 26781,
-        "NAD27 / Louisiana North");
+        "SG\",\"6583\"]]");
+    p = add_epsg_def (filter, first, last, 6584, "epsg", 6584,
+        "NAD83(2011) / Texas North Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666");
+        "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333");
     add_proj4text (p, 1,
-        "666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.21");
+        "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Louisiana North\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD83(2011) / Texas North Central (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",31.16666666666667],PAR");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",32.66666666666666],PARAME");
+        "rallel_1\",33.96666666666667],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",30.66666666666667],PARAMETER[");
+        "lel_2\",32.13333333333333],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-92.5],PARAMETER[\"false_easting\",");
+        "n\",31.66666666666667],PARAMETER[\"central_meridian\",-9");
     add_srs_wkt (p, 11,
-        "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
+        "8.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+        "lse_northing\",6561666.667],UNIT[\"US survey foot\",0.30");
     add_srs_wkt (p, 13,
-        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
     add_srs_wkt (p, 14,
-        "\"26781\"]]");
-    p = add_epsg_def (filter, first, last, 26782, "epsg", 26782,
-        "NAD27 / Louisiana South");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6584\"]]");
+    p = add_epsg_def (filter, first, last, 6585, "epsg", 6585,
+        "NAD83(2011) / Texas South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.666666666666");
+        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
     add_proj4text (p, 1,
-        "67 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0");
+        "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        "_0=5000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Louisiana South\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD83(2011) / Texas South\",GEOGCS[\"NAD83(2011");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",29.3],PARAMETER[\"stan");
+        "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.");
     add_srs_wkt (p, 8,
-        "dard_parallel_2\",30.7],PARAMETER[\"latitude_of_origin\"");
+        "83333333333333],PARAMETER[\"standard_parallel_2\",26.166");
     add_srs_wkt (p, 9,
-        ",28.66666666666667],PARAMETER[\"central_meridian\",-91.3");
+        "66666666667],PARAMETER[\"latitude_of_origin\",25.6666666");
     add_srs_wkt (p, 10,
-        "3333333333333],PARAMETER[\"false_easting\",2000000],PARA");
+        "6666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+        "[\"false_easting\",300000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 12,
-        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+        "5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26782\"]]");
-    p = add_epsg_def (filter, first, last, 26783, "epsg", 26783,
-        "NAD27 / Maine East");
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "6585\"]]");
+    p = add_epsg_def (filter, first, last, 6586, "epsg", 6586,
+        "NAD83(2011) / Texas South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9");
+        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
     add_proj4text (p, 1,
-        "999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us");
+        "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00");
     add_proj4text (p, 2,
-        "-ft +no_defs");
+        "00000001 +y_0=5000000.0001016 +ellps=GRS80 +units=us-ft ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Maine East\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(2011) / Texas South (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]");
+        "1\",27.83333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        ",26.16666666666667],PARAMETER[\"latitude_of_origin\",25.");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
+        "66666666666667],PARAMETER[\"central_meridian\",-98.5],PA");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "RAMETER[\"false_easting\",984250.0000000002],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26783\"]]");
-    p = add_epsg_def (filter, first, last, 26784, "epsg", 26784,
-        "NAD27 / Maine West");
+        "false_northing\",16404166.667],UNIT[\"US survey foot\",0");
+    add_srs_wkt (p, 13,
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+    add_srs_wkt (p, 14,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6586\"]]");
+    p = add_epsg_def (filter, first, last, 6587, "epsg", 6587,
+        "NAD83(2011) / Texas South Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +dat");
+        "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0");
     add_proj4text (p, 2,
-        "um=NAD27 +units=us-ft +no_defs");
+        "=4000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Maine West\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(2011) / Texas South Central\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac");
+        "_1\",30.28333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "tor\",0.999966667],PARAMETER[\"false_easting\",500000],P");
+        ",28.38333333333333],PARAMETER[\"latitude_of_origin\",27.");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "83333333333333],PARAMETER[\"central_meridian\",-99],PARA");
     add_srs_wkt (p, 11,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "METER[\"false_easting\",600000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26784\"]");
+        "ng\",4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 26785, "epsg", 26785,
-        "NAD27 / Maryland");
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"6587\"]]");
+    p = add_epsg_def (filter, first, last, 6588, "epsg", 6588,
+        "NAD83(2011) / Texas South Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333");
+        "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333");
     add_proj4text (p, 1,
-        "334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +datum=NAD2");
+        "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0");
     add_proj4text (p, 2,
-        "7 +units=us-ft +no_defs");
+        "=3999999.9998984 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Maryland\",GEOGCS[\"NAD27\",DATUM[\"Nor");
+        "PROJCS[\"NAD83(2011) / Texas South Central (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820");
+        "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere");
     add_srs_wkt (p, 2,
-        "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH");
+        "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572");
     add_srs_wkt (p, 3,
-        "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "TER[\"standard_parallel_1\",38.3],PARAMETER[\"standard_p");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "arallel_2\",39.45],PARAMETER[\"latitude_of_origin\",37.8");
+        "rallel_1\",30.28333333333333],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 9,
-        "3333333333334],PARAMETER[\"central_meridian\",-77],PARAM");
+        "lel_2\",28.38333333333333],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 10,
-        "ETER[\"false_easting\",800000.0000000002],PARAMETER[\"fa");
+        "n\",27.83333333333333],PARAMETER[\"central_meridian\",-9");
     add_srs_wkt (p, 11,
-        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
+        "9],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+        "e_northing\",13123333.333],UNIT[\"US survey foot\",0.304");
     add_srs_wkt (p, 13,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26785\"]]");
-    p = add_epsg_def (filter, first, last, 26786, "epsg", 26786,
-        "NAD27 / Massachusetts Mainland");
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 14,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6588\"]]");
+    p = add_epsg_def (filter, first, last, 6589, "epsg", 6589,
+        "NAD83(2011) / Vermont");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
     add_proj4text (p, 1,
-        "333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0");
-    add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Massachusetts Mainland\",GEOGCS[\"NAD27");
+        "PROJCS[\"NAD83(2011) / Vermont\",GEOGCS[\"NAD83(2011)\",");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke");
+        "DATUM[\"NAD83_National_Spatial_Reference_System_2011\",S");
     add_srs_wkt (p, 2,
-        " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 3,
-        "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic");
+        "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "SP\"],PARAMETER[\"standard_parallel_1\",41.7166666666666");
+        "tor\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[");
     add_srs_wkt (p, 8,
-        "7],PARAMETER[\"standard_parallel_2\",42.68333333333333],");
+        "\"central_meridian\",-72.5],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central");
+        ".999964286],PARAMETER[\"false_easting\",500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "_meridian\",-71.5],PARAMETER[\"false_easting\",600000],P");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
     add_srs_wkt (p, 12,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
-    add_srs_wkt (p, 13,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26786\"]");
-    add_srs_wkt (p, 14,
-        "]");
-    p = add_epsg_def (filter, first, last, 26787, "epsg", 26787,
-        "NAD27 / Massachusetts Island");
+        "ITY[\"EPSG\",\"6589\"]]");
+    p = add_epsg_def (filter, first, last, 6590, "epsg", 6590,
+        "NAD83(2011) / Vermont (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333");
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
     add_proj4text (p, 1,
-        "333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0");
+        "=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_de");
     add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Massachusetts Island\",GEOGCS[\"NAD27\"");
+        "PROJCS[\"NAD83(2011) / Vermont (ftUS)\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "SP\"],PARAMETER[\"standard_parallel_1\",41.2833333333333");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],PARA");
     add_srs_wkt (p, 8,
-        "3],PARAMETER[\"standard_parallel_2\",41.48333333333333],");
+        "METER[\"central_meridian\",-72.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central");
+        "or\",0.999964286],PARAMETER[\"false_easting\",1640416.66");
     add_srs_wkt (p, 10,
-        "_meridian\",-70.5],PARAMETER[\"false_easting\",200000],P");
+        "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
     add_srs_wkt (p, 12,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"659");
     add_srs_wkt (p, 13,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26787\"]");
-    add_srs_wkt (p, 14,
-        "]");
-    p = add_epsg_def (filter, first, last, 26791, "epsg", 26791,
-        "NAD27 / Minnesota North");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 6591, "epsg", 6591,
+        "NAD83(2011) / Virginia Lambert");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333");
+        "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.21");
-    add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Minnesota North\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD83(2011) / Virginia Lambert\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",47.03333333333333],PAR");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",48.63333333333333],PARAME");
+        ",37],PARAMETER[\"standard_parallel_2\",39.5],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",46.5],PARAMETER[\"central_mer");
+        "latitude_of_origin\",36],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 10,
-        "idian\",-93.1],PARAMETER[\"false_easting\",2000000],PARA");
+        "-79.5],PARAMETER[\"false_easting\",0],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26791\"]]");
-    p = add_epsg_def (filter, first, last, 26792, "epsg", 26792,
-        "NAD27 / Minnesota Central");
+        "\",\"6591\"]]");
+    p = add_epsg_def (filter, first, last, 6592, "epsg", 6592,
+        "NAD83(2011) / Virginia North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=4");
+        "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +datum=NAD");
+        ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +");
     add_proj4text (p, 2,
-        "27 +units=us-ft +no_defs");
+        "ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Minnesota Central\",GEOGCS[\"NAD27\",DA");
+        "PROJCS[\"NAD83(2011) / Virginia North\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"standard_parallel_1\",45.61666666666667],P");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"standard_parallel_2\",47.05],PARAMETER[\"lati");
+        "9.2],PARAMETER[\"standard_parallel_2\",38.03333333333333");
     add_srs_wkt (p, 9,
-        "tude_of_origin\",45],PARAMETER[\"central_meridian\",-94.");
+        "],PARAMETER[\"latitude_of_origin\",37.66666666666666],PA");
     add_srs_wkt (p, 10,
-        "25],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fal");
+        "RAMETER[\"central_meridian\",-78.5],PARAMETER[\"false_ea");
     add_srs_wkt (p, 11,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "sting\",3500000],PARAMETER[\"false_northing\",2000000],U");
     add_srs_wkt (p, 12,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 13,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26792\"]]");
-    p = add_epsg_def (filter, first, last, 26793, "epsg", 26793,
-        "NAD27 / Minnesota South");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6592\"]]");
+    p = add_epsg_def (filter, first, last, 6593, "epsg", 6593,
+        "NAD83(2011) / Virginia North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666");
+        "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37");
     add_proj4text (p, 1,
-        "667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +");
+        ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2");
     add_proj4text (p, 2,
-        "datum=NAD27 +units=us-ft +no_defs");
+        "000000.0001016 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Minnesota South\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD83(2011) / Virginia North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",43.78333333333333],PAR");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",45.21666666666667],PARAME");
+        "el_1\",39.2],PARAMETER[\"standard_parallel_2\",38.033333");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",43],PARAMETER[\"central_merid");
+        "33333333],PARAMETER[\"latitude_of_origin\",37.6666666666");
     add_srs_wkt (p, 10,
-        "ian\",-94],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "6666],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        "false_easting\",11482916.667],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+        "\",6561666.667],UNIT[\"US survey foot\",0.30480060960121");
     add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26793\"]]");
-    p = add_epsg_def (filter, first, last, 26794, "epsg", 26794,
-        "NAD27 / Mississippi East");
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6593\"]]");
+    p = add_epsg_def (filter, first, last, 6594, "epsg", 6594,
+        "NAD83(2011) / Virginia South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333");
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666");
     add_proj4text (p, 1,
-        "333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +datum=N");
+        "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +");
     add_proj4text (p, 2,
-        "AD27 +units=us-ft +no_defs");
+        "y_0=1000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Mississippi East\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD83(2011) / Virginia South\",GEOGCS[\"NAD83(2");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",29.66666666666667],PARAMETER[\"");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 8,
-        "central_meridian\",-88.83333333333333],PARAMETER[\"scale");
+        "7.96666666666667],PARAMETER[\"standard_parallel_2\",36.7");
     add_srs_wkt (p, 9,
-        "_factor\",0.99996],PARAMETER[\"false_easting\",500000],P");
+        "6666666666667],PARAMETER[\"latitude_of_origin\",36.33333");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "333333334],PARAMETER[\"central_meridian\",-78.5],PARAMET");
     add_srs_wkt (p, 11,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "ER[\"false_easting\",3500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26794\"]");
+        "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 26795, "epsg", 26795,
-        "NAD27 / Mississippi West");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 14,
+        ",\"6594\"]]");
+    p = add_epsg_def (filter, first, last, 6595, "epsg", 6595,
+        "NAD83(2011) / Virginia South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.9");
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666");
     add_proj4text (p, 1,
-        "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "001016 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft ");
+    add_proj4text (p, 3,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Mississippi West\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD83(2011) / Virginia South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",30.5],PARAMETER[\"central_merid");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "ian\",-90.33333333333333],PARAMETER[\"scale_factor\",0.9");
+        "el_1\",37.96666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "99941177],PARAMETER[\"false_easting\",500000],PARAMETER[");
+        "2\",36.76666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060");
+        "36.33333333333334],PARAMETER[\"central_meridian\",-78.5]");
     add_srs_wkt (p, 11,
-        "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],");
+        ",PARAMETER[\"false_easting\",11482916.667],PARAMETER[\"f");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26795\"]]");
-    p = add_epsg_def (filter, first, last, 26796, "epsg", 26796,
-        "NAD27 / Missouri East");
+        "alse_northing\",3280833.333],UNIT[\"US survey foot\",0.3");
+    add_srs_wkt (p, 13,
+        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 14,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6595\"]]");
+    p = add_epsg_def (filter, first, last, 6596, "epsg", 6596,
+        "NAD83(2011) / Washington North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9");
+        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47");
     add_proj4text (p, 1,
-        "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Missouri East\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / Washington North\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"c");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99");
+        ",48.73333333333333],PARAMETER[\"standard_parallel_2\",47");
     add_srs_wkt (p, 9,
-        "9933333],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        ".5],PARAMETER[\"latitude_of_origin\",47],PARAMETER[\"cen");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "tral_meridian\",-120.8333333333333],PARAMETER[\"false_ea");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26796\"]]");
-    p = add_epsg_def (filter, first, last, 26797, "epsg", 26797,
-        "NAD27 / Missouri Central");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6596\"]]");
+    p = add_epsg_def (filter, first, last, 6597, "epsg", 6597,
+        "NAD83(2011) / Washington North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9");
+        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47");
     add_proj4text (p, 1,
-        "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        " +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Missouri Central\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD83(2011) / Washington North (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"");
+        "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 8,
-        "central_meridian\",-92.5],PARAMETER[\"scale_factor\",0.9");
+        "lel_1\",48.73333333333333],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 9,
-        "99933333],PARAMETER[\"false_easting\",500000],PARAMETER[");
+        "_2\",47.5],PARAMETER[\"latitude_of_origin\",47],PARAMETE");
     add_srs_wkt (p, 10,
-        "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060");
+        "R[\"central_meridian\",-120.8333333333333],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],");
+        "alse_easting\",1640416.667],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26797\"]]");
-    p = add_epsg_def (filter, first, last, 26798, "epsg", 26798,
-        "NAD27 / Missouri West");
+        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"6597\"]]");
+    p = add_epsg_def (filter, first, last, 6598, "epsg", 6598,
+        "NAD83(2011) / Washington South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9");
+        "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333");
     add_proj4text (p, 1,
-        "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Missouri West\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD83(2011) / Washington South\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "2\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",36.16666666666666],PARAMETER[\"c");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99");
+        ",47.33333333333334],PARAMETER[\"standard_parallel_2\",45");
     add_srs_wkt (p, 9,
-        "9941177],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        ".83333333333334],PARAMETER[\"latitude_of_origin\",45.333");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "33333333334],PARAMETER[\"central_meridian\",-120.5],PARA");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26798\"]]");
-    p = add_epsg_def (filter, first, last, 26799, "epsg", 26799,
-        "NAD27 / California zone VII");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6");
+    add_srs_wkt (p, 14,
+        "598\"]]");
+    p = add_epsg_def (filter, first, last, 6599, "epsg", 6599,
+        "NAD83(2011) / Washington South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666");
+        "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333");
     add_proj4text (p, 1,
-        "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +");
+        "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0");
     add_proj4text (p, 2,
-        "x_0=1276106.450596901 +y_0=1268253.006858014 +datum=NAD2");
-    add_proj4text (p, 3,
-        "7 +units=us-ft +no_defs");
+        "001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / California zone VII\",GEOGCS[\"NAD27\",");
+        "PROJCS[\"NAD83(2011) / Washington South (ftUS)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+        "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70");
+        "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",34.41666666666666]");
+        "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",33.86666666666667],PA");
+        "lel_1\",47.33333333333334],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",34.13333333333333],PARAME");
+        "_2\",45.83333333333334],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-118.3333333333333],PARAMETER[\"");
+        ",45.33333333333334],PARAMETER[\"central_meridian\",-120.");
     add_srs_wkt (p, 11,
-        "false_easting\",4186692.58],PARAMETER[\"false_northing\"");
+        "5],PARAMETER[\"false_easting\",1640416.667],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        ",4160926.74],UNIT[\"US survey foot\",0.3048006096012192,");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 13,
-        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 14,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26799\"]]");
-    p = add_epsg_def (filter, first, last, 26801, "epsg", 26801,
-        "NAD Michigan / Michigan East");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6599\"]]");
+    p = add_epsg_def (filter, first, last, 6600, "epsg", 6600,
+        "NAD83(2011) / West Virginia North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "99942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548");
-    add_proj4text (p, 2,
-        "896 +b=6356826.621488444 +units=us-ft +no_defs");
+        "5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD Michigan / Michigan East\",GEOGCS[\"NAD27 M");
+        "PROJCS[\"NAD83(2011) / West Virginia North\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "ichigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 186");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "6 Michigan\",6378450.047548896,294.9786971646747,AUTHORI");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "TY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PRI");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Transverse_");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",41.5],PARAM");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-83.66666666666667],PARAMETER[");
+        "_1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAME");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.999942857],PARAMETER[\"false_easting\"");
+        "TER[\"latitude_of_origin\",38.5],PARAMETER[\"central_mer");
     add_srs_wkt (p, 10,
-        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
+        "idian\",-79.5],PARAMETER[\"false_easting\",600000],PARAM");
     add_srs_wkt (p, 11,
-        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
     add_srs_wkt (p, 13,
-        "\"26801\"]]");
-    p = add_epsg_def (filter, first, last, 26802, "epsg", 26802,
-        "NAD Michigan / Michigan Old Central");
+        "HORITY[\"EPSG\",\"6600\"]]");
+    p = add_epsg_def (filter, first, last, 6601, "epsg", 6601,
+        "NAD83(2011) / West Virginia North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568");
-    add_proj4text (p, 2,
-        "26.621488444 +units=us-ft +no_defs");
+        "5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD Michigan / Michigan Old Central\",GEOGCS[\"");
+        "PROJCS[\"NAD83(2011) / West Virginia North (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Cla");
+        "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere");
     add_srs_wkt (p, 2,
-        "rke 1866 Michigan\",6378450.047548896,294.9786971646747,");
+        "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"");
+        "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Tran");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.5");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"sca");
+        "rallel_1\",40.25],PARAMETER[\"standard_parallel_2\",39],");
     add_srs_wkt (p, 9,
-        "le_factor\",0.999909091],PARAMETER[\"false_easting\",500");
+        "PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\"centr");
     add_srs_wkt (p, 10,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo");
+        "al_meridian\",-79.5],PARAMETER[\"false_easting\",1968500");
     add_srs_wkt (p, 11,
-        "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
     add_srs_wkt (p, 12,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26");
+        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
     add_srs_wkt (p, 13,
-        "802\"]]");
-    p = add_epsg_def (filter, first, last, 26803, "epsg", 26803,
-        "NAD Michigan / Michigan West");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6601\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 6602, "epsg", 6602,
+        "NAD83(2011) / West Virginia South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568");
+        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "26.621488444 +units=us-ft +no_defs");
+        " +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD Michigan / Michigan West\",GEOGCS[\"NAD27 M");
+        "PROJCS[\"NAD83(2011) / West Virginia South\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "ichigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 186");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "6 Michigan\",6378450.047548896,294.9786971646747,AUTHORI");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "TY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PRI");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Transverse_");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",41.5],PARAM");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-88.75],PARAMETER[\"scale_fact");
+        "_1\",38.88333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "or\",0.999909091],PARAMETER[\"false_easting\",500000],PA");
+        ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "asting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26803\"]]");
-    p = add_epsg_def (filter, first, last, 26811, "epsg", 26811,
-        "NAD Michigan / Michigan North");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6602\"]]");
+    p = add_epsg_def (filter, first, last, 6603, "epsg", 6603,
+        "NAD83(2011) / West Virginia South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192");
+        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 ");
-    add_proj4text (p, 3,
-        "+units=us-ft +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD Michigan / Michigan North\",GEOGCS[\"NAD27 ");
+        "PROJCS[\"NAD83(2011) / West Virginia South (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 18");
+        "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere");
     add_srs_wkt (p, 2,
-        "66 Michigan\",6378450.047548896,294.9786971646747,AUTHOR");
+        "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PR");
+        "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert_Co");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
+        "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 8,
-        "5.48333333333333],PARAMETER[\"standard_parallel_2\",47.0");
+        "rallel_1\",38.88333333333333],PARAMETER[\"standard_paral");
     add_srs_wkt (p, 9,
-        "8333333333334],PARAMETER[\"latitude_of_origin\",44.78333");
+        "lel_2\",37.48333333333333],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 10,
-        "333333333],PARAMETER[\"central_meridian\",-87],PARAMETER");
+        "n\",37],PARAMETER[\"central_meridian\",-81],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "[\"false_easting\",2000000],PARAMETER[\"false_northing\"");
+        "false_easting\",1968500],PARAMETER[\"false_northing\",0]");
     add_srs_wkt (p, 12,
-        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+        ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"");
     add_srs_wkt (p, 13,
-        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
     add_srs_wkt (p, 14,
-        "AUTHORITY[\"EPSG\",\"26811\"]]");
-    p = add_epsg_def (filter, first, last, 26812, "epsg", 26812,
-        "NAD Michigan / Michigan Central");
+        "HORITY[\"EPSG\",\"6603\"]]");
+    p = add_epsg_def (filter, first, last, 6604, "epsg", 6604,
+        "NAD83(2011) / Wisconsin Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43");
+        "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333");
     add_proj4text (p, 1,
-        ".31666666666667 +lon_0=-84.33333333333333 +x_0=609601.21");
+        "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +a=6378450.047548896 +b=6356826.62148844");
-    add_proj4text (p, 3,
-        "4 +units=us-ft +no_defs");
+        "0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD Michigan / Michigan Central\",GEOGCS[\"NAD2");
+        "PROJCS[\"NAD83(2011) / Wisconsin Central\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "7 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke ");
+        "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "1866 Michigan\",6378450.047548896,294.9786971646747,AUTH");
+        "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "ORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
+        "759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
     add_srs_wkt (p, 8,
-        ",44.18333333333333],PARAMETER[\"standard_parallel_2\",45");
+        "METER[\"standard_parallel_1\",45.5],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        ".7],PARAMETER[\"latitude_of_origin\",43.31666666666667],");
+        "_parallel_2\",44.25],PARAMETER[\"latitude_of_origin\",43");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"central_meridian\",-84.33333333333333],PARAM");
+        ".83333333333334],PARAMETER[\"central_meridian\",-90],PAR");
     add_srs_wkt (p, 11,
-        "ETER[\"false_easting\",2000000],PARAMETER[\"false_northi");
+        "AMETER[\"false_easting\",600000],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 14,
-        "TH],AUTHORITY[\"EPSG\",\"26812\"]]");
-    p = add_epsg_def (filter, first, last, 26813, "epsg", 26813,
-        "NAD Michigan / Michigan South");
+        "6604\"]]");
+    p = add_epsg_def (filter, first, last, 6605, "epsg", 6605,
+        "NAD83(2011) / Wisconsin Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41");
+        "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333");
     add_proj4text (p, 1,
-        ".5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0");
+        "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us");
     add_proj4text (p, 2,
-        "=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-f");
-    add_proj4text (p, 3,
-        "t +no_defs");
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD Michigan / Michigan South\",GEOGCS[\"NAD27 ");
+        "PROJCS[\"NAD83(2011) / Wisconsin Central (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID[\"Clarke 18");
+        "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc");
     add_srs_wkt (p, 2,
-        "66 Michigan\",6378450.047548896,294.9786971646747,AUTHOR");
+        "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"6268\"]],PR");
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Lambert_Co");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
+        "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para");
     add_srs_wkt (p, 8,
-        "2.1],PARAMETER[\"standard_parallel_2\",43.66666666666666");
+        "llel_1\",45.5],PARAMETER[\"standard_parallel_2\",44.25],");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"cen");
+        "PARAMETER[\"latitude_of_origin\",43.83333333333334],PARA");
     add_srs_wkt (p, 10,
-        "tral_meridian\",-84.33333333333333],PARAMETER[\"false_ea");
+        "METER[\"central_meridian\",-90],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 11,
-        "sting\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s");
     add_srs_wkt (p, 12,
-        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 13,
-        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 14,
-        "EPSG\",\"26813\"]]");
-    p = add_epsg_def (filter, first, last, 26814, "epsg", 26814,
-        "NAD83 / Maine East (ftUS) (deprecated)");
+        "G\",\"6605\"]]");
+    p = add_epsg_def (filter, first, last, 6606, "epsg", 6606,
+        "NAD83(2011) / Wisconsin North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666");
     add_proj4text (p, 1,
-        "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maine East (ftUS) (deprecated)\",GEOGCS");
+        "PROJCS[\"NAD83(2011) / Wisconsin North\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "3.66666666666666],PARAMETER[\"central_meridian\",-68.5],");
+        ",46.76666666666667],PARAMETER[\"standard_parallel_2\",45");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas");
+        ".56666666666667],PARAMETER[\"latitude_of_origin\",45.166");
     add_srs_wkt (p, 10,
-        "ting\",300000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "66666666666],PARAMETER[\"central_meridian\",-90],PARAMET");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+        "ER[\"false_easting\",600000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26814\"]]");
-    p = add_epsg_def (filter, first, last, 26815, "epsg", 26815,
-        "NAD83 / Maine West (ftUS) (deprecated)");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 13,
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6606\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 6607, "epsg", 6607,
+        "NAD83(2011) / Wisconsin North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u");
+        "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        "=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maine West (ftUS) (deprecated)\",GEOGCS");
+        "PROJCS[\"NAD83(2011) / Wisconsin North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "2.83333333333334],PARAMETER[\"central_meridian\",-70.166");
+        "el_1\",46.76666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR");
+        "2\",45.56666666666667],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_easting\",900000],PARAMETER[\"false_north");
+        "45.16666666666666],PARAMETER[\"central_meridian\",-90],P");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no");
     add_srs_wkt (p, 12,
-        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A");
     add_srs_wkt (p, 13,
-        "26815\"]]");
-    p = add_epsg_def (filter, first, last, 26819, "epsg", 26819,
-        "NAD83 / Minnesota North (ftUS) (deprecated)");
+        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 14,
+        ",NORTH],AUTHORITY[\"EPSG\",\"6607\"]]");
+    p = add_epsg_def (filter, first, last, 6608, "epsg", 6608,
+        "NAD83(2011) / Wisconsin South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+        "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "00101601 +y_0=99999.99998984 +datum=NAD83 +units=m +no_d");
-    add_proj4text (p, 3,
-        "efs");
+        " +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota North (ftUS) (deprecated)\",G");
+        "PROJCS[\"NAD83(2011) / Wisconsin South\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE");
+        "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_");
     add_srs_wkt (p, 2,
-        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
+        "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO");
     add_srs_wkt (p, 3,
-        "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P");
     add_srs_wkt (p, 4,
-        "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO");
+        "\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
+        "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "parallel_1\",48.63333333333333],PARAMETER[\"standard_par");
+        ",44.06666666666667],PARAMETER[\"standard_parallel_2\",42");
     add_srs_wkt (p, 9,
-        "allel_2\",47.03333333333333],PARAMETER[\"latitude_of_ori");
+        ".73333333333333],PARAMETER[\"latitude_of_origin\",42],PA");
     add_srs_wkt (p, 10,
-        "gin\",46.5],PARAMETER[\"central_meridian\",-93.1],PARAME");
+        "RAMETER[\"central_meridian\",-90],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "TER[\"false_easting\",800000.0000101601],PARAMETER[\"fal");
+        "ing\",600000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 12,
-        "se_northing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 13,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 14,
-        "AUTHORITY[\"EPSG\",\"26819\"]]");
-    p = add_epsg_def (filter, first, last, 26820, "epsg", 26820,
-        "NAD83 / Minnesota Central (ftUS) (deprecated)");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6608\"]]");
+    p = add_epsg_def (filter, first, last, 6609, "epsg", 6609,
+        "NAD83(2011) / Wisconsin South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989");
+        "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "84 +datum=NAD83 +units=m +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota Central (ftUS) (deprecated)\"");
+        "PROJCS[\"NAD83(2011) / Wisconsin South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP");
+        "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S");
     add_srs_wkt (p, 2,
-        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
+        "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116");
     add_srs_wkt (p, 4,
-        ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTI");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
+        "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall");
     add_srs_wkt (p, 8,
-        "_parallel_1\",47.05],PARAMETER[\"standard_parallel_2\",4");
+        "el_1\",44.06666666666667],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 9,
-        "5.61666666666667],PARAMETER[\"latitude_of_origin\",45],P");
+        "2\",42.73333333333333],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"central_meridian\",-94.25],PARAMETER[\"false_");
+        "42],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "easting\",800000.0000101601],PARAMETER[\"false_northing\"");
+        "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 12,
-        ",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 13,
-        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
     add_srs_wkt (p, 14,
-        "PSG\",\"26820\"]]");
-    p = add_epsg_def (filter, first, last, 26821, "epsg", 26821,
-        "NAD83 / Minnesota South (ftUS) (deprecated)");
+        "TY[\"EPSG\",\"6609\"]]");
+    p = add_epsg_def (filter, first, last, 6610, "epsg", 6610,
+        "NAD83(2011) / Wisconsin Transverse Mercator");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y");
     add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999");
-    add_proj4text (p, 2,
-        "99.99998984 +datum=NAD83 +units=m +no_defs");
+        "_0=-4480000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota South (ftUS) (deprecated)\",G");
+        "PROJCS[\"NAD83(2011) / Wisconsin Transverse Mercator\",G");
     add_srs_wkt (p, 1,
-        "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE");
+        "EOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Ref");
     add_srs_wkt (p, 2,
-        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
+        "erence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2");
     add_srs_wkt (p, 3,
-        "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",");
+        "57222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+        ",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "parallel_1\",45.21666666666667],PARAMETER[\"standard_par");
+        "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "allel_2\",43.78333333333333],PARAMETER[\"latitude_of_ori");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",52000");
     add_srs_wkt (p, 10,
-        "gin\",43],PARAMETER[\"central_meridian\",-94],PARAMETER[");
+        "0],PARAMETER[\"false_northing\",-4480000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "\"false_easting\",800000.0000101601],PARAMETER[\"false_n");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "orthing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
-    add_srs_wkt (p, 14,
-        "ORITY[\"EPSG\",\"26821\"]]");
-    p = add_epsg_def (filter, first, last, 26822, "epsg", 26822,
-        "NAD83 / Nebraska (ftUS) (deprecated)");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6610\"]]");
+    p = add_epsg_def (filter, first, last, 6611, "epsg", 6611,
+        "NAD83(2011) / Wyoming East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +datum=NAD83 +u");
-    add_proj4text (p, 2,
-        "nits=m +no_defs");
+        "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nebraska (ftUS) (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(2011) / Wyoming East\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM");
     add_srs_wkt (p, 8,
-        "_1\",43],PARAMETER[\"standard_parallel_2\",40],PARAMETER");
+        "ETER[\"central_meridian\",-105.1666666666667],PARAMETER[");
     add_srs_wkt (p, 9,
-        "[\"latitude_of_origin\",39.83333333333334],PARAMETER[\"c");
+        "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-100],PARAMETER[\"false_easting\",5000");
+        "200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "00.0000101601],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 12,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
-    add_srs_wkt (p, 13,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26822\"]]");
-    p = add_epsg_def (filter, first, last, 26823, "epsg", 26823,
-        "NAD83 / West Virginia North (ftUS) (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6611\"]]");
+    p = add_epsg_def (filter, first, last, 6612, "epsg", 6612,
+        "NAD83(2011) / Wyoming East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "5 +x_0=1968500 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / West Virginia North (ftUS) (deprecated)");
+        "PROJCS[\"NAD83(2011) / Wyoming East (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5");
     add_srs_wkt (p, 8,
-        "ard_parallel_1\",40.25],PARAMETER[\"standard_parallel_2\"");
+        "],PARAMETER[\"central_meridian\",-105.1666666666667],PAR");
     add_srs_wkt (p, 9,
-        ",39],PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\"");
+        "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "central_meridian\",-79.5],PARAMETER[\"false_easting\",19");
+        "ting\",656166.6667],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 11,
-        "68500],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26823\"]]");
-    p = add_epsg_def (filter, first, last, 26824, "epsg", 26824,
-        "NAD83 / West Virginia South (ftUS) (deprecated)");
+        "[\"EPSG\",\"6612\"]]");
+    p = add_epsg_def (filter, first, last, 6613, "epsg", 6613,
+        "NAD83(2011) / Wyoming East Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +datum=NAD8");
+        "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no");
     add_proj4text (p, 2,
-        "3 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / West Virginia South (ftUS) (deprecated)");
+        "PROJCS[\"NAD83(2011) / Wyoming East Central\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5");
     add_srs_wkt (p, 8,
-        "ard_parallel_1\",38.88333333333333],PARAMETER[\"standard");
+        "],PARAMETER[\"central_meridian\",-107.3333333333333],PAR");
     add_srs_wkt (p, 9,
-        "_parallel_2\",37.48333333333333],PARAMETER[\"latitude_of");
+        "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "_origin\",37],PARAMETER[\"central_meridian\",-81],PARAME");
+        "ting\",400000],PARAMETER[\"false_northing\",100000],UNIT");
     add_srs_wkt (p, 11,
-        "TER[\"false_easting\",1968500],PARAMETER[\"false_northin");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
     add_srs_wkt (p, 12,
-        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
-    add_srs_wkt (p, 13,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26");
-    add_srs_wkt (p, 14,
-        "824\"]]");
-    p = add_epsg_def (filter, first, last, 26825, "epsg", 26825,
-        "NAD83(HARN) / Maine East (ftUS) (deprecated)");
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6613\"]]");
+    p = add_epsg_def (filter, first, last, 6614, "epsg", 6614,
+        "NAD83(2011) / Wyoming East Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0");
+        "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp");
     add_proj4text (p, 2,
-        ",0 +units=m +no_defs");
+        "s=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Maine East (ftUS) (deprecated)\",");
+        "PROJCS[\"NAD83(2011) / Wyoming East Central (ftUS)\",GEO");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer");
+        "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
+        "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",43.66666666666666],PARAMETER[\"cent");
+        "n\",40.5],PARAMETER[\"central_meridian\",-107.3333333333");
     add_srs_wkt (p, 9,
-        "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]");
+        "333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n");
+        "alse_easting\",1312333.3333],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        ",328083.3333],UNIT[\"US survey foot\",0.3048006096012192");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 13,
-        ",\"26825\"]]");
-    p = add_epsg_def (filter, first, last, 26826, "epsg", 26826,
-        "NAD83(HARN) / Maine West (ftUS) (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"6614\"]]");
+    p = add_epsg_def (filter, first, last, 6615, "epsg", 6615,
+        "NAD83(2011) / Wyoming West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
+        "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no");
     add_proj4text (p, 2,
-        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Maine West (ftUS) (deprecated)\",");
+        "PROJCS[\"NAD83(2011) / Wyoming West\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent");
+        "ETER[\"central_meridian\",-110.0833333333333],PARAMETER[");
     add_srs_wkt (p, 9,
-        "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac");
+        "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "tor\",0.999966667],PARAMETER[\"false_easting\",900000],P");
+        "800000],PARAMETER[\"false_northing\",100000],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 13,
-        ",AUTHORITY[\"EPSG\",\"26826\"]]");
-    p = add_epsg_def (filter, first, last, 26830, "epsg", 26830,
-        "NAD83(HARN) / Minnesota North (ftUS) (deprecated)");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6615\"]]");
+    p = add_epsg_def (filter, first, last, 6616, "epsg", 6616,
+        "NAD83(2011) / Wyoming West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+        "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el");
     add_proj4text (p, 2,
-        "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0");
-    add_proj4text (p, 3,
-        ",0,0,0,0 +units=m +no_defs");
+        "lps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS) (deprecate");
+        "PROJCS[\"NAD83(2011) / Wyoming West (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"standard_parallel_1\",48.63333333333333],P");
+        "],PARAMETER[\"central_meridian\",-110.0833333333333],PAR");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"standard_parallel_2\",47.03333333333333],PARA");
+        "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "METER[\"latitude_of_origin\",46.5],PARAMETER[\"central_m");
+        "ting\",2624666.6667],PARAMETER[\"false_northing\",328083");
     add_srs_wkt (p, 11,
-        "eridian\",-93.1],PARAMETER[\"false_easting\",800000.0000");
+        ".3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR");
     add_srs_wkt (p, 12,
-        "101601],PARAMETER[\"false_northing\",99999.99998984],UNI");
+        "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
     add_srs_wkt (p, 13,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
-    add_srs_wkt (p, 14,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26830\"]]");
-    p = add_epsg_def (filter, first, last, 26831, "epsg", 26831,
-        "NAD83(HARN) / Minnesota Central (ftUS) (deprecated)");
+        "H],AUTHORITY[\"EPSG\",\"6616\"]]");
+    p = add_epsg_def (filter, first, last, 6617, "epsg", 6617,
+        "NAD83(2011) / Wyoming West Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989");
-    add_proj4text (p, 2,
-        "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS) (depreca");
+        "PROJCS[\"NAD83(2011) / Wyoming West Central\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "ted)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accurac");
+        "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "y_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.");
+        "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "SG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\"");
+        "],PARAMETER[\"central_meridian\",-108.75],PARAMETER[\"sc");
     add_srs_wkt (p, 9,
-        "standard_parallel_2\",45.61666666666667],PARAMETER[\"lat");
+        "ale_factor\",0.9999375],PARAMETER[\"false_easting\",6000");
     add_srs_wkt (p, 10,
-        "itude_of_origin\",45],PARAMETER[\"central_meridian\",-94");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        ".25],PARAMETER[\"false_easting\",800000.0000101601],PARA");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
     add_srs_wkt (p, 12,
-        "METER[\"false_northing\",99999.99998984],UNIT[\"metre\",");
-    add_srs_wkt (p, 13,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
-    add_srs_wkt (p, 14,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26831\"]]");
-    p = add_epsg_def (filter, first, last, 26832, "epsg", 26832,
-        "NAD83(HARN) / Minnesota South (ftUS) (deprecated)");
+        "ORTH],AUTHORITY[\"EPSG\",\"6617\"]]");
+    p = add_epsg_def (filter, first, last, 6618, "epsg", 6618,
+        "NAD83(2011) / Wyoming West Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
+        "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0");
     add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999");
-    add_proj4text (p, 2,
-        "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
-    add_proj4text (p, 3,
-        " +no_defs");
+        "=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS) (deprecate");
+        "PROJCS[\"NAD83(2011) / Wyoming West Central (ftUS)\",GEO");
     add_srs_wkt (p, 1,
-        "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_");
+        "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer");
     add_srs_wkt (p, 2,
-        "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25");
+        "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257");
     add_srs_wkt (p, 3,
-        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",");
+        "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"standard_parallel_1\",45.21666666666667],P");
+        "n\",40.5],PARAMETER[\"central_meridian\",-108.75],PARAME");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"standard_parallel_2\",43.78333333333333],PARA");
+        "TER[\"scale_factor\",0.9999375],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "METER[\"latitude_of_origin\",43],PARAMETER[\"central_mer");
+        "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s");
     add_srs_wkt (p, 11,
-        "idian\",-94],PARAMETER[\"false_easting\",800000.00001016");
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 12,
-        "01],PARAMETER[\"false_northing\",99999.99998984],UNIT[\"");
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 13,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
-    add_srs_wkt (p, 14,
-        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26832\"]]");
-    p = add_epsg_def (filter, first, last, 26833, "epsg", 26833,
-        "NAD83(HARN) / Nebraska (ftUS) (deprecated)");
+        "G\",\"6618\"]]");
+    p = add_epsg_def (filter, first, last, 6619, "epsg", 6619,
+        "NAD83(2011) / Utah Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+        "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3");
     add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t");
+        "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 ");
     add_proj4text (p, 2,
-        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "+ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Nebraska (ftUS) (deprecated)\",GE");
+        "PROJCS[\"NAD83(2011) / Utah Central\",GEOGCS[\"NAD83(201");
     add_srs_wkt (p, 1,
-        "OGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referen");
+        "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201");
     add_srs_wkt (p, 2,
-        "ce_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
+        "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU");
+        "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40");
     add_srs_wkt (p, 8,
-        "METER[\"standard_parallel_1\",43],PARAMETER[\"standard_p");
+        ".65],PARAMETER[\"standard_parallel_2\",39.01666666666667");
     add_srs_wkt (p, 9,
-        "arallel_2\",40],PARAMETER[\"latitude_of_origin\",39.8333");
+        "],PARAMETER[\"latitude_of_origin\",38.33333333333334],PA");
     add_srs_wkt (p, 10,
-        "3333333334],PARAMETER[\"central_meridian\",-100],PARAMET");
+        "RAMETER[\"central_meridian\",-111.5],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "ER[\"false_easting\",500000.0000101601],PARAMETER[\"fals");
+        "asting\",500000],PARAMETER[\"false_northing\",2000000],U");
     add_srs_wkt (p, 12,
-        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 13,
-        "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
-    add_srs_wkt (p, 14,
-        "SG\",\"26833\"]]");
-    p = add_epsg_def (filter, first, last, 26834, "epsg", 26834,
-        "NAD83(HARN) / West Virginia North (ftUS) (deprecated)");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6619\"]]");
+    p = add_epsg_def (filter, first, last, 6620, "epsg", 6620,
+        "NAD83(2011) / Utah North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666");
     add_proj4text (p, 1,
-        "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,");
+        "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +");
     add_proj4text (p, 2,
-        "0 +units=m +no_defs");
+        "y_0=1000000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS) (depre");
+        "PROJCS[\"NAD83(2011) / Utah North\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833");
     add_srs_wkt (p, 8,
-        "SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER");
+        "3333333333],PARAMETER[\"standard_parallel_2\",40.7166666");
     add_srs_wkt (p, 9,
-        "[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_ori");
+        "6666667],PARAMETER[\"latitude_of_origin\",40.33333333333");
     add_srs_wkt (p, 10,
-        "gin\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAME");
+        "334],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "TER[\"false_easting\",1968500],PARAMETER[\"false_northin");
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
     add_srs_wkt (p, 12,
-        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 13,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"662");
     add_srs_wkt (p, 14,
-        "834\"]]");
-    p = add_epsg_def (filter, first, last, 26835, "epsg", 26835,
-        "NAD83(HARN) / West Virginia South (ftUS) (deprecated)");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 6621, "epsg", 6621,
+        "NAD83(2011) / Utah South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+        "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8");
+        "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 ");
     add_proj4text (p, 2,
-        "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "+ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS) (depre");
+        "PROJCS[\"NAD83(2011) / Utah South\",GEOGCS[\"NAD83(2011)");
     add_srs_wkt (p, 1,
-        "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur");
+        "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\"");
     add_srs_wkt (p, 2,
-        "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],");
     add_srs_wkt (p, 8,
-        "SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333333");
+        "PARAMETER[\"standard_parallel_2\",37.21666666666667],PAR");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"standard_parallel_2\",37.48333333333333],");
+        "AMETER[\"latitude_of_origin\",36.66666666666666],PARAMET");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"central");
+        "ER[\"central_meridian\",-111.5],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 11,
-        "_meridian\",-81],PARAMETER[\"false_easting\",1968500],PA");
+        "g\",500000],PARAMETER[\"false_northing\",3000000],UNIT[\"");
     add_srs_wkt (p, 12,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
     add_srs_wkt (p, 13,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 14,
-        "AUTHORITY[\"EPSG\",\"26835\"]]");
-    p = add_epsg_def (filter, first, last, 26836, "epsg", 26836,
-        "NAD83(NSRS2007) / Maine East (ftUS) (deprecated)");
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6621\"]]");
+    p = add_epsg_def (filter, first, last, 6622, "epsg", 6622,
+        "NAD83(CSRS) / Quebec Lambert");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
     add_proj4text (p, 1,
-        "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0");
+        "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        ",0 +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS) (deprecated");
+        "PROJCS[\"NAD83(CSRS) / Quebec Lambert\",GEOGCS[\"NAD83(C");
     add_srs_wkt (p, 1,
-        ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp");
+        "SRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\"");
     add_srs_wkt (p, 2,
-        "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr");
+        "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJE");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"latitude_of_origin\",43.66666666666666],");
+        "ard_parallel_1\",60],PARAMETER[\"standard_parallel_2\",4");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_");
+        "6],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"cent");
     add_srs_wkt (p, 10,
-        "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR");
+        "ral_meridian\",-68.5],PARAMETER[\"false_easting\",0],PAR");
     add_srs_wkt (p, 11,
         "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
         "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"26836\"]]");
-    p = add_epsg_def (filter, first, last, 26837, "epsg", 26837,
-        "NAD83(NSRS2007) / Maine West (ftUS) (deprecated)");
+        "UTHORITY[\"EPSG\",\"6622\"]]");
+    p = add_epsg_def (filter, first, last, 6623, "epsg", 6623,
+        "NAD83 / Quebec Albers");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
-    add_proj4text (p, 2,
-        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS) (deprecated");
+        "PROJCS[\"NAD83 / Quebec Albers\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378");
-    add_srs_wkt (p, 3,
         "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr");
-    add_srs_wkt (p, 5,
         "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
-    add_srs_wkt (p, 6,
+    add_srs_wkt (p, 5,
         ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator");
+        "Area\"],PARAMETER[\"standard_parallel_1\",60],PARAMETER[");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"latitude_of_origin\",42.83333333333334],");
+        "\"standard_parallel_2\",46],PARAMETER[\"latitude_of_cent");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"central_meridian\",-70.16666666666667],PARAM");
+        "er\",44],PARAMETER[\"longitude_of_center\",-68.5],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas");
+        "TER[\"false_easting\",0],PARAMETER[\"false_northing\",0]");
     add_srs_wkt (p, 11,
-        "ting\",900000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
     add_srs_wkt (p, 12,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
-    add_srs_wkt (p, 13,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26837\"]]");
-    p = add_epsg_def (filter, first, last, 26841, "epsg", 26841,
-        "NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6623\"]]");
+    p = add_epsg_def (filter, first, last, 6624, "epsg", 6624,
+        "NAD83(CSRS) / Quebec Albers");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+        "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0");
-    add_proj4text (p, 3,
-        ",0,0,0,0 +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS) (depre");
+        "PROJCS[\"NAD83(CSRS) / Quebec Albers\",GEOGCS[\"NAD83(CS");
     add_srs_wkt (p, 1,
-        "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation");
+        "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",");
     add_srs_wkt (p, 2,
-        "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\"");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM");
+        "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJE");
     add_srs_wkt (p, 7,
-        "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo");
+        "CTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6");
+        "parallel_1\",60],PARAMETER[\"standard_parallel_2\",46],P");
     add_srs_wkt (p, 9,
-        "3333333333333],PARAMETER[\"standard_parallel_2\",47.0333");
+        "ARAMETER[\"latitude_of_center\",44],PARAMETER[\"longitud");
     add_srs_wkt (p, 10,
-        "3333333333],PARAMETER[\"latitude_of_origin\",46.5],PARAM");
+        "e_of_center\",-68.5],PARAMETER[\"false_easting\",0],PARA");
     add_srs_wkt (p, 11,
-        "ETER[\"central_meridian\",-93.1],PARAMETER[\"false_easti");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ng\",800000.0000101601],PARAMETER[\"false_northing\",999");
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
     add_srs_wkt (p, 13,
-        "99.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
-    add_srs_wkt (p, 14,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 15,
-        ",\"26841\"]]");
-    p = add_epsg_def (filter, first, last, 26842, "epsg", 26842,
-        "NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)");
+        "HORITY[\"EPSG\",\"6624\"]]");
+    p = add_epsg_def (filter, first, last, 6625, "epsg", 6625,
+        "NAD83(2011) / Utah Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989");
+        "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0");
     add_proj4text (p, 2,
-        "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "=2000000.00001016 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS) (dep");
+        "PROJCS[\"NAD83(2011) / Utah Central (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "recated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nati");
+        "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys");
     add_srs_wkt (p, 2,
-        "onal_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980");
+        "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"");
     add_srs_wkt (p, 4,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIM");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Con");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47");
+        "_1\",40.65],PARAMETER[\"standard_parallel_2\",39.0166666");
     add_srs_wkt (p, 9,
-        ".05],PARAMETER[\"standard_parallel_2\",45.61666666666667");
+        "6666667],PARAMETER[\"latitude_of_origin\",38.33333333333");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"centr");
+        "334],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "al_meridian\",-94.25],PARAMETER[\"false_easting\",800000");
+        "false_easting\",1640416.6667],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        ".0000101601],PARAMETER[\"false_northing\",99999.99998984");
+        "\",6561666.666700001],UNIT[\"US survey foot\",0.30480060");
     add_srs_wkt (p, 13,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],");
     add_srs_wkt (p, 14,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26842\"");
-    add_srs_wkt (p, 15,
-        "]]");
-    p = add_epsg_def (filter, first, last, 26843, "epsg", 26843,
-        "NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)");
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6625\"]]");
+    p = add_epsg_def (filter, first, last, 6626, "epsg", 6626,
+        "NAD83(2011) / Utah North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666");
     add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999");
+        "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0");
     add_proj4text (p, 2,
-        "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+        "0001016 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft");
     add_proj4text (p, 3,
         " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS) (depre");
+        "PROJCS[\"NAD83(2011) / Utah North (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\"");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2");
+        "\",41.78333333333333],PARAMETER[\"standard_parallel_2\",");
     add_srs_wkt (p, 9,
-        "1666666666667],PARAMETER[\"standard_parallel_2\",43.7833");
+        "40.71666666666667],PARAMETER[\"latitude_of_origin\",40.3");
     add_srs_wkt (p, 10,
-        "3333333333],PARAMETER[\"latitude_of_origin\",43],PARAMET");
+        "3333333333334],PARAMETER[\"central_meridian\",-111.5],PA");
     add_srs_wkt (p, 11,
-        "ER[\"central_meridian\",-94],PARAMETER[\"false_easting\"");
+        "RAMETER[\"false_easting\",1640416.6667],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        ",800000.0000101601],PARAMETER[\"false_northing\",99999.9");
+        "e_northing\",3280833.333300001],UNIT[\"US survey foot\",");
     add_srs_wkt (p, 13,
-        "9998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
     add_srs_wkt (p, 14,
-        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6626\"]");
     add_srs_wkt (p, 15,
-        "26843\"]]");
-    p = add_epsg_def (filter, first, last, 26844, "epsg", 26844,
-        "NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)");
+        "]");
+    p = add_epsg_def (filter, first, last, 6627, "epsg", 6627,
+        "NAD83(2011) / Utah South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+        "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3");
     add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t");
+        "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0");
     add_proj4text (p, 2,
-        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "=3000000 +ellps=GRS80 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)\"");
+        "PROJCS[\"NAD83(2011) / Utah South (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati");
+        "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste");
     add_srs_wkt (p, 2,
-        "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137");
+        "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]");
     add_srs_wkt (p, 4,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "22\"]],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber");
     add_srs_wkt (p, 7,
-        "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1");
     add_srs_wkt (p, 8,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETE");
+        "\",38.35],PARAMETER[\"standard_parallel_2\",37.216666666");
     add_srs_wkt (p, 9,
-        "R[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_or");
+        "66667],PARAMETER[\"latitude_of_origin\",36.6666666666666");
     add_srs_wkt (p, 10,
-        "igin\",39.83333333333334],PARAMETER[\"central_meridian\"");
+        "6],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        ",-100],PARAMETER[\"false_easting\",500000.0000101601],PA");
+        "lse_easting\",1640416.6667],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        ",9842500.000000002],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 13,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 14,
-        "AUTHORITY[\"EPSG\",\"26844\"]]");
-    p = add_epsg_def (filter, first, last, 26845, "epsg", 26845,
-        "NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6627\"]]");
+    p = add_epsg_def (filter, first, last, 6628, "epsg", 6628,
+        "NAD83(PA11) / Hawaii zone 1");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
+        "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.");
     add_proj4text (p, 1,
-        "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,");
+        "999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_d");
     add_proj4text (p, 2,
-        "0 +units=m +no_defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS) (d");
+        "PROJCS[\"NAD83(PA11) / Hawaii zone 1\",GEOGCS[\"NAD83(PA");
     add_srs_wkt (p, 1,
-        "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA");
     add_srs_wkt (p, 2,
-        "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI");
     add_srs_wkt (p, 4,
-        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",18.83333333");
     add_srs_wkt (p, 8,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
+        "333333],PARAMETER[\"central_meridian\",-155.5],PARAMETER");
     add_srs_wkt (p, 9,
-        "0.25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"");
+        "[\"scale_factor\",0.999966667],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "latitude_of_origin\",38.5],PARAMETER[\"central_meridian\"");
+        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        ",-79.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 14,
-        "\"EPSG\",\"26845\"]]");
-    p = add_epsg_def (filter, first, last, 26846, "epsg", 26846,
-        "NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"6628\"]]");
+    p = add_epsg_def (filter, first, last, 6629, "epsg", 6629,
+        "NAD83(PA11) / Hawaii zone 2");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+        "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8");
+        "666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +u");
     add_proj4text (p, 2,
-        "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS) (d");
+        "PROJCS[\"NAD83(PA11) / Hawaii zone 2\",GEOGCS[\"NAD83(PA");
     add_srs_wkt (p, 1,
-        "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA");
     add_srs_wkt (p, 2,
-        "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI");
     add_srs_wkt (p, 4,
-        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",20.33333333");
     add_srs_wkt (p, 8,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
+        "333333],PARAMETER[\"central_meridian\",-156.666666666666");
     add_srs_wkt (p, 9,
-        "8.88333333333333],PARAMETER[\"standard_parallel_2\",37.4");
+        "7],PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "8333333333333],PARAMETER[\"latitude_of_origin\",37],PARA");
+        "alse_easting\",500000],PARAMETER[\"false_northing\",0],U");
     add_srs_wkt (p, 11,
-        "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 12,
-        "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"metr");
-    add_srs_wkt (p, 13,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
-    add_srs_wkt (p, 14,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26846\"]]");
-    p = add_epsg_def (filter, first, last, 26847, "epsg", 26847,
-        "NAD83 / Maine East (ftUS)");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6629\"]]");
+    p = add_epsg_def (filter, first, last, 6630, "epsg", 6630,
+        "NAD83(PA11) / Hawaii zone 3");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99");
     add_proj4text (p, 1,
-        "999 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +units=us");
-    add_proj4text (p, 2,
-        "-ft +no_defs");
+        "999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maine East (ftUS)\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"NAD83(PA11) / Hawaii zone 3\",GEOGCS[\"NAD83(PA");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer");
+        "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",43.66666666666");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",21.16666666");
     add_srs_wkt (p, 8,
-        "666],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"s");
+        "666667],PARAMETER[\"central_meridian\",-158],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9999],PARAMETER[\"false_easting\",984250");
+        "scale_factor\",0.99999],PARAMETER[\"false_easting\",5000");
     add_srs_wkt (p, 10,
-        ".0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
     add_srs_wkt (p, 12,
-        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 13,
-        "G\",\"26847\"]]");
-    p = add_epsg_def (filter, first, last, 26848, "epsg", 26848,
-        "NAD83 / Maine West (ftUS)");
+        "ORTH],AUTHORITY[\"EPSG\",\"6630\"]]");
+    p = add_epsg_def (filter, first, last, 6631, "epsg", 6631,
+        "NAD83(PA11) / Hawaii zone 4");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u");
-    add_proj4text (p, 2,
-        "nits=us-ft +no_defs");
+        "99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maine West (ftUS)\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"NAD83(PA11) / Hawaii zone 4\",GEOGCS[\"NAD83(PA");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer");
+        "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",42.83333333333");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",21.83333333");
     add_srs_wkt (p, 8,
-        "334],PARAMETER[\"central_meridian\",-70.16666666666667],");
+        "333333],PARAMETER[\"central_meridian\",-159.5],PARAMETER");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals");
+        "[\"scale_factor\",0.99999],PARAMETER[\"false_easting\",5");
     add_srs_wkt (p, 10,
-        "e_easting\",2952750],PARAMETER[\"false_northing\",0],UNI");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
-    add_srs_wkt (p, 13,
-        "TY[\"EPSG\",\"26848\"]]");
-    p = add_epsg_def (filter, first, last, 26849, "epsg", 26849,
-        "NAD83 / Minnesota North (ftUS)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6631\"]]");
+    p = add_epsg_def (filter, first, last, 6632, "epsg", 6632,
+        "NAD83(PA11) / Hawaii zone 5");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+        "666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no");
     add_proj4text (p, 2,
-        "00101599 +y_0=99999.99998983997 +datum=NAD83 +units=us-f");
-    add_proj4text (p, 3,
-        "t +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota North (ftUS)\",GEOGCS[\"NAD83");
+        "PROJCS[\"NAD83(PA11) / Hawaii zone 5\",GEOGCS[\"NAD83(PA");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA");
     add_srs_wkt (p, 2,
-        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co");
+        "],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",21.66666666");
     add_srs_wkt (p, 8,
-        "8.63333333333333],PARAMETER[\"standard_parallel_2\",47.0");
+        "666667],PARAMETER[\"central_meridian\",-160.166666666666");
     add_srs_wkt (p, 9,
-        "3333333333333],PARAMETER[\"latitude_of_origin\",46.5],PA");
+        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "RAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_ea");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "sting\",2624666.6667],PARAMETER[\"false_northing\",32808");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "3.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
-    add_srs_wkt (p, 14,
-        "TH],AUTHORITY[\"EPSG\",\"26849\"]]");
-    p = add_epsg_def (filter, first, last, 26850, "epsg", 26850,
-        "NAD83 / Minnesota Central (ftUS)");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6632\"]]");
+    p = add_epsg_def (filter, first, last, 6633, "epsg", 6633,
+        "NAD83(PA11) / Hawaii zone 3 (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
+        "999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-f");
     add_proj4text (p, 2,
-        "83997 +datum=NAD83 +units=us-ft +no_defs");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota Central (ftUS)\",GEOGCS[\"NAD");
+        "PROJCS[\"NAD83(PA11) / Hawaii zone 3 (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS ");
+        "AD83(PA11)\",DATUM[\"NAD83_National_Spatial_Reference_Sy");
     add_srs_wkt (p, 2,
-        "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
+        "stem_PA11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],");
+        "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert");
+        "9122\"]],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",21.1");
     add_srs_wkt (p, 8,
-        ",47.05],PARAMETER[\"standard_parallel_2\",45.61666666666");
+        "6666666666667],PARAMETER[\"central_meridian\",-158],PARA");
     add_srs_wkt (p, 9,
-        "667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"ce");
+        "METER[\"scale_factor\",0.99999],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "ntral_meridian\",-94.25],PARAMETER[\"false_easting\",262");
+        "g\",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "4666.6667],PARAMETER[\"false_northing\",328083.3333],UNI");
+        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
+        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 13,
-        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
-    add_srs_wkt (p, 14,
-        "TY[\"EPSG\",\"26850\"]]");
-    p = add_epsg_def (filter, first, last, 26851, "epsg", 26851,
-        "NAD83 / Minnesota South (ftUS)");
+        "EPSG\",\"6633\"]]");
+    p = add_epsg_def (filter, first, last, 6634, "epsg", 6634,
+        "NAD83(PA11) / UTM zone 4N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
-    add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
-    add_proj4text (p, 2,
-        "99.99998983997 +datum=NAD83 +units=us-ft +no_defs");
+        "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota South (ftUS)\",GEOGCS[\"NAD83");
+        "PROJCS[\"NAD83(PA11) / UTM zone 4N\",GEOGCS[\"NAD83(PA11");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11");
     add_srs_wkt (p, 2,
-        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co");
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "5.21666666666667],PARAMETER[\"standard_parallel_2\",43.7");
+        "[\"central_meridian\",-159],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "8333333333333],PARAMETER[\"latitude_of_origin\",43],PARA");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "METER[\"central_meridian\",-94],PARAMETER[\"false_eastin");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "g\",2624666.6667],PARAMETER[\"false_northing\",328083.33");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "33],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
-    add_srs_wkt (p, 13,
-        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 14,
-        "AUTHORITY[\"EPSG\",\"26851\"]]");
-    p = add_epsg_def (filter, first, last, 26852, "epsg", 26852,
-        "NAD83 / Nebraska (ftUS)");
+        ",AUTHORITY[\"EPSG\",\"6634\"]]");
+    p = add_epsg_def (filter, first, last, 6635, "epsg", 6635,
+        "NAD83(PA11) / UTM zone 5N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
-    add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +uni");
-    add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nebraska (ftUS)\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"NAD83(PA11) / UTM zone 5N\",GEOGCS[\"NAD83(PA11");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_");
+        "[\"central_meridian\",-153],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "of_origin\",39.83333333333334],PARAMETER[\"central_merid");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ian\",-100],PARAMETER[\"false_easting\",1640416.6667],PA");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+        "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]");
     add_srs_wkt (p, 12,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26852\"]]");
-    p = add_epsg_def (filter, first, last, 26853, "epsg", 26853,
-        "NAD83 / West Virginia North (ftUS)");
+        ",AUTHORITY[\"EPSG\",\"6635\"]]");
+    p = add_epsg_def (filter, first, last, 6636, "epsg", 6636,
+        "NAD83(PA11) / UTM zone 2S");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
-    add_proj4text (p, 1,
-        "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+        "+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / West Virginia North (ftUS)\",GEOGCS[\"N");
+        "PROJCS[\"NAD83(PA11) / UTM zone 2S\",GEOGCS[\"NAD83(PA11");
     add_srs_wkt (p, 1,
-        "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR");
+        ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11");
     add_srs_wkt (p, 2,
-        "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019");
+        "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]");
+        "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME");
     add_srs_wkt (p, 4,
-        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe");
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAMET");
+        "[\"central_meridian\",-171],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "ER[\"latitude_of_origin\",38.5],PARAMETER[\"central_meri");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "dian\",-79.5],PARAMETER[\"false_easting\",1968500],PARAM");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
-    add_srs_wkt (p, 13,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26853\"]]");
-    p = add_epsg_def (filter, first, last, 26854, "epsg", 26854,
-        "NAD83 / West Virginia South (ftUS)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6636\"]]");
+    p = add_epsg_def (filter, first, last, 6637, "epsg", 6637,
+        "NAD83(MA11) / Guam Map Grid");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+        "+proj=tmerc +lat_0=13.5 +lon_0=144.75 +k=1 +x_0=100000 +");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83");
-    add_proj4text (p, 2,
-        " +units=us-ft +no_defs");
+        "y_0=200000 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / West Virginia South (ftUS)\",GEOGCS[\"N");
+        "PROJCS[\"NAD83(MA11) / Guam Map Grid\",GEOGCS[\"NAD83(MA");
     add_srs_wkt (p, 1,
-        "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR");
+        "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_MA");
     add_srs_wkt (p, 2,
-        "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019");
+        "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]");
+        "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1118\"]],PRI");
     add_srs_wkt (p, 4,
-        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe");
+        "],AUTHORITY[\"EPSG\",\"6325\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",13.5],PARAM");
     add_srs_wkt (p, 8,
-        "1\",38.88333333333333],PARAMETER[\"standard_parallel_2\"");
+        "ETER[\"central_meridian\",144.75],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]");
+        "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e");
+        "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
-    add_srs_wkt (p, 14,
-        "EPSG\",\"26854\"]]");
-    p = add_epsg_def (filter, first, last, 26855, "epsg", 26855,
-        "NAD83(HARN) / Maine East (ftUS)");
+        "RITY[\"EPSG\",\"6637\"]]");
+    p = add_epsg_def (filter, first, last, 6646, "epsg", 6646,
+        "Karbala 1979 / Iraq National Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.99");
     add_proj4text (p, 1,
-        "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=");
+        "94 +x_0=800000 +y_0=0 +ellps=clrk80 +towgs84=70.995,-335");
     add_proj4text (p, 2,
-        "0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        ".916,262.898,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Maine East (ftUS)\",GEOGCS[\"NAD8");
+        "PROJCS[\"Karbala 1979 / Iraq National Grid\",GEOGCS[\"Ka");
     add_srs_wkt (p, 1,
-        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
+        "rbala 1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 18");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "\"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4743\"]],");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "rigin\",43.66666666666666],PARAMETER[\"central_meridian\"");
+        "_of_origin\",29.02626833333333],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        ",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f");
+        "dian\",46.5],PARAMETER[\"scale_factor\",0.9994],PARAMETE");
     add_srs_wkt (p, 10,
-        "alse_easting\",984250.0000000002],PARAMETER[\"false_nort");
+        "R[\"false_easting\",800000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
     add_srs_wkt (p, 13,
-        "ORTH],AUTHORITY[\"EPSG\",\"26855\"]]");
-    p = add_epsg_def (filter, first, last, 26856, "epsg", 26856,
-        "NAD83(HARN) / Maine West (ftUS)");
+        "PSG\",\"6646\"]]");
+    p = add_epsg_def (filter, first, last, 6668, "epsg", 6668,
+        "JGD2011");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
-    add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
-    add_proj4text (p, 2,
-        "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        "+proj=longlat +ellps=GRS80 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Maine West (ftUS)\",GEOGCS[\"NAD8");
+        "GEOGCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\"");
     add_srs_wkt (p, 1,
-        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
-    add_srs_wkt (p, 2,
         ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+    add_srs_wkt (p, 2,
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 4,
-        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
-    add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
-    add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
-    add_srs_wkt (p, 8,
-        "rigin\",42.83333333333334],PARAMETER[\"central_meridian\"");
-    add_srs_wkt (p, 9,
-        ",-70.16666666666667],PARAMETER[\"scale_factor\",0.999966");
-    add_srs_wkt (p, 10,
-        "667],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fa");
-    add_srs_wkt (p, 11,
-        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
-    add_srs_wkt (p, 12,
-        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
-    add_srs_wkt (p, 13,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26856\"]]");
-    p = add_epsg_def (filter, first, last, 26857, "epsg", 26857,
-        "NAD83(HARN) / Minnesota North (ftUS)");
+        "HORITY[\"EPSG\",\"6668\"]]");
+    p = add_epsg_def (filter, first, last, 6669, "epsg", 6669,
+        "JGD2011 / Japan Plane Rectangular CS I");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
-    add_proj4text (p, 2,
-        "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,");
-    add_proj4text (p, 3,
-        "0,0,0,0,0,0 +units=us-ft +no_defs");
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS)\",GEOGCS[\"");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS I\",GEOGCS");
     add_srs_wkt (p, 1,
-        "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw");
+        "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE");
     add_srs_wkt (p, 2,
-        "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY");
+        "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
+        "\"],PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "standard_parallel_1\",48.63333333333333],PARAMETER[\"sta");
+        "tral_meridian\",129.5],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "ndard_parallel_2\",47.03333333333333],PARAMETER[\"latitu");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "de_of_origin\",46.5],PARAMETER[\"central_meridian\",-93.");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "1],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"");
-    add_srs_wkt (p, 12,
-        "false_northing\",328083.3333],UNIT[\"US survey foot\",0.");
-    add_srs_wkt (p, 13,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
-    add_srs_wkt (p, 14,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26857\"]]");
-    p = add_epsg_def (filter, first, last, 26858, "epsg", 26858,
-        "NAD83(HARN) / Minnesota Central (ftUS)");
+        "AUTHORITY[\"EPSG\",\"6669\"]]");
+    p = add_epsg_def (filter, first, last, 6670, "epsg", 6670,
+        "JGD2011 / Japan Plane Rectangular CS II");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
-    add_proj4text (p, 2,
-        "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +");
-    add_proj4text (p, 3,
-        "no_defs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS)\",GEOGCS");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS II\",GEOGC");
     add_srs_wkt (p, 1,
-        "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N");
+        "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH");
     add_srs_wkt (p, 2,
-        "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR");
+        "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
+        "\"],PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "[\"standard_parallel_1\",47.05],PARAMETER[\"standard_par");
+        "tral_meridian\",131],PARAMETER[\"scale_factor\",0.9999],");
     add_srs_wkt (p, 9,
-        "allel_2\",45.61666666666667],PARAMETER[\"latitude_of_ori");
+        "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "gin\",45],PARAMETER[\"central_meridian\",-94.25],PARAMET");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
     add_srs_wkt (p, 11,
-        "ER[\"false_easting\",2624666.6667],PARAMETER[\"false_nor");
-    add_srs_wkt (p, 12,
-        "thing\",328083.3333],UNIT[\"US survey foot\",0.304800609");
-    add_srs_wkt (p, 13,
-        "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A");
-    add_srs_wkt (p, 14,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26858\"]]");
-    p = add_epsg_def (filter, first, last, 26859, "epsg", 26859,
-        "NAD83(HARN) / Minnesota South (ftUS)");
+        "THORITY[\"EPSG\",\"6670\"]]");
+    p = add_epsg_def (filter, first, last, 6671, "epsg", 6671,
+        "JGD2011 / Japan Plane Rectangular CS III");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
+        "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999");
     add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
-    add_proj4text (p, 2,
-        "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit");
-    add_proj4text (p, 3,
-        "s=us-ft +no_defs");
+        " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS)\",GEOGCS[\"");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS III\",GEOG");
     add_srs_wkt (p, 1,
-        "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw");
+        "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP");
     add_srs_wkt (p, 2,
-        "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY");
+        "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]");
+        "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
+        "or\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "standard_parallel_1\",45.21666666666667],PARAMETER[\"sta");
+        "entral_meridian\",132.1666666666667],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "ndard_parallel_2\",43.78333333333333],PARAMETER[\"latitu");
+        "actor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER");
     add_srs_wkt (p, 10,
-        "de_of_origin\",43],PARAMETER[\"central_meridian\",-94],P");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fal");
-    add_srs_wkt (p, 12,
-        "se_northing\",328083.3333],UNIT[\"US survey foot\",0.304");
-    add_srs_wkt (p, 13,
-        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
-    add_srs_wkt (p, 14,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26859\"]]");
-    p = add_epsg_def (filter, first, last, 26860, "epsg", 26860,
-        "NAD83(HARN) / Nebraska (ftUS)");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"6671\"]]");
+    p = add_epsg_def (filter, first, last, 6672, "epsg", 6672,
+        "JGD2011 / Japan Plane Rectangular CS IV");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+        "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0");
     add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow");
-    add_proj4text (p, 2,
-        "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / Nebraska (ftUS)\",GEOGCS[\"NAD83(");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS IV\",GEOGC");
     add_srs_wkt (p, 1,
-        "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",");
+        "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
+        "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
+        "\"],PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "ard_parallel_1\",43],PARAMETER[\"standard_parallel_2\",4");
+        "tral_meridian\",133.5],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "0],PARAMETER[\"latitude_of_origin\",39.83333333333334],P");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"central_meridian\",-100],PARAMETER[\"false_ea");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "sting\",1640416.6667],PARAMETER[\"false_northing\",0],UN");
-    add_srs_wkt (p, 12,
-        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
-    add_srs_wkt (p, 13,
-        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
-    add_srs_wkt (p, 14,
-        "ITY[\"EPSG\",\"26860\"]]");
-    p = add_epsg_def (filter, first, last, 26861, "epsg", 26861,
-        "NAD83(HARN) / West Virginia North (ftUS)");
+        "AUTHORITY[\"EPSG\",\"6672\"]]");
+    p = add_epsg_def (filter, first, last, 6673, "epsg", 6673,
+        "JGD2011 / Japan Plane Rectangular CS V");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
+        "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999");
     add_proj4text (p, 1,
-        "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=us-ft +no_defs");
+        " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS)\",GEOG");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS V\",GEOGCS");
     add_srs_wkt (p, 1,
-        "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference");
+        "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE");
     add_srs_wkt (p, 2,
-        "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH");
+        "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
+        "\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_1\",40.25],PARAMETER[\"standard_");
+        "tral_meridian\",134.3333333333333],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "parallel_2\",39],PARAMETER[\"latitude_of_origin\",38.5],");
+        "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"false_");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT[");
-    add_srs_wkt (p, 12,
-        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
-    add_srs_wkt (p, 14,
-        "[\"EPSG\",\"26861\"]]");
-    p = add_epsg_def (filter, first, last, 26862, "epsg", 26862,
-        "NAD83(HARN) / West Virginia South (ftUS)");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"6673\"]]");
+    p = add_epsg_def (filter, first, last, 6674, "epsg", 6674,
+        "JGD2011 / Japan Plane Rectangular CS VI");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+        "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80");
-    add_proj4text (p, 2,
-        " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS)\",GEOG");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VI\",GEOGC");
     add_srs_wkt (p, 1,
-        "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference");
+        "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH");
     add_srs_wkt (p, 2,
-        "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH");
+        "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
+        "\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_1\",38.88333333333333],PARAMETER");
+        "tral_meridian\",136],PARAMETER[\"scale_factor\",0.9999],");
     add_srs_wkt (p, 9,
-        "[\"standard_parallel_2\",37.48333333333333],PARAMETER[\"");
+        "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "latitude_of_origin\",37],PARAMETER[\"central_meridian\",");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
     add_srs_wkt (p, 11,
-        "-81],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa");
-    add_srs_wkt (p, 12,
-        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
-    add_srs_wkt (p, 13,
-        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
-    add_srs_wkt (p, 14,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26862\"]]");
-    p = add_epsg_def (filter, first, last, 26863, "epsg", 26863,
-        "NAD83(NSRS2007) / Maine East (ftUS)");
+        "THORITY[\"EPSG\",\"6674\"]]");
+    p = add_epsg_def (filter, first, last, 6675, "epsg", 6675,
+        "JGD2011 / Japan Plane Rectangular CS VII");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999");
     add_proj4text (p, 1,
-        "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=");
-    add_proj4text (p, 2,
-        "0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS)\",GEOGCS[\"");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VII\",GEOG");
     add_srs_wkt (p, 1,
-        "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
+        "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP");
     add_srs_wkt (p, 2,
-        "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0");
+        "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "or\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",43.66666666666666],PARAMETER[\"");
+        "entral_meridian\",137.1666666666667],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "central_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9");
+        "actor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER");
     add_srs_wkt (p, 10,
-        "999],PARAMETER[\"false_easting\",984250.0000000002],PARA");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
-    add_srs_wkt (p, 12,
-        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
-    add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26863\"]]");
-    p = add_epsg_def (filter, first, last, 26864, "epsg", 26864,
-        "NAD83(NSRS2007) / Maine West (ftUS)");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"6675\"]]");
+    p = add_epsg_def (filter, first, last, 6676, "epsg", 6676,
+        "JGD2011 / Japan Plane Rectangular CS VIII");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
-    add_proj4text (p, 2,
-        "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS)\",GEOGCS[\"");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VIII\",GEO");
     add_srs_wkt (p, 1,
-        "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
+        "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S");
     add_srs_wkt (p, 2,
-        "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 3,
-        "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0");
+        "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "tor\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",42.83333333333334],PARAMETER[\"");
+        "central_meridian\",138.5],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "central_meridian\",-70.16666666666667],PARAMETER[\"scale");
+        "999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_no");
     add_srs_wkt (p, 10,
-        "_factor\",0.999966667],PARAMETER[\"false_easting\",29527");
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "50],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo");
-    add_srs_wkt (p, 12,
-        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
-    add_srs_wkt (p, 13,
-        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268");
-    add_srs_wkt (p, 14,
-        "64\"]]");
-    p = add_epsg_def (filter, first, last, 26865, "epsg", 26865,
-        "NAD83(NSRS2007) / Minnesota North (ftUS)");
+        "]],AUTHORITY[\"EPSG\",\"6676\"]]");
+    p = add_epsg_def (filter, first, last, 6677, "epsg", 6677,
+        "JGD2011 / Japan Plane Rectangular CS IX");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
-    add_proj4text (p, 2,
-        "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,");
-    add_proj4text (p, 3,
-        "0,0,0,0,0,0 +units=us-ft +no_defs");
+        " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS)\",GEOG");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS IX\",GEOGC");
     add_srs_wkt (p, 1,
-        "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re");
+        "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH");
     add_srs_wkt (p, 2,
-        "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
+        "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"standard_parallel_1\",48.63333333333333]");
+        "tral_meridian\",139.8333333333333],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"standard_parallel_2\",47.03333333333333],PA");
+        "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "RAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"central");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "_meridian\",-93.1],PARAMETER[\"false_easting\",2624666.6");
-    add_srs_wkt (p, 12,
-        "667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"US");
-    add_srs_wkt (p, 13,
-        " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9");
-    add_srs_wkt (p, 14,
-        "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 15,
-        "PSG\",\"26865\"]]");
-    p = add_epsg_def (filter, first, last, 26866, "epsg", 26866,
-        "NAD83(NSRS2007) / Minnesota Central (ftUS)");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"6677\"]]");
+    p = add_epsg_def (filter, first, last, 6678, "epsg", 6678,
+        "JGD2011 / Japan Plane Rectangular CS X");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
-    add_proj4text (p, 2,
-        "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +");
-    add_proj4text (p, 3,
-        "no_defs");
+        " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS)\",GE");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS X\",GEOGCS");
     add_srs_wkt (p, 1,
-        "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_");
+        "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE");
     add_srs_wkt (p, 2,
-        "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+        "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "SP\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER");
+        "tral_meridian\",140.8333333333333],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "[\"standard_parallel_2\",45.61666666666667],PARAMETER[\"");
+        "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "latitude_of_origin\",45],PARAMETER[\"central_meridian\",");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "-94.25],PARAMETER[\"false_easting\",2624666.6667],PARAME");
-    add_srs_wkt (p, 12,
-        "TER[\"false_northing\",328083.3333],UNIT[\"US survey foo");
-    add_srs_wkt (p, 13,
-        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
-    add_srs_wkt (p, 14,
-        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268");
-    add_srs_wkt (p, 15,
-        "66\"]]");
-    p = add_epsg_def (filter, first, last, 26867, "epsg", 26867,
-        "NAD83(NSRS2007) / Minnesota South (ftUS)");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"6678\"]]");
+    p = add_epsg_def (filter, first, last, 6679, "epsg", 6679,
+        "JGD2011 / Japan Plane Rectangular CS XI");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
+        "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_");
     add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
-    add_proj4text (p, 2,
-        "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit");
-    add_proj4text (p, 3,
-        "s=us-ft +no_defs");
+        "0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS)\",GEOG");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XI\",GEOGC");
     add_srs_wkt (p, 1,
-        "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re");
+        "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH");
     add_srs_wkt (p, 2,
-        "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
+        "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "\"],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"standard_parallel_1\",45.21666666666667]");
+        "tral_meridian\",140.25],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"standard_parallel_2\",43.78333333333333],PA");
+        "9],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "RAMETER[\"latitude_of_origin\",43],PARAMETER[\"central_m");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "eridian\",-94],PARAMETER[\"false_easting\",2624666.6667]");
-    add_srs_wkt (p, 12,
-        ",PARAMETER[\"false_northing\",328083.3333],UNIT[\"US sur");
-    add_srs_wkt (p, 13,
-        "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
-    add_srs_wkt (p, 14,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 15,
-        ",\"26867\"]]");
-    p = add_epsg_def (filter, first, last, 26868, "epsg", 26868,
-        "NAD83(NSRS2007) / Nebraska (ftUS)");
+        ",AUTHORITY[\"EPSG\",\"6679\"]]");
+    p = add_epsg_def (filter, first, last, 6680, "epsg", 6680,
+        "JGD2011 / Japan Plane Rectangular CS XII");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+        "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_");
     add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow");
-    add_proj4text (p, 2,
-        "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        "0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS)\",GEOGCS[\"NA");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XII\",GEOG");
     add_srs_wkt (p, 1,
-        "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference");
+        "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP");
     add_srs_wkt (p, 2,
-        "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],");
+        "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "or\"],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_1\",43],PARAMETER[\"standard_");
+        "entral_meridian\",142.25],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "parallel_2\",40],PARAMETER[\"latitude_of_origin\",39.833");
+        "999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_no");
     add_srs_wkt (p, 10,
-        "33333333334],PARAMETER[\"central_meridian\",-100],PARAME");
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "TER[\"false_easting\",1640416.6667],PARAMETER[\"false_no");
-    add_srs_wkt (p, 12,
-        "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A");
-    add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
-    add_srs_wkt (p, 14,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26868\"]]");
-    p = add_epsg_def (filter, first, last, 26869, "epsg", 26869,
-        "NAD83(NSRS2007) / West Virginia North (ftUS)");
+        "]],AUTHORITY[\"EPSG\",\"6680\"]]");
+    p = add_epsg_def (filter, first, last, 6681, "epsg", 6681,
+        "JGD2011 / Japan Plane Rectangular CS XIII");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
+        "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_");
     add_proj4text (p, 1,
-        "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=us-ft +no_defs");
+        "0=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS)\",");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIII\",GEO");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia");
+        "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S");
     add_srs_wkt (p, 2,
-        "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 3,
-        "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,");
+        "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni");
+        "tor\"],PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "c_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAME");
+        "central_meridian\",144.25],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "TER[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_");
+        "9999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "origin\",38.5],PARAMETER[\"central_meridian\",-79.5],PAR");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort");
-    add_srs_wkt (p, 12,
-        "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT");
-    add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
-    add_srs_wkt (p, 14,
-        "ORTH],AUTHORITY[\"EPSG\",\"26869\"]]");
-    p = add_epsg_def (filter, first, last, 26870, "epsg", 26870,
-        "NAD83(NSRS2007) / West Virginia South (ftUS)");
+        "]],AUTHORITY[\"EPSG\",\"6681\"]]");
+    p = add_epsg_def (filter, first, last, 6682, "epsg", 6682,
+        "JGD2011 / Japan Plane Rectangular CS XIV");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+        "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80");
-    add_proj4text (p, 2,
-        " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS)\",");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIV\",GEOG");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia");
+        "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP");
     add_srs_wkt (p, 2,
-        "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,");
+        "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni");
+        "or\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333");
+        "entral_meridian\",142],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "3333],PARAMETER[\"standard_parallel_2\",37.4833333333333");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "3],PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"cent");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "ral_meridian\",-81],PARAMETER[\"false_easting\",1968500]");
-    add_srs_wkt (p, 12,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
-    add_srs_wkt (p, 13,
-        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
-    add_srs_wkt (p, 14,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26870\"");
-    add_srs_wkt (p, 15,
-        "]]");
-    p = add_epsg_def (filter, first, last, 26891, "epsg", 26891,
-        "NAD83(CSRS) / MTM zone 11");
+        "AUTHORITY[\"EPSG\",\"6682\"]]");
+    p = add_epsg_def (filter, first, last, 6683, "epsg", 6683,
+        "JGD2011 / Japan Plane Rectangular CS XV");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0");
     add_proj4text (p, 1,
-        "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "=0 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 11\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XV\",GEOGC");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH");
     add_srs_wkt (p, 2,
-        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "ITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-82.5],PARAMETER[");
+        "tral_meridian\",127.5],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
-    add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26891\"]]");
-    p = add_epsg_def (filter, first, last, 26892, "epsg", 26892,
-        "NAD83(CSRS) / MTM zone 12");
+        "AUTHORITY[\"EPSG\",\"6683\"]]");
+    p = add_epsg_def (filter, first, last, 6684, "epsg", 6684,
+        "JGD2011 / Japan Plane Rectangular CS XVI");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 12\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVI\",GEOG");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP");
     add_srs_wkt (p, 2,
         "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "or\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"");
+        "entral_meridian\",124],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26892\"]]");
-    p = add_epsg_def (filter, first, last, 26893, "epsg", 26893,
-        "NAD83(CSRS) / MTM zone 13");
+        "AUTHORITY[\"EPSG\",\"6684\"]]");
+    p = add_epsg_def (filter, first, last, 6685, "epsg", 6685,
+        "JGD2011 / Japan Plane Rectangular CS XVII");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 13\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVII\",GEO");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S");
     add_srs_wkt (p, 2,
-        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
+        "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "tor\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-84],PARAMETER[\"");
+        "central_meridian\",131],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "9],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26893\"]]");
-    p = add_epsg_def (filter, first, last, 26894, "epsg", 26894,
-        "NAD83(CSRS) / MTM zone 14");
+        ",AUTHORITY[\"EPSG\",\"6685\"]]");
+    p = add_epsg_def (filter, first, last, 6686, "epsg", 6686,
+        "JGD2011 / Japan Plane Rectangular CS XVIII");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 14\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVIII\",GE");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "OGCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",");
     add_srs_wkt (p, 2,
-        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "HORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "tor\"],PARAMETER[\"latitude_of_origin\",20],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\"");
+        "central_meridian\",136],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "9],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26894\"]]");
-    p = add_epsg_def (filter, first, last, 26895, "epsg", 26895,
-        "NAD83(CSRS) / MTM zone 15");
+        ",AUTHORITY[\"EPSG\",\"6686\"]]");
+    p = add_epsg_def (filter, first, last, 6687, "epsg", 6687,
+        "JGD2011 / Japan Plane Rectangular CS XIX");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0");
     add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        " +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 15\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIX\",GEOG");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP");
     add_srs_wkt (p, 2,
         "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "ORITY[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "or\"],PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\"");
+        "entral_meridian\",154],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26895\"]]");
-    p = add_epsg_def (filter, first, last, 26896, "epsg", 26896,
-        "NAD83(CSRS) / MTM zone 16");
+        "AUTHORITY[\"EPSG\",\"6687\"]]");
+    p = add_epsg_def (filter, first, last, 6688, "epsg", 6688,
+        "JGD2011 / UTM zone 51N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y");
-    add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        "+proj=utm +zone=51 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 16\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / UTM zone 51N\",GEOGCS[\"JGD2011\",DAT");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\"");
+        "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"668");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26896\"]]");
-    p = add_epsg_def (filter, first, last, 26897, "epsg", 26897,
-        "NAD83(CSRS) / MTM zone 17");
+        "8\"]]");
+    p = add_epsg_def (filter, first, last, 6689, "epsg", 6689,
+        "JGD2011 / UTM zone 52N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y");
-    add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        "+proj=utm +zone=52 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 17\",GEOGCS[\"NAD83(CSRS");
+        "PROJCS[\"JGD2011 / UTM zone 52N\",GEOGCS[\"JGD2011\",DAT");
     add_srs_wkt (p, 1,
-        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
+        "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT");
     add_srs_wkt (p, 3,
-        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-96],PARAMETER[\"");
+        "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"668");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26897\"]]");
-    p = add_epsg_def (filter, first, last, 26898, "epsg", 26898,
-        "NAD83(CSRS) / MTM zone 1");
+        "9\"]]");
+    p = add_epsg_def (filter, first, last, 6690, "epsg", 6690,
+        "JGD2011 / UTM zone 53N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y");
-    add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        "+proj=utm +zone=53 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 1\",GEOGCS[\"NAD83(CSRS)");
+        "PROJCS[\"JGD2011 / UTM zone 53N\",GEOGCS[\"JGD2011\",DAT");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH");
+        "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT");
     add_srs_wkt (p, 3,
-        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",13");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-53],PARAMETER[\"");
+        "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y");
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"669");
     add_srs_wkt (p, 12,
-        ")\",NORTH],AUTHORITY[\"EPSG\",\"26898\"]]");
-    p = add_epsg_def (filter, first, last, 26899, "epsg", 26899,
-        "NAD83(CSRS) / MTM zone 2");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 6691, "epsg", 6691,
+        "JGD2011 / UTM zone 54N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y");
-    add_proj4text (p, 1,
-        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
-    add_proj4text (p, 2,
-        "fs");
+        "+proj=utm +zone=54 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83(CSRS) / MTM zone 2\",GEOGCS[\"NAD83(CSRS)");
+        "PROJCS[\"JGD2011 / UTM zone 54N\",GEOGCS[\"JGD2011\",DAT");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH");
+        "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT");
     add_srs_wkt (p, 3,
-        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
+        "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",14");
     add_srs_wkt (p, 8,
-        "in\",0],PARAMETER[\"central_meridian\",-56],PARAMETER[\"");
+        "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y");
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"669");
     add_srs_wkt (p, 12,
-        ")\",NORTH],AUTHORITY[\"EPSG\",\"26899\"]]");
-    p = add_epsg_def (filter, first, last, 26901, "epsg", 26901,
-        "NAD83 / UTM zone 1N");
+        "1\"]]");
+    p = add_epsg_def (filter, first, last, 6692, "epsg", 6692,
+        "JGD2011 / UTM zone 55N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=1 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=55 +ellps=GRS80 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 1N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"JGD2011 / UTM zone 55N\",GEOGCS[\"JGD2011\",DAT");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"66");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "68\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",14");
     add_srs_wkt (p, 8,
-        "l_meridian\",-177],PARAMETER[\"scale_factor\",0.9996],PA");
+        "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"669");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26901\"]]");
-    p = add_epsg_def (filter, first, last, 26902, "epsg", 26902,
-        "NAD83 / UTM zone 2N");
+        "2\"]]");
+    p = add_epsg_def (filter, first, last, 6703, "epsg", 6703,
+        "WGS 84 / TM 60 SW");
     add_proj4text (p, 0,
-        "+proj=utm +zone=2 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=-60 +k=0.9996 +x_0=500000 +y");
+    add_proj4text (p, 1,
+        "_0=10000000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 2N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"WGS 84 / TM 60 SW\",GEOGCS[\"WGS 84\",DATUM[\"W");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "2\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "METER[\"central_meridian\",-60],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 8,
-        "l_meridian\",-171],PARAMETER[\"scale_factor\",0.9996],PA");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26902\"]]");
-    p = add_epsg_def (filter, first, last, 26903, "epsg", 26903,
-        "NAD83 / UTM zone 3N");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"6703\"]]");
+    p = add_epsg_def (filter, first, last, 6706, "epsg", 6706,
+        "RDN2008");
     add_proj4text (p, 0,
-        "+proj=utm +zone=3 +datum=NAD83 +units=m +no_defs");
+        "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de");
+    add_proj4text (p, 1,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 3N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "GEOGCS[\"RDN2008\",DATUM[\"Rete_Dinamica_Nazionale_2008\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "G\",\"1132\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
-    add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
-    add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
-    add_srs_wkt (p, 8,
-        "l_meridian\",-165],PARAMETER[\"scale_factor\",0.9996],PA");
-    add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
-    add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
-    add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26903\"]]");
-    p = add_epsg_def (filter, first, last, 26904, "epsg", 26904,
-        "NAD83 / UTM zone 4N");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"6706\"]]");
+    p = add_epsg_def (filter, first, last, 6707, "epsg", 6707,
+        "RDN2008 / TM32");
     add_proj4text (p, 0,
-        "+proj=utm +zone=4 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 4N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"RDN2008 / TM32\",GEOGCS[\"RDN2008\",DATUM[\"Ret");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
         "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
         "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
         "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-159],PARAMETER[\"scale_factor\",0.9996],PA");
+        "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26904\"]]");
-    p = add_epsg_def (filter, first, last, 26905, "epsg", 26905,
-        "NAD83 / UTM zone 5N");
+        "THORITY[\"EPSG\",\"6707\"]]");
+    p = add_epsg_def (filter, first, last, 6708, "epsg", 6708,
+        "RDN2008 / TM33");
     add_proj4text (p, 0,
-        "+proj=utm +zone=5 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 5N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"RDN2008 / TM33\",GEOGCS[\"RDN2008\",DATUM[\"Ret");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
         "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
         "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
         "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-153],PARAMETER[\"scale_factor\",0.9996],PA");
+        "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26905\"]]");
+        "UTHORITY[\"EPSG\",\"6708\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_32.c b/src/srsinit/epsg_inlined_32.c
index 0f25b2c..7bade69 100644
--- a/src/srsinit/epsg_inlined_32.c
+++ b/src/srsinit/epsg_inlined_32.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3402 +52,3398 @@ initialize_epsg_32 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 26906, "epsg", 26906,
-        "NAD83 / UTM zone 6N");
+    p = add_epsg_def (filter, first, last, 6709, "epsg", 6709,
+        "RDN2008 / TM34");
     add_proj4text (p, 0,
-        "+proj=utm +zone=6 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 6N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"RDN2008 / TM34\",GEOGCS[\"RDN2008\",DATUM[\"Ret");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
         "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
         "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
         "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],PA");
+        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26906\"]]");
-    p = add_epsg_def (filter, first, last, 26907, "epsg", 26907,
-        "NAD83 / UTM zone 7N");
+        "UTHORITY[\"EPSG\",\"6709\"]]");
+    p = add_epsg_def (filter, first, last, 6720, "epsg", 6720,
+        "WGS 84 / CIG92");
     add_proj4text (p, 0,
-        "+proj=utm +zone=7 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.000024 +x_0=500");
+    add_proj4text (p, 1,
+        "00 +y_0=1300000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 7N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"WGS 84 / CIG92\",GEOGCS[\"WGS 84\",DATUM[\"WGS_");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORI");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "TY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRI");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "R[\"central_meridian\",105.625],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 8,
-        "l_meridian\",-141],PARAMETER[\"scale_factor\",0.9996],PA");
+        "\",1.000024],PARAMETER[\"false_easting\",50000],PARAMETE");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "R[\"false_northing\",1300000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26907\"]]");
-    p = add_epsg_def (filter, first, last, 26908, "epsg", 26908,
-        "NAD83 / UTM zone 8N");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"6720\"]]");
+    p = add_epsg_def (filter, first, last, 6721, "epsg", 6721,
+        "GDA94 / CIG94");
     add_proj4text (p, 0,
-        "+proj=utm +zone=8 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.00002514 +x_0=5");
+    add_proj4text (p, 1,
+        "0000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 8N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / CIG94\",GEOGCS[\"GDA94\",DATUM[\"Geocen");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "tric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
     add_srs_wkt (p, 8,
-        "l_meridian\",-135],PARAMETER[\"scale_factor\",0.9996],PA");
+        "ntral_meridian\",105.625],PARAMETER[\"scale_factor\",1.0");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "0002514],PARAMETER[\"false_easting\",50000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "false_northing\",1300000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26908\"]]");
-    p = add_epsg_def (filter, first, last, 26909, "epsg", 26909,
-        "NAD83 / UTM zone 9N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6721\"]]");
+    p = add_epsg_def (filter, first, last, 6722, "epsg", 6722,
+        "WGS 84 / CKIG92");
     add_proj4text (p, 0,
-        "+proj=utm +zone=9 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=96.875 +k=1 +x_0=50000 +y_0=");
+    add_proj4text (p, 1,
+        "1400000 +datum=WGS84 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 9N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"WGS 84 / CKIG92\",GEOGCS[\"WGS 84\",DATUM[\"WGS");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHOR");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PR");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "ER[\"central_meridian\",96.875],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 8,
-        "l_meridian\",-129],PARAMETER[\"scale_factor\",0.9996],PA");
+        "\",1],PARAMETER[\"false_easting\",50000],PARAMETER[\"fal");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "se_northing\",1400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26909\"]]");
-    p = add_epsg_def (filter, first, last, 26910, "epsg", 26910,
-        "NAD83 / UTM zone 10N");
+        "ORTH],AUTHORITY[\"EPSG\",\"6722\"]]");
+    p = add_epsg_def (filter, first, last, 6723, "epsg", 6723,
+        "GDA94 / CKIG94");
     add_proj4text (p, 0,
-        "+proj=utm +zone=10 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=96.875 +k=0.99999387 +x_0=50");
+    add_proj4text (p, 1,
+        "000 +y_0=1500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 10N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / CKIG94\",GEOGCS[\"GDA94\",DATUM[\"Geoce");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "ntric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "HORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "l_meridian\",-123],PARAMETER[\"scale_factor\",0.9996],PA");
+        "entral_meridian\",96.875],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "9999387],PARAMETER[\"false_easting\",50000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26910\"]]");
-    p = add_epsg_def (filter, first, last, 26911, "epsg", 26911,
-        "NAD83 / UTM zone 11N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6723\"]]");
+    p = add_epsg_def (filter, first, last, 6732, "epsg", 6732,
+        "GDA94 / MGA zone 41");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=41 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 11N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 41\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PA");
+        "R[\"central_meridian\",63],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26911\"]]");
-    p = add_epsg_def (filter, first, last, 26912, "epsg", 26912,
-        "NAD83 / UTM zone 12N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6732\"]]");
+    p = add_epsg_def (filter, first, last, 6733, "epsg", 6733,
+        "GDA94 / MGA zone 42");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=42 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 12N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 42\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PA");
+        "R[\"central_meridian\",69],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26912\"]]");
-    p = add_epsg_def (filter, first, last, 26913, "epsg", 26913,
-        "NAD83 / UTM zone 13N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6733\"]]");
+    p = add_epsg_def (filter, first, last, 6734, "epsg", 6734,
+        "GDA94 / MGA zone 43");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=43 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 13N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 43\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PA");
+        "R[\"central_meridian\",75],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"26913\"]]");
-    p = add_epsg_def (filter, first, last, 26914, "epsg", 26914,
-        "NAD83 / UTM zone 14N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6734\"]]");
+    p = add_epsg_def (filter, first, last, 6735, "epsg", 6735,
+        "GDA94 / MGA zone 44");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=44 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 14N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 44\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "R[\"central_meridian\",81],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26914\"]]");
-    p = add_epsg_def (filter, first, last, 26915, "epsg", 26915,
-        "NAD83 / UTM zone 15N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6735\"]]");
+    p = add_epsg_def (filter, first, last, 6736, "epsg", 6736,
+        "GDA94 / MGA zone 46");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=46 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 15N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 46\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "R[\"central_meridian\",93],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26915\"]]");
-    p = add_epsg_def (filter, first, last, 26916, "epsg", 26916,
-        "NAD83 / UTM zone 16N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6736\"]]");
+    p = add_epsg_def (filter, first, last, 6737, "epsg", 6737,
+        "GDA94 / MGA zone 47");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=47 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 16N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 47\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "R[\"central_meridian\",99],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26916\"]]");
-    p = add_epsg_def (filter, first, last, 26917, "epsg", 26917,
-        "NAD83 / UTM zone 17N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6737\"]]");
+    p = add_epsg_def (filter, first, last, 6738, "epsg", 6738,
+        "GDA94 / MGA zone 59");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 17N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"GDA94 / MGA zone 59\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "R[\"central_meridian\",171],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26917\"]]");
-    p = add_epsg_def (filter, first, last, 26918, "epsg", 26918,
-        "NAD83 / UTM zone 18N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"6738\"]]");
+    p = add_epsg_def (filter, first, last, 6870, "epsg", 6870,
+        "ETRS89 / Albania 2010");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 18N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"ETRS89 / Albania 2010\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "],PARAMETER[\"central_meridian\",20],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
-    add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26918\"]]");
-    p = add_epsg_def (filter, first, last, 26919, "epsg", 26919,
-        "NAD83 / UTM zone 19N");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"6870\"]]");
+    p = add_epsg_def (filter, first, last, 6875, "epsg", 6875,
+        "RDN2008 / Italy zone");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9985000000000001 +x_");
+    add_proj4text (p, 1,
+        "0=7000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 19N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"RDN2008 / Italy zone\",GEOGCS[\"RDN2008\",DATUM");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "[\"Rete_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "UTHORITY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "l_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "central_meridian\",12],PARAMETER[\"scale_factor\",0.9985");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "],PARAMETER[\"false_easting\",7000000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
-    add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26919\"]]");
-    p = add_epsg_def (filter, first, last, 26920, "epsg", 26920,
-        "NAD83 / UTM zone 20N");
+        "1\"]],AUTHORITY[\"EPSG\",\"6875\"]]");
+    p = add_epsg_def (filter, first, last, 6876, "epsg", 6876,
+        "RDN2008 / Zone 12");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=3000000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 20N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"RDN2008 / Zone 12\",GEOGCS[\"RDN2008\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Rete_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ORITY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercat");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
     add_srs_wkt (p, 8,
-        "l_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "ntral_meridian\",12],PARAMETER[\"scale_factor\",1],PARAM");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "ETER[\"false_easting\",3000000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
-    add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26920\"]]");
-    p = add_epsg_def (filter, first, last, 26921, "epsg", 26921,
-        "NAD83 / UTM zone 21N");
+        "UTHORITY[\"EPSG\",\"6876\"]]");
+    p = add_epsg_def (filter, first, last, 20004, "epsg", 20004,
+        "Pulkovo 1995 / Gauss-Kruger zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+    add_proj4text (p, 2,
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 21N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 4\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",45000");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20004\"]");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26921\"]]");
-    p = add_epsg_def (filter, first, last, 26922, "epsg", 26922,
-        "NAD83 / UTM zone 22N");
+        "]");
+    p = add_epsg_def (filter, first, last, 20005, "epsg", 20005,
+        "Pulkovo 1995 / Gauss-Kruger zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+    add_proj4text (p, 2,
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 22N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 5\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",55000");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20005\"]");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26922\"]]");
-    p = add_epsg_def (filter, first, last, 26923, "epsg", 26923,
-        "NAD83 / UTM zone 23N");
+        "]");
+    p = add_epsg_def (filter, first, last, 20006, "epsg", 20006,
+        "Pulkovo 1995 / Gauss-Kruger zone 6");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +datum=NAD83 +units=m +no_defs");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+    add_proj4text (p, 2,
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / UTM zone 23N\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 6\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR");
+        "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",65000");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20006\"]");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"26923\"]]");
-    p = add_epsg_def (filter, first, last, 26929, "epsg", 26929,
-        "NAD83 / Alabama East");
+        "]");
+    p = add_epsg_def (filter, first, last, 20007, "epsg", 20007,
+        "Pulkovo 1995 / Gauss-Kruger zone 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "9996 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+    add_proj4text (p, 2,
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alabama East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 7\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"cen");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-85.83333333333333],PARAMETER[\"scale_fa");
+        "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET");
     add_srs_wkt (p, 9,
-        "ctor\",0.99996],PARAMETER[\"false_easting\",200000],PARA");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",75000");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20007\"]");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"26929\"]]");
-    p = add_epsg_def (filter, first, last, 26930, "epsg", 26930,
-        "NAD83 / Alabama West");
+        "]");
+    p = add_epsg_def (filter, first, last, 20008, "epsg", 20008,
+        "Pulkovo 1995 / Gauss-Kruger zone 8");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6");
+        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "00000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
+    add_proj4text (p, 2,
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alabama West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 8\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "al_meridian\",-87.5],PARAMETER[\"scale_factor\",0.999933");
+        "f_origin\",0],PARAMETER[\"central_meridian\",45],PARAMET");
     add_srs_wkt (p, 9,
-        "333],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",85000");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20008\"]");
     add_srs_wkt (p, 12,
-        "PSG\",\"26930\"]]");
-    p = add_epsg_def (filter, first, last, 26931, "epsg", 26931,
-        "NAD83 / Alaska zone 1");
+        "]");
+    p = add_epsg_def (filter, first, last, 20009, "epsg", 20009,
+        "Pulkovo 1995 / Gauss-Kruger zone 9");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32");
+        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ga");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "mma=323.1301023611111 +datum=NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 1\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 9\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "WGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_Oblique_Merc");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],PR");
     add_srs_wkt (p, 7,
-        "ator\"],PARAMETER[\"latitude_of_center\",57],PARAMETER[\"");
+        "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 8,
-        "longitude_of_center\",-133.6666666666667],PARAMETER[\"az");
+        "f_origin\",0],PARAMETER[\"central_meridian\",51],PARAMET");
     add_srs_wkt (p, 9,
-        "imuth\",323.1301023611111],PARAMETER[\"rectified_grid_an");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",95000");
     add_srs_wkt (p, 10,
-        "gle\",323.1301023611111],PARAMETER[\"scale_factor\",0.99");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "99],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal");
+        "HORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20009\"]");
     add_srs_wkt (p, 12,
-        "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
-    add_srs_wkt (p, 13,
-        "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
-    add_srs_wkt (p, 14,
-        "ITY[\"EPSG\",\"26931\"]]");
-    p = add_epsg_def (filter, first, last, 26932, "epsg", 26932,
-        "NAD83 / Alaska zone 2");
+        "]");
+    p = add_epsg_def (filter, first, last, 20010, "epsg", 20010,
+        "Pulkovo 1995 / Gauss-Kruger zone 10");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 2\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 10\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-142],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",57],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",105");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20010");
     add_srs_wkt (p, 12,
-        ",\"26932\"]]");
-    p = add_epsg_def (filter, first, last, 26933, "epsg", 26933,
-        "NAD83 / Alaska zone 3");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20011, "epsg", 20011,
+        "Pulkovo 1995 / Gauss-Kruger zone 11");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 3\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 11\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-146],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",63],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",115");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20011");
     add_srs_wkt (p, 12,
-        ",\"26933\"]]");
-    p = add_epsg_def (filter, first, last, 26934, "epsg", 26934,
-        "NAD83 / Alaska zone 4");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20012, "epsg", 20012,
+        "Pulkovo 1995 / Gauss-Kruger zone 12");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 4\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 12\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-150],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",69],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",125");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20012");
     add_srs_wkt (p, 12,
-        ",\"26934\"]]");
-    p = add_epsg_def (filter, first, last, 26935, "epsg", 26935,
-        "NAD83 / Alaska zone 5");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20013, "epsg", 20013,
+        "Pulkovo 1995 / Gauss-Kruger zone 13");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 5\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 13\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-154],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",135");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20013");
     add_srs_wkt (p, 12,
-        ",\"26935\"]]");
-    p = add_epsg_def (filter, first, last, 26936, "epsg", 26936,
-        "NAD83 / Alaska zone 6");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20014, "epsg", 20014,
+        "Pulkovo 1995 / Gauss-Kruger zone 14");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 6\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 14\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-158],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",145");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20014");
     add_srs_wkt (p, 12,
-        ",\"26936\"]]");
-    p = add_epsg_def (filter, first, last, 26937, "epsg", 26937,
-        "NAD83 / Alaska zone 7");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20015, "epsg", 20015,
+        "Pulkovo 1995 / Gauss-Kruger zone 15");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 7\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 15\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-162],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",155");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20015");
     add_srs_wkt (p, 12,
-        ",\"26937\"]]");
-    p = add_epsg_def (filter, first, last, 26938, "epsg", 26938,
-        "NAD83 / Alaska zone 8");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20016, "epsg", 20016,
+        "Pulkovo 1995 / Gauss-Kruger zone 16");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 8\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 16\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-166],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",165");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20016");
     add_srs_wkt (p, 12,
-        ",\"26938\"]]");
-    p = add_epsg_def (filter, first, last, 26939, "epsg", 26939,
-        "NAD83 / Alaska zone 9");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20017, "epsg", 20017,
+        "Pulkovo 1995 / Gauss-Kruger zone 17");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 ");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 9\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 17\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-170],PARAMETER[\"scale_factor\",0.9999]");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",175");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"20017");
     add_srs_wkt (p, 12,
-        ",\"26939\"]]");
-    p = add_epsg_def (filter, first, last, 26940, "epsg", 26940,
-        "NAD83 / Alaska zone 10");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 20018, "epsg", 20018,
+        "Pulkovo 1995 / Gauss-Kruger zone 18");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=");
     add_proj4text (p, 1,
-        "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +datum=NAD");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Alaska zone 10\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 18\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",53.83333");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333334],PARAMETER[\"standard_parallel_2\",51.83333333");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA");
     add_srs_wkt (p, 9,
-        "333334],PARAMETER[\"latitude_of_origin\",51],PARAMETER[\"");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18");
     add_srs_wkt (p, 10,
-        "central_meridian\",-176],PARAMETER[\"false_easting\",100");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2001");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
-    add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"26940\"]]");
-    p = add_epsg_def (filter, first, last, 26941, "epsg", 26941,
-        "NAD83 / California zone 1");
+        "8\"]]");
+    p = add_epsg_def (filter, first, last, 20019, "epsg", 20019,
+        "Pulkovo 1995 / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=");
     add_proj4text (p, 1,
-        "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +datu");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "m=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / California zone 1\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 19\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.66");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "666666666666],PARAMETER[\"standard_parallel_2\",40],PARA");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA");
     add_srs_wkt (p, 9,
-        "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19");
     add_srs_wkt (p, 10,
-        "R[\"central_meridian\",-122],PARAMETER[\"false_easting\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        ",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"me");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2001");
     add_srs_wkt (p, 12,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
-    add_srs_wkt (p, 13,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26941\"]]");
-    p = add_epsg_def (filter, first, last, 26942, "epsg", 26942,
-        "NAD83 / California zone 2");
+        "9\"]]");
+    p = add_epsg_def (filter, first, last, 20020, "epsg", 20020,
+        "Pulkovo 1995 / Gauss-Kruger zone 20");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=");
     add_proj4text (p, 1,
-        "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "_0=500000 +datum=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / California zone 2\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 20\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.83");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333333334],PARAMETER[\"standard_parallel_2\",38.33333");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA");
     add_srs_wkt (p, 9,
-        "333333334],PARAMETER[\"latitude_of_origin\",37.666666666");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20");
     add_srs_wkt (p, 10,
-        "66666],PARAMETER[\"central_meridian\",-122],PARAMETER[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "false_easting\",2000000],PARAMETER[\"false_northing\",50");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
-    add_srs_wkt (p, 13,
-        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269");
-    add_srs_wkt (p, 14,
-        "42\"]]");
-    p = add_epsg_def (filter, first, last, 26943, "epsg", 26943,
-        "NAD83 / California zone 3");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 20021, "epsg", 20021,
+        "Pulkovo 1995 / Gauss-Kruger zone 21");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=");
     add_proj4text (p, 1,
-        "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "datum=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / California zone 3\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 21\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333333333],PARAMETER[\"standard_parallel_2\",37.06666");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA");
     add_srs_wkt (p, 9,
-        "666666667],PARAMETER[\"latitude_of_origin\",36.5],PARAME");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT[");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
-    add_srs_wkt (p, 13,
-        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26943\"]]");
-    p = add_epsg_def (filter, first, last, 26944, "epsg", 26944,
-        "NAD83 / California zone 4");
+        "1\"]]");
+    p = add_epsg_def (filter, first, last, 20022, "epsg", 20022,
+        "Pulkovo 1995 / Gauss-Kruger zone 22");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=");
     add_proj4text (p, 1,
-        "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +datum=NAD83 +uni");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "ts=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / California zone 4\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 22\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.25");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"lati");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA");
     add_srs_wkt (p, 9,
-        "tude_of_origin\",35.33333333333334],PARAMETER[\"central_");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22");
     add_srs_wkt (p, 10,
-        "meridian\",-119],PARAMETER[\"false_easting\",2000000],PA");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTH");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
-    add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"26944\"]]");
-    p = add_epsg_def (filter, first, last, 26945, "epsg", 26945,
-        "NAD83 / California zone 5");
+        "2\"]]");
+    p = add_epsg_def (filter, first, last, 20023, "epsg", 20023,
+        "Pulkovo 1995 / Gauss-Kruger zone 23");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=");
     add_proj4text (p, 1,
-        "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +da");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "tum=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / California zone 5\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 23\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.46");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "666666666667],PARAMETER[\"standard_parallel_2\",34.03333");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA");
     add_srs_wkt (p, 9,
-        "333333333],PARAMETER[\"latitude_of_origin\",33.5],PARAME");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-118],PARAMETER[\"false_easting");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "\",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
-    add_srs_wkt (p, 13,
-        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26945\"]]");
-    p = add_epsg_def (filter, first, last, 26946, "epsg", 26946,
-        "NAD83 / California zone 6");
+        "3\"]]");
+    p = add_epsg_def (filter, first, last, 20024, "epsg", 20024,
+        "Pulkovo 1995 / Gauss-Kruger zone 24");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=");
     add_proj4text (p, 1,
-        "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        " +y_0=500000 +datum=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / California zone 6\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 24\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.88");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333333333],PARAMETER[\"standard_parallel_2\",32.78333");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",141],PARA");
     add_srs_wkt (p, 9,
-        "333333333],PARAMETER[\"latitude_of_origin\",32.166666666");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",24");
     add_srs_wkt (p, 10,
-        "66666],PARAMETER[\"central_meridian\",-116.25],PARAMETER");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "[\"false_easting\",2000000],PARAMETER[\"false_northing\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 13,
-        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 14,
-        "26946\"]]");
-    p = add_epsg_def (filter, first, last, 26948, "epsg", 26948,
-        "NAD83 / Arizona East");
+        "4\"]]");
+    p = add_epsg_def (filter, first, last, 20025, "epsg", 20025,
+        "Pulkovo 1995 / Gauss-Kruger zone 25");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=");
     add_proj4text (p, 1,
-        "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+    add_proj4text (p, 2,
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Arizona East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 25\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "al_meridian\",-110.1666666666667],PARAMETER[\"scale_fact");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",147],PARA");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",213360],PARAMET");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",25");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"26948\"]]");
-    p = add_epsg_def (filter, first, last, 26949, "epsg", 26949,
-        "NAD83 / Arizona Central");
+        "5\"]]");
+    p = add_epsg_def (filter, first, last, 20026, "epsg", 20026,
+        "Pulkovo 1995 / Gauss-Kruger zone 26");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=");
     add_proj4text (p, 1,
-        "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+    add_proj4text (p, 2,
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Arizona Central\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 26\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "central_meridian\",-111.9166666666667],PARAMETER[\"scale");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",153],PARA");
     add_srs_wkt (p, 9,
-        "_factor\",0.9999],PARAMETER[\"false_easting\",213360],PA");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",26");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"26949\"]]");
-    p = add_epsg_def (filter, first, last, 26950, "epsg", 26950,
-        "NAD83 / Arizona West");
+        "6\"]]");
+    p = add_epsg_def (filter, first, last, 20027, "epsg", 20027,
+        "Pulkovo 1995 / Gauss-Kruger zone 27");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0");
+        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=");
     add_proj4text (p, 1,
-        "=213360 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
+    add_proj4text (p, 2,
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Arizona West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 27\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "al_meridian\",-113.75],PARAMETER[\"scale_factor\",0.9999");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",159],PARA");
     add_srs_wkt (p, 9,
-        "33333],PARAMETER[\"false_easting\",213360],PARAMETER[\"f");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",27");
     add_srs_wkt (p, 10,
-        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "EPSG\",\"26950\"]]");
-    p = add_epsg_def (filter, first, last, 26951, "epsg", 26951,
-        "NAD83 / Arkansas North");
+        "7\"]]");
+    p = add_epsg_def (filter, first, last, 20028, "epsg", 20028,
+        "Pulkovo 1995 / Gauss-Kruger zone 28");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=");
     add_proj4text (p, 1,
-        "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "=0 +datum=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Arkansas North\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 28\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333333],PARAMETER[\"standard_parallel_2\",34.93333333");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",165],PARA");
     add_srs_wkt (p, 9,
-        "333333],PARAMETER[\"latitude_of_origin\",34.333333333333");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",28");
     add_srs_wkt (p, 10,
-        "34],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fals");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "e_easting\",400000],PARAMETER[\"false_northing\",0],UNIT");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
-    add_srs_wkt (p, 13,
-        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26951\"]]");
-    p = add_epsg_def (filter, first, last, 26952, "epsg", 26952,
-        "NAD83 / Arkansas South");
+        "8\"]]");
+    p = add_epsg_def (filter, first, last, 20029, "epsg", 20029,
+        "Pulkovo 1995 / Gauss-Kruger zone 29");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32");
+        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=");
     add_proj4text (p, 1,
-        ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +datu");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "m=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Arkansas South\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 29\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "666666667],PARAMETER[\"standard_parallel_2\",33.3],PARAM");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",171],PARA");
     add_srs_wkt (p, 9,
-        "ETER[\"latitude_of_origin\",32.66666666666666],PARAMETER");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",29");
     add_srs_wkt (p, 10,
-        "[\"central_meridian\",-92],PARAMETER[\"false_easting\",4");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2002");
     add_srs_wkt (p, 12,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
-    add_srs_wkt (p, 13,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26952\"]]");
-    p = add_epsg_def (filter, first, last, 26953, "epsg", 26953,
-        "NAD83 / Colorado North");
+        "9\"]]");
+    p = add_epsg_def (filter, first, last, 20030, "epsg", 20030,
+        "Pulkovo 1995 / Gauss-Kruger zone 30");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=");
     add_proj4text (p, 1,
-        "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8");
+        "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,");
     add_proj4text (p, 2,
-        "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs");
+        "-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Colorado North\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 30\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333333],PARAMETER[\"standard_parallel_2\",39.71666666");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",177],PARA");
     add_srs_wkt (p, 9,
-        "666667],PARAMETER[\"latitude_of_origin\",39.333333333333");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",30");
     add_srs_wkt (p, 10,
-        "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "alse_easting\",914401.8289],PARAMETER[\"false_northing\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2003");
     add_srs_wkt (p, 12,
-        ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
-    add_srs_wkt (p, 13,
-        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 14,
-        "\",\"26953\"]]");
-    p = add_epsg_def (filter, first, last, 26954, "epsg", 26954,
-        "NAD83 / Colorado Central");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 20031, "epsg", 20031,
+        "Pulkovo 1995 / Gauss-Kruger zone 31");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0");
     add_proj4text (p, 1,
-        "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +da");
+        "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13");
     add_proj4text (p, 2,
-        "tum=NAD83 +units=m +no_defs");
+        ",-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Colorado Central\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 31\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.75],");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\"lat");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR");
     add_srs_wkt (p, 9,
-        "itude_of_origin\",37.83333333333334],PARAMETER[\"central");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3");
     add_srs_wkt (p, 10,
-        "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8");
+        "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"200");
     add_srs_wkt (p, 12,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
-    add_srs_wkt (p, 13,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26954\"]]");
-    p = add_epsg_def (filter, first, last, 26955, "epsg", 26955,
-        "NAD83 / Colorado South");
+        "31\"]]");
+    p = add_epsg_def (filter, first, last, 20032, "epsg", 20032,
+        "Pulkovo 1995 / Gauss-Kruger zone 32");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0");
     add_proj4text (p, 1,
-        "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8");
+        "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13");
     add_proj4text (p, 2,
-        "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs");
+        ",-0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Colorado South\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 32\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "OWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4200\"]],");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "333333333],PARAMETER[\"standard_parallel_2\",37.23333333");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR");
     add_srs_wkt (p, 9,
-        "333333],PARAMETER[\"latitude_of_origin\",36.666666666666");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3");
     add_srs_wkt (p, 10,
-        "66],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f");
+        "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "alse_easting\",914401.8289],PARAMETER[\"false_northing\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"200");
     add_srs_wkt (p, 12,
-        ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
-    add_srs_wkt (p, 13,
-        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 14,
-        "\",\"26955\"]]");
-    p = add_epsg_def (filter, first, last, 26956, "epsg", 26956,
-        "NAD83 / Connecticut");
+        "32\"]]");
+    p = add_epsg_def (filter, first, last, 20064, "epsg", 20064,
+        "Pulkovo 1995 / Gauss-Kruger 4N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "00.3048 +datum=NAD83 +units=m +no_defs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Connecticut\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 4N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.86666666");
+        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "666667],PARAMETER[\"standard_parallel_2\",41.2],PARAMETE");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21");
     add_srs_wkt (p, 9,
-        "R[\"latitude_of_origin\",40.83333333333334],PARAMETER[\"");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "central_meridian\",-72.75],PARAMETER[\"false_easting\",3");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "04800.6096],PARAMETER[\"false_northing\",152400.3048],UN");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
-    add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26956\"]]");
-    p = add_epsg_def (filter, first, last, 26957, "epsg", 26957,
-        "NAD83 / Delaware");
+        "20064\"]]");
+    p = add_epsg_def (filter, first, last, 20065, "epsg", 20065,
+        "Pulkovo 1995 / Gauss-Kruger 5N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "995 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Delaware\",GEOGCS[\"NAD83\",DATUM[\"Nor");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 5N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2");
+        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi");
+        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"central");
+        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "_meridian\",-75.41666666666667],PARAMETER[\"scale_factor");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",27");
     add_srs_wkt (p, 9,
-        "\",0.999995],PARAMETER[\"false_easting\",200000],PARAMET");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"26957\"]]");
-    p = add_epsg_def (filter, first, last, 26958, "epsg", 26958,
-        "NAD83 / Florida East");
+        "20065\"]]");
+    p = add_epsg_def (filter, first, last, 20066, "epsg", 20066,
+        "Pulkovo 1995 / Gauss-Kruger 6N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Florida East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 6N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA");
+        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fact");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33");
     add_srs_wkt (p, 9,
-        "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"26958\"]]");
-    p = add_epsg_def (filter, first, last, 26959, "epsg", 26959,
-        "NAD83 / Florida West");
+        "20066\"]]");
+    p = add_epsg_def (filter, first, last, 20067, "epsg", 20067,
+        "Pulkovo 1995 / Gauss-Kruger 7N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Florida West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 7N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA");
+        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-82],PARAMETER[\"scale_fact");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",39");
     add_srs_wkt (p, 9,
-        "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"26959\"]]");
-    p = add_epsg_def (filter, first, last, 26960, "epsg", 26960,
-        "NAD83 / Florida North");
+        "20067\"]]");
+    p = add_epsg_def (filter, first, last, 20068, "epsg", 20068,
+        "Pulkovo 1995 / Gauss-Kruger 8N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2");
+        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m ");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "+no_defs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Florida North\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 8N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],PAR");
+        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",29.58333333333333],PARAME");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",45");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",29],PARAMETER[\"central_merid");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "ian\",-84.5],PARAMETER[\"false_easting\",600000],PARAMET");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
-    add_srs_wkt (p, 13,
-        "RITY[\"EPSG\",\"26960\"]]");
-    p = add_epsg_def (filter, first, last, 26961, "epsg", 26961,
-        "NAD83 / Hawaii zone 1");
+        "20068\"]]");
+    p = add_epsg_def (filter, first, last, 20069, "epsg", 20069,
+        "Pulkovo 1995 / Gauss-Kruger 9N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.");
+        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "999966667 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_d");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "efs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Hawaii zone 1\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 9N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "4\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],AUT");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",18.83333333333333],");
+        "00\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-155.5],PARAMETER[\"scale");
+        "atitude_of_origin\",0],PARAMETER[\"central_meridian\",51");
     add_srs_wkt (p, 9,
-        "_factor\",0.999966667],PARAMETER[\"false_easting\",50000");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "RTH],AUTHORITY[\"EPSG\",\"26961\"]]");
-    p = add_epsg_def (filter, first, last, 26962, "epsg", 26962,
-        "NAD83 / Hawaii zone 2");
+        "20069\"]]");
+    p = add_epsg_def (filter, first, last, 20070, "epsg", 20070,
+        "Pulkovo 1995 / Gauss-Kruger 10N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666");
+        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=500000 +y_0=0 +datum=NAD83 +u");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Hawaii zone 2\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 10N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",20.33333333333333],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-156.6666666666667],PARAM");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas");
+        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26962\"]]");
-    p = add_epsg_def (filter, first, last, 26963, "epsg", 26963,
-        "NAD83 / Hawaii zone 3");
+        "20070\"]]");
+    p = add_epsg_def (filter, first, last, 20071, "epsg", 20071,
+        "Pulkovo 1995 / Gauss-Kruger 11N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99");
+        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Hawaii zone 3\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 11N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",21.16666666666667],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
     add_srs_wkt (p, 9,
-        "actor\",0.99999],PARAMETER[\"false_easting\",500000],PAR");
+        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"26963\"]]");
-    p = add_epsg_def (filter, first, last, 26964, "epsg", 26964,
-        "NAD83 / Hawaii zone 4");
+        "20071\"]]");
+    p = add_epsg_def (filter, first, last, 20072, "epsg", 20072,
+        "Pulkovo 1995 / Gauss-Kruger 12N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.");
+        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "99999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Hawaii zone 4\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 12N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",21.83333333333333],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-159.5],PARAMETER[\"scale");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
     add_srs_wkt (p, 9,
-        "_factor\",0.99999],PARAMETER[\"false_easting\",500000],P");
+        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"26964\"]]");
-    p = add_epsg_def (filter, first, last, 26965, "epsg", 26965,
-        "NAD83 / Hawaii zone 5");
+        "20072\"]]");
+    p = add_epsg_def (filter, first, last, 20073, "epsg", 20073,
+        "Pulkovo 1995 / Gauss-Kruger 13N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "_defs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Hawaii zone 5\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 13N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",21.66666666666667],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-160.1666666666667],PARAM");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500");
+        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26965\"]]");
-    p = add_epsg_def (filter, first, last, 26966, "epsg", 26966,
-        "NAD83 / Georgia East");
+        "20073\"]]");
+    p = add_epsg_def (filter, first, last, 20074, "epsg", 20074,
+        "Pulkovo 1995 / Gauss-Kruger 14N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "9 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Georgia East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 14N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "al_meridian\",-82.16666666666667],PARAMETER[\"scale_fact");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
+        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"26966\"]]");
-    p = add_epsg_def (filter, first, last, 26967, "epsg", 26967,
-        "NAD83 / Georgia West");
+        "20074\"]]");
+    p = add_epsg_def (filter, first, last, 20075, "epsg", 20075,
+        "Pulkovo 1995 / Gauss-Kruger 15N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "9 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
+    add_proj4text (p, 2,
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Georgia West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 15N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "al_meridian\",-84.16666666666667],PARAMETER[\"scale_fact");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",700000],PARAMET");
+        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"26967\"]]");
-    p = add_epsg_def (filter, first, last, 26968, "epsg", 26968,
-        "NAD83 / Idaho East");
+        "20075\"]]");
+    p = add_epsg_def (filter, first, last, 20076, "epsg", 20076,
+        "Pulkovo 1995 / Gauss-Kruger 16N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +datum=N");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "AD83 +units=m +no_defs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Idaho East\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 16N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-112.1666666666667],PARAMET");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",0.999947368],PARAMETER[\"false_easti");
+        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "ng\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26968\"]]");
-    p = add_epsg_def (filter, first, last, 26969, "epsg", 26969,
-        "NAD83 / Idaho Central");
+        "20076\"]]");
+    p = add_epsg_def (filter, first, last, 20077, "epsg", 20077,
+        "Pulkovo 1995 / Gauss-Kruger 17N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "99473679999999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m ");
+        "ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.");
     add_proj4text (p, 2,
-        "+no_defs");
+        "22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Idaho Central\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 17N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",41.66666666666666],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
     add_srs_wkt (p, 9,
-        "actor\",0.999947368],PARAMETER[\"false_easting\",500000]");
+        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"26969\"]]");
-    p = add_epsg_def (filter, first, last, 26970, "epsg", 26970,
-        "NAD83 / Idaho West");
+        "20077\"]]");
+    p = add_epsg_def (filter, first, last, 20078, "epsg", 20078,
+        "Pulkovo 1995 / Gauss-Kruger 18N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ".999933333 +x_0=800000 +y_0=0 +datum=NAD83 +units=m +no_");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Idaho West\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 18N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.999933333],PARAMETER[\"false_easting\",800000");
+        "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"26970\"]]");
-    p = add_epsg_def (filter, first, last, 26971, "epsg", 26971,
-        "NAD83 / Illinois East");
+        "\"20078\"]]");
+    p = add_epsg_def (filter, first, last, 20079, "epsg", 20079,
+        "Pulkovo 1995 / Gauss-Kruger 19N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +datum=N");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "AD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Illinois East\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 19N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-88.33333333333333],PARAM");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",0.999975],PARAMETER[\"false_eastin");
+        "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "g\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26971\"]]");
-    p = add_epsg_def (filter, first, last, 26972, "epsg", 26972,
-        "NAD83 / Illinois West");
+        "\"20079\"]]");
+    p = add_epsg_def (filter, first, last, 20080, "epsg", 20080,
+        "Pulkovo 1995 / Gauss-Kruger 20N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "666667 +k=0.999941177 +x_0=700000 +y_0=0 +datum=NAD83 +u");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Illinois West\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 20N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-90.16666666666667],PARAM");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas");
+        "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "ting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26972\"]]");
-    p = add_epsg_def (filter, first, last, 26973, "epsg", 26973,
-        "NAD83 / Indiana East");
+        "\"20080\"]]");
+    p = add_epsg_def (filter, first, last, 20081, "epsg", 20081,
+        "Pulkovo 1995 / Gauss-Kruger 21N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "99966667 +x_0=100000 +y_0=250000 +datum=NAD83 +units=m +");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Indiana East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 21N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-85.66666666666667],PARAMETER[\"scale_fa");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "ctor\",0.999966667],PARAMETER[\"false_easting\",100000],");
+        "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26973\"]]");
-    p = add_epsg_def (filter, first, last, 26974, "epsg", 26974,
-        "NAD83 / Indiana West");
+        "\"20081\"]]");
+    p = add_epsg_def (filter, first, last, 20082, "epsg", 20082,
+        "Pulkovo 1995 / Gauss-Kruger 22N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "99966667 +x_0=900000 +y_0=250000 +datum=NAD83 +units=m +");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Indiana West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 22N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-87.08333333333333],PARAMETER[\"scale_fa");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "ctor\",0.999966667],PARAMETER[\"false_easting\",900000],");
+        "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26974\"]]");
-    p = add_epsg_def (filter, first, last, 26975, "epsg", 26975,
-        "NAD83 / Iowa North");
+        "\"20082\"]]");
+    p = add_epsg_def (filter, first, last, 20083, "epsg", 20083,
+        "Pulkovo 1995 / Gauss-Kruger 23N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "datum=NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Iowa North\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 23N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43.266666666");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "66667],PARAMETER[\"standard_parallel_2\",42.066666666666");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "67],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"c");
+        "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-93.5],PARAMETER[\"false_easting\",150");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
-    add_srs_wkt (p, 13,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26975\"]]");
-    p = add_epsg_def (filter, first, last, 26976, "epsg", 26976,
-        "NAD83 / Iowa South");
+        "\"20083\"]]");
+    p = add_epsg_def (filter, first, last, 20084, "epsg", 20084,
+        "Pulkovo 1995 / Gauss-Kruger 24N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +datum=NAD");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Iowa South\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 24N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "33333],PARAMETER[\"standard_parallel_2\",40.616666666666");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "67],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen");
+        "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "tral_meridian\",-93.5],PARAMETER[\"false_easting\",50000");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
-    add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"26976\"]]");
-    p = add_epsg_def (filter, first, last, 26977, "epsg", 26977,
-        "NAD83 / Kansas North");
+        "\"20084\"]]");
+    p = add_epsg_def (filter, first, last, 20085, "epsg", 20085,
+        "Pulkovo 1995 / Gauss-Kruger 25N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "=0 +datum=NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Kansas North\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 25N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",39.78333333");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "333333],PARAMETER[\"standard_parallel_2\",38.71666666666");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "667],PARAMETER[\"latitude_of_origin\",38.33333333333334]");
+        "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"central_meridian\",-98],PARAMETER[\"false_e");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "asting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
-    add_srs_wkt (p, 13,
-        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26977\"]]");
-    p = add_epsg_def (filter, first, last, 26978, "epsg", 26978,
-        "NAD83 / Kansas South");
+        "\"20085\"]]");
+    p = add_epsg_def (filter, first, last, 20086, "epsg", 20086,
+        "Pulkovo 1995 / Gauss-Kruger 26N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "_0=400000 +datum=NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Kansas South\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 26N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.56666666");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "666667],PARAMETER[\"standard_parallel_2\",37.26666666666");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "667],PARAMETER[\"latitude_of_origin\",36.66666666666666]");
+        "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "_easting\",400000],PARAMETER[\"false_northing\",400000],");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26978\"]]");
-    p = add_epsg_def (filter, first, last, 26979, "epsg", 26979,
-        "NAD83 / Kentucky North (deprecated)");
+        "\"20086\"]]");
+    p = add_epsg_def (filter, first, last, 20087, "epsg", 20087,
+        "Pulkovo 1995 / Gauss-Kruger 27N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +datum=");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Kentucky North (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 27N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "_1\",37.96666666666667],PARAMETER[\"standard_parallel_2\"");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        ",37.96666666666667],PARAMETER[\"latitude_of_origin\",37.");
+        "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"fa");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
-    add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26979\"]]");
-    p = add_epsg_def (filter, first, last, 26980, "epsg", 26980,
-        "NAD83 / Kentucky South");
+        "\"20087\"]]");
+    p = add_epsg_def (filter, first, last, 20088, "epsg", 20088,
+        "Pulkovo 1995 / Gauss-Kruger 28N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "y_0=500000 +datum=NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Kentucky South\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 28N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "333333333],PARAMETER[\"standard_parallel_2\",36.73333333");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "333333],PARAMETER[\"latitude_of_origin\",36.333333333333");
+        "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "alse_easting\",500000],PARAMETER[\"false_northing\",5000");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
-    add_srs_wkt (p, 13,
-        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26980");
-    add_srs_wkt (p, 14,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 26981, "epsg", 26981,
-        "NAD83 / Louisiana North");
+        "\"20088\"]]");
+    p = add_epsg_def (filter, first, last, 20089, "epsg", 20089,
+        "Pulkovo 1995 / Gauss-Kruger 29N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +datum=");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "NAD83 +units=m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Louisiana North\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 29N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "6666666666],PARAMETER[\"standard_parallel_2\",31.1666666");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "6666667],PARAMETER[\"latitude_of_origin\",30.5],PARAMETE");
+        "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "R[\"central_meridian\",-92.5],PARAMETER[\"false_easting\"");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        ",1000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26981\"]]");
-    p = add_epsg_def (filter, first, last, 26982, "epsg", 26982,
-        "NAD83 / Louisiana South");
+        "\"20089\"]]");
+    p = add_epsg_def (filter, first, last, 20090, "epsg", 20090,
+        "Pulkovo 1995 / Gauss-Kruger 30N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91");
+        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ".33333333333333 +x_0=1000000 +y_0=0 +datum=NAD83 +units=");
+        "+ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0");
     add_proj4text (p, 2,
-        "m +no_defs");
+        ".22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Louisiana South\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 30N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],P");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"latit");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "ude_of_origin\",28.5],PARAMETER[\"central_meridian\",-91");
+        "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        ".33333333333333],PARAMETER[\"false_easting\",1000000],PA");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 13,
-        "AUTHORITY[\"EPSG\",\"26982\"]]");
-    p = add_epsg_def (filter, first, last, 26983, "epsg", 26983,
-        "NAD83 / Maine East");
+        "\"20090\"]]");
+    p = add_epsg_def (filter, first, last, 20091, "epsg", 20091,
+        "Pulkovo 1995 / Gauss-Kruger 31N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
+        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0");
     add_proj4text (p, 1,
-        "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
+    add_proj4text (p, 2,
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maine East\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 31N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fa");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 9,
-        "ctor\",0.9999],PARAMETER[\"false_easting\",300000],PARAM");
+        "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"26983\"]]");
-    p = add_epsg_def (filter, first, last, 26984, "epsg", 26984,
-        "NAD83 / Maine West");
+        ",\"20091\"]]");
+    p = add_epsg_def (filter, first, last, 20092, "epsg", 20092,
+        "Pulkovo 1995 / Gauss-Kruger 32N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
+        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0");
     add_proj4text (p, 1,
-        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u");
+        " +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        "0.22 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maine West\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 32N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "024\"]],TOWGS84[24.47,-130.89,-81.56,-0,-0,0.13,-0.22],A");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "UTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA");
+        "4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-70.16666666666667],PARAMET");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 9,
-        "ER[\"scale_factor\",0.999966667],PARAMETER[\"false_easti");
+        "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ng\",900000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26984\"]]");
-    p = add_epsg_def (filter, first, last, 26985, "epsg", 26985,
-        "NAD83 / Maryland");
+        ",\"20092\"]]");
+    p = add_epsg_def (filter, first, last, 20135, "epsg", 20135,
+        "Adindan / UTM zone 35N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666");
+        "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-166,-15,204,0");
     add_proj4text (p, 1,
-        "666 +lon_0=-77 +x_0=400000 +y_0=0 +datum=NAD83 +units=m ");
-    add_proj4text (p, 2,
-        "+no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Maryland\",GEOGCS[\"NAD83\",DATUM[\"Nor");
+        "PROJCS[\"Adindan / UTM zone 35N\",GEOGCS[\"Adindan\",DAT");
     add_srs_wkt (p, 1,
-        "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2");
+        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
     add_srs_wkt (p, 2,
-        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
+        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi");
+        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic");
+        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAMET");
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_of");
+        "ral_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "_origin\",37.66666666666666],PARAMETER[\"central_meridia");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "n\",-77],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"26985\"]]");
-    p = add_epsg_def (filter, first, last, 26986, "epsg", 26986,
-        "NAD83 / Massachusetts Mainland");
+        "TY[\"EPSG\",\"20135\"]]");
+    p = add_epsg_def (filter, first, last, 20136, "epsg", 20136,
+        "Adindan / UTM zone 36N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666");
+        "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-166,-15,204,0");
     add_proj4text (p, 1,
-        "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +datu");
-    add_proj4text (p, 2,
-        "m=NAD83 +units=m +no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Massachusetts Mainland\",GEOGCS[\"NAD83");
+        "PROJCS[\"Adindan / UTM zone 36N\",GEOGCS[\"Adindan\",DAT");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
+        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
     add_srs_wkt (p, 2,
-        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
+        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
     add_srs_wkt (p, 3,
-        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
+        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co");
+        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "2.68333333333333],PARAMETER[\"standard_parallel_2\",41.7");
+        "ral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "1666666666667],PARAMETER[\"latitude_of_origin\",41],PARA");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "METER[\"central_meridian\",-71.5],PARAMETER[\"false_east");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "ing\",200000],PARAMETER[\"false_northing\",750000],UNIT[");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
-    add_srs_wkt (p, 13,
-        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26986\"]]");
-    p = add_epsg_def (filter, first, last, 26987, "epsg", 26987,
-        "NAD83 / Massachusetts Island");
+        "TY[\"EPSG\",\"20136\"]]");
+    p = add_epsg_def (filter, first, last, 20137, "epsg", 20137,
+        "Adindan / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333");
+        "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-166,-15,204,0");
     add_proj4text (p, 1,
-        "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +datum=NAD");
-    add_proj4text (p, 2,
-        "83 +units=m +no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Massachusetts Island\",GEOGCS[\"NAD83\"");
+        "PROJCS[\"Adindan / UTM zone 37N\",GEOGCS[\"Adindan\",DAT");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con");
+        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41");
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        ".48333333333333],PARAMETER[\"standard_parallel_2\",41.28");
+        "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "333333333333],PARAMETER[\"latitude_of_origin\",41],PARAM");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "ETER[\"central_meridian\",-70.5],PARAMETER[\"false_easti");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
-    add_srs_wkt (p, 13,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26987\"]]");
-    p = add_epsg_def (filter, first, last, 26988, "epsg", 26988,
-        "NAD83 / Michigan North");
+        "TY[\"EPSG\",\"20137\"]]");
+    p = add_epsg_def (filter, first, last, 20138, "epsg", 20138,
+        "Adindan / UTM zone 38N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333");
+        "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-166,-15,204,0");
     add_proj4text (p, 1,
-        "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_");
-    add_proj4text (p, 2,
-        "0=0 +datum=NAD83 +units=m +no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Michigan North\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"Adindan / UTM zone 38N\",GEOGCS[\"Adindan\",DAT");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "ITY[\"EPSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.08333");
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "333333334],PARAMETER[\"standard_parallel_2\",45.48333333");
+        "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "333333],PARAMETER[\"latitude_of_origin\",44.783333333333");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "33],PARAMETER[\"central_meridian\",-87],PARAMETER[\"fals");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "e_easting\",8000000],PARAMETER[\"false_northing\",0],UNI");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
-    add_srs_wkt (p, 13,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26988\"]]");
-    p = add_epsg_def (filter, first, last, 26989, "epsg", 26989,
-        "NAD83 / Michigan Central");
+        "TY[\"EPSG\",\"20138\"]]");
+    p = add_epsg_def (filter, first, last, 20248, "epsg", 20248,
+        "AGD66 / AMG zone 48 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43");
+        "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "y_0=0 +datum=NAD83 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Michigan Central\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"AGD66 / AMG zone 48 (deprecated)\",GEOGCS[\"AGD");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "66\",DATUM[\"Australian_Geodetic_Datum_1966\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "Australian National Spheroid\",6378160,298.25,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "\"EPSG\",\"7003\"]],TOWGS84[-117.808,-51.536,137.784,0.3");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "03,0.446,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIM");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],P");
+        "],AUTHORITY[\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"standard_parallel_2\",44.18333333333333],PARA");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 9,
-        "METER[\"latitude_of_origin\",43.31666666666667],PARAMETE");
+        "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 10,
-        "R[\"central_meridian\",-84.36666666666666],PARAMETER[\"f");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "alse_easting\",6000000],PARAMETER[\"false_northing\",0],");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26989\"]]");
-    p = add_epsg_def (filter, first, last, 26990, "epsg", 26990,
-        "NAD83 / Michigan South");
+        ",NORTH],AUTHORITY[\"EPSG\",\"20248\"]]");
+    p = add_epsg_def (filter, first, last, 20249, "epsg", 20249,
+        "AGD66 / AMG zone 49");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41");
+        "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +datum=");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "NAD83 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Michigan South\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"AGD66 / AMG zone 49\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.66666");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "666666666],PARAMETER[\"standard_parallel_2\",42.1],PARAM");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "ETER[\"latitude_of_origin\",41.5],PARAMETER[\"central_me");
+        "meridian\",111],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "ridian\",-84.36666666666666],PARAMETER[\"false_easting\"");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        ",4000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26990\"]]");
-    p = add_epsg_def (filter, first, last, 26991, "epsg", 26991,
-        "NAD83 / Minnesota North");
+        "HORITY[\"EPSG\",\"20249\"]]");
+    p = add_epsg_def (filter, first, last, 20250, "epsg", 20250,
+        "AGD66 / AMG zone 50");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
+        "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "_0=100000 +datum=NAD83 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota North\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"AGD66 / AMG zone 50\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "3333333333],PARAMETER[\"standard_parallel_2\",47.0333333");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "3333333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETE");
+        "meridian\",117],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "R[\"central_meridian\",-93.1],PARAMETER[\"false_easting\"");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        ",800000],PARAMETER[\"false_northing\",100000],UNIT[\"met");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 13,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26991\"]]");
-    p = add_epsg_def (filter, first, last, 26992, "epsg", 26992,
-        "NAD83 / Minnesota Central");
+        "HORITY[\"EPSG\",\"20250\"]]");
+    p = add_epsg_def (filter, first, last, 20251, "epsg", 20251,
+        "AGD66 / AMG zone 51");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
+        "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +datum=NAD83 +un");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "its=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota Central\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"AGD66 / AMG zone 51\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"standard_parallel_2\",45.61666666666667],P");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"latitude_of_origin\",45],PARAMETER[\"central_");
+        "meridian\",123],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "meridian\",-94.25],PARAMETER[\"false_easting\",800000],P");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUT");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 13,
-        "ORTH],AUTHORITY[\"EPSG\",\"26992\"]]");
-    p = add_epsg_def (filter, first, last, 26993, "epsg", 26993,
-        "NAD83 / Minnesota South");
+        "HORITY[\"EPSG\",\"20251\"]]");
+    p = add_epsg_def (filter, first, last, 20252, "epsg", 20252,
+        "AGD66 / AMG zone 52");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
+        "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +datum=");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "NAD83 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Minnesota South\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"AGD66 / AMG zone 52\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "6666666667],PARAMETER[\"standard_parallel_2\",43.7833333");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "3333333],PARAMETER[\"latitude_of_origin\",43],PARAMETER[");
+        "meridian\",129],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-94],PARAMETER[\"false_easting\",80");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",100000],UNIT[\"metre\"");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26993\"]]");
-    p = add_epsg_def (filter, first, last, 26994, "epsg", 26994,
-        "NAD83 / Mississippi East");
+        "HORITY[\"EPSG\",\"20252\"]]");
+    p = add_epsg_def (filter, first, last, 20253, "epsg", 20253,
+        "AGD66 / AMG zone 53");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9");
+        "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "9995 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Mississippi East\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"AGD66 / AMG zone 53\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER[");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",-88.83333333333333],PARAMETER[\"sca");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "le_factor\",0.99995],PARAMETER[\"false_easting\",300000]");
+        "meridian\",135],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"26994\"]]");
-    p = add_epsg_def (filter, first, last, 26995, "epsg", 26995,
-        "NAD83 / Mississippi West");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"20253\"]]");
+    p = add_epsg_def (filter, first, last, 20254, "epsg", 20254,
+        "AGD66 / AMG zone 54");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9");
+        "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "9995 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Mississippi West\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"AGD66 / AMG zone 54\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER[");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",-90.33333333333333],PARAMETER[\"sca");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "le_factor\",0.99995],PARAMETER[\"false_easting\",700000]");
+        "meridian\",141],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"26995\"]]");
-    p = add_epsg_def (filter, first, last, 26996, "epsg", 26996,
-        "NAD83 / Missouri East");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"20254\"]]");
+    p = add_epsg_def (filter, first, last, 20255, "epsg", 20255,
+        "AGD66 / AMG zone 55");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9");
+        "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "99933333 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_de");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "fs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Missouri East\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"AGD66 / AMG zone 55\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",35.83333333333334],");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-90.5],PARAMETER[\"scale_");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "factor\",0.999933333],PARAMETER[\"false_easting\",250000");
+        "meridian\",147],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"26996\"]]");
-    p = add_epsg_def (filter, first, last, 26997, "epsg", 26997,
-        "NAD83 / Missouri Central");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"20255\"]]");
+    p = add_epsg_def (filter, first, last, 20256, "epsg", 20256,
+        "AGD66 / AMG zone 56");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9");
+        "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "99933333 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_de");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "fs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Missouri Central\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"AGD66 / AMG zone 56\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",35.8333333333333");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "4],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"sca");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "le_factor\",0.999933333],PARAMETER[\"false_easting\",500");
+        "meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"26997\"]]");
-    p = add_epsg_def (filter, first, last, 26998, "epsg", 26998,
-        "NAD83 / Missouri West");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"20256\"]]");
+    p = add_epsg_def (filter, first, last, 20257, "epsg", 20257,
+        "AGD66 / AMG zone 57");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9");
+        "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "99941177 +x_0=850000 +y_0=0 +datum=NAD83 +units=m +no_de");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
     add_proj4text (p, 2,
-        "fs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Missouri West\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"AGD66 / AMG zone 57\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",36.16666666666666],");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-94.5],PARAMETER[\"scale_");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "factor\",0.999941177],PARAMETER[\"false_easting\",850000");
+        "meridian\",159],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"26998\"]]");
-    p = add_epsg_def (filter, first, last, 27037, "epsg", 27037,
-        "Nahrwan 1967 / UTM zone 37N");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"20257\"]]");
+    p = add_epsg_def (filter, first, last, 20258, "epsg", 20258,
+        "AGD66 / AMG zone 58");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-243,-192,477,");
+        "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-117.8");
     add_proj4text (p, 1,
-        "0,0,0,0 +units=m +no_defs");
+        "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nahrwan 1967 / UTM zone 37N\",GEOGCS[\"Nahrwan ");
+        "PROJCS[\"AGD66 / AMG zone 58\",GEOGCS[\"AGD66\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
+        "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\"");
+        "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 9,
-        "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET");
+        "meridian\",165],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"27037\"]]");
-    p = add_epsg_def (filter, first, last, 27038, "epsg", 27038,
-        "Nahrwan 1967 / UTM zone 38N");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"20258\"]]");
+    p = add_epsg_def (filter, first, last, 20348, "epsg", 20348,
+        "AGD84 / AMG zone 48 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-243,-192,477,");
+        "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "0,0,0,0 +units=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nahrwan 1967 / UTM zone 38N\",GEOGCS[\"Nahrwan ");
+        "PROJCS[\"AGD84 / AMG zone 48 (deprecated)\",GEOGCS[\"AGD");
     add_srs_wkt (p, 1,
-        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
+        "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
+        "Australian National Spheroid\",6378160,298.25,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\"");
+        "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran");
+        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact");
+        "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P");
     add_srs_wkt (p, 9,
-        "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET");
+        "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"27038\"]]");
-    p = add_epsg_def (filter, first, last, 27039, "epsg", 27039,
-        "Nahrwan 1967 / UTM zone 39N");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "20348\"]]");
+    p = add_epsg_def (filter, first, last, 20349, "epsg", 20349,
+        "AGD84 / AMG zone 49");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-243,-192,477,");
+        "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "0,0,0,0 +units=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nahrwan 1967 / UTM zone 39N\",GEOGCS[\"Nahrwan ");
+        "PROJCS[\"AGD84 / AMG zone 49\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\"");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact");
+        "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"27039\"]]");
-    p = add_epsg_def (filter, first, last, 27040, "epsg", 27040,
-        "Nahrwan 1967 / UTM zone 40N");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20349\"]]");
+    p = add_epsg_def (filter, first, last, 20350, "epsg", 20350,
+        "AGD84 / AMG zone 50");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-243,-192,477,");
+        "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "0,0,0,0 +units=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nahrwan 1967 / UTM zone 40N\",GEOGCS[\"Nahrwan ");
+        "PROJCS[\"AGD84 / AMG zone 50\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[-243,-192,477,0,0,0,0],AUTHORITY[\"EPSG\",\"6270\"");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact");
+        "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"27040\"]]");
-    p = add_epsg_def (filter, first, last, 27120, "epsg", 27120,
-        "Naparima 1972 / UTM zone 20N");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20350\"]]");
+    p = add_epsg_def (filter, first, last, 20351, "epsg", 20351,
+        "AGD84 / AMG zone 51");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=intl +towgs84=-10,375,165,0,0,");
+        "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "0,0 +units=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Naparima 1972 / UTM zone 20N\",GEOGCS[\"Naparim");
+        "PROJCS[\"AGD84 / AMG zone 51\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "a 1972\",DATUM[\"Naparima_1972\",SPHEROID[\"Internationa");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG\",\"6271\"]],PR");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4271\"]],PROJECTION[\"Transverse");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\",");
+        "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"27120\"]]");
-    p = add_epsg_def (filter, first, last, 27200, "epsg", 27200,
-        "NZGD49 / New Zealand Map Grid");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20351\"]]");
+    p = add_epsg_def (filter, first, last, 20352, "epsg", 20352,
+        "AGD84 / AMG zone 52");
     add_proj4text (p, 0,
-        "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=60231");
+        "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "50 +datum=nzgd49 +units=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / New Zealand Map Grid\",GEOGCS[\"NZGD49");
+        "PROJCS[\"AGD84 / AMG zone 52\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        ",\"4272\"]],PROJECTION[\"New_Zealand_Map_Grid\"],PARAMET");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ER[\"latitude_of_origin\",-41],PARAMETER[\"central_merid");
+        "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "ian\",173],PARAMETER[\"false_easting\",2510000],PARAMETE");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",6023150],UNIT[\"metre\",1,AUTHORITY");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"27200\"]]");
-    p = add_epsg_def (filter, first, last, 27205, "epsg", 27205,
-        "NZGD49 / Mount Eden Circuit");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20352\"]]");
+    p = add_epsg_def (filter, first, last, 20353, "epsg", 20353,
+        "AGD84 / AMG zone 53");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393");
+        "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "611111 +k=0.9999 +x_0=300000 +y_0=700000 +datum=nzgd49 +");
-    add_proj4text (p, 2,
-        "units=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Mount Eden Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"AGD84 / AMG zone 53\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-36.87986527777778],PARAMETER[\"");
+        "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "central_meridian\",174.7643393611111],PARAMETER[\"scale_");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHO");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "Easting\",EAST],AUTHORITY[\"EPSG\",\"27205\"]]");
-    p = add_epsg_def (filter, first, last, 27206, "epsg", 27206,
-        "NZGD49 / Bay of Plenty Circuit");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20353\"]]");
+    p = add_epsg_def (filter, first, last, 20354, "epsg", 20354,
+        "AGD84 / AMG zone 54");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.4661972");
+        "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n");
-    add_proj4text (p, 2,
-        "o_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Bay of Plenty Circuit\",GEOGCS[\"NZGD4");
+        "PROJCS[\"AGD84 / AMG zone 54\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "9\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",-37.76124980555556],PARAMETER[\"");
+        "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "central_meridian\",176.46619725],PARAMETER[\"scale_facto");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "G\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27206\"]]");
-    p = add_epsg_def (filter, first, last, 27207, "epsg", 27207,
-        "NZGD49 / Poverty Bay Circuit");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20354\"]]");
+    p = add_epsg_def (filter, first, last, 20355, "epsg", 20355,
+        "AGD84 / AMG zone 55");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362");
+        "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Poverty Bay Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"AGD84 / AMG zone 55\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-38.62470277777778],PARAMETER[\"");
+        "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "central_meridian\",177.8856362777778],PARAMETER[\"scale_");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East");
-    add_srs_wkt (p, 13,
-        "ing\",EAST],AUTHORITY[\"EPSG\",\"27207\"]]");
-    p = add_epsg_def (filter, first, last, 27208, "epsg", 27208,
-        "NZGD49 / Hawkes Bay Circuit");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20355\"]]");
+    p = add_epsg_def (filter, first, last, 20356, "epsg", 20356,
+        "AGD84 / AMG zone 56");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805");
+        "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "277778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Hawkes Bay Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"AGD84 / AMG zone 56\",GEOGCS[\"AGD84\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-39.65092930555556],PARAMETER[\"");
+        "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "central_meridian\",176.6736805277778],PARAMETER[\"scale_");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
+        "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East");
-    add_srs_wkt (p, 13,
-        "ing\",EAST],AUTHORITY[\"EPSG\",\"27208\"]]");
-    p = add_epsg_def (filter, first, last, 27209, "epsg", 27209,
-        "NZGD49 / Taranaki Circuit");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"20356\"]]");
+    p = add_epsg_def (filter, first, last, 20357, "epsg", 20357,
+        "AGD84 / AMG zone 57 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.2280117");
+        "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n");
-    add_proj4text (p, 2,
-        "o_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Taranaki Circuit\",GEOGCS[\"NZGD49\",D");
+        "PROJCS[\"AGD84 / AMG zone 57 (deprecated)\",GEOGCS[\"AGD");
     add_srs_wkt (p, 1,
-        "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte");
+        "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "Australian National Spheroid\",6378160,298.25,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-39.13575830555556],PARAMETER[\"cen");
+        "ude_of_origin\",0],PARAMETER[\"central_meridian\",159],P");
     add_srs_wkt (p, 9,
-        "tral_meridian\",174.22801175],PARAMETER[\"scale_factor\"");
+        "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals");
+        "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI");
     add_srs_wkt (p, 11,
-        "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 12,
-        ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 13,
-        "ST],AUTHORITY[\"EPSG\",\"27209\"]]");
-    p = add_epsg_def (filter, first, last, 27210, "epsg", 27210,
-        "NZGD49 / Tuhirangi Circuit");
+        "20357\"]]");
+    p = add_epsg_def (filter, first, last, 20358, "epsg", 20358,
+        "AGD84 / AMG zone 58 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368");
+        "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-134,-");
     add_proj4text (p, 1,
-        "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "48,149,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Tuhirangi Circuit\",GEOGCS[\"NZGD49\",");
+        "PROJCS[\"AGD84 / AMG zone 58 (deprecated)\",GEOGCS[\"AGD");
     add_srs_wkt (p, 1,
-        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
+        "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "Australian National Spheroid\",6378160,298.25,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4203\"");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-39.51247038888889],PARAMETER[\"cen");
+        "ude_of_origin\",0],PARAMETER[\"central_meridian\",165],P");
     add_srs_wkt (p, 9,
-        "tral_meridian\",175.6400368055556],PARAMETER[\"scale_fac");
+        "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27210\"]]");
-    p = add_epsg_def (filter, first, last, 27211, "epsg", 27211,
-        "NZGD49 / Wanganui Circuit");
+        "20358\"]]");
+    p = add_epsg_def (filter, first, last, 20436, "epsg", 20436,
+        "Ain el Abd / UTM zone 36N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996");
+        "+proj=utm +zone=36 +ellps=intl +towgs84=-143,-236,7,0,0,");
     add_proj4text (p, 1,
-        "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Wanganui Circuit\",GEOGCS[\"NZGD49\",D");
+        "PROJCS[\"Ain el Abd / UTM zone 36N\",GEOGCS[\"Ain el Abd");
     add_srs_wkt (p, 1,
-        "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte");
+        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
     add_srs_wkt (p, 2,
-        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-40.24194713888889],PARAMETER[\"cen");
+        "\"central_meridian\",33],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "tral_meridian\",175.4880996111111],PARAMETER[\"scale_fac");
+        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27211\"]]");
-    p = add_epsg_def (filter, first, last, 27212, "epsg", 27212,
-        "NZGD49 / Wairarapa Circuit");
+        "UTHORITY[\"EPSG\",\"20436\"]]");
+    p = add_epsg_def (filter, first, last, 20437, "epsg", 20437,
+        "Ain el Abd / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496");
+        "+proj=utm +zone=37 +ellps=intl +towgs84=-143,-236,7,0,0,");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Wairarapa Circuit\",GEOGCS[\"NZGD49\",");
+        "PROJCS[\"Ain el Abd / UTM zone 37N\",GEOGCS[\"Ain el Abd");
     add_srs_wkt (p, 1,
-        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
+        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
     add_srs_wkt (p, 2,
-        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-40.92553263888889],PARAMETER[\"cen");
+        "\"central_meridian\",39],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "tral_meridian\",175.6473496666667],PARAMETER[\"scale_fac");
+        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27212\"]]");
+        "UTHORITY[\"EPSG\",\"20437\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_33.c b/src/srsinit/epsg_inlined_33.c
index 2f35125..320ccf8 100644
--- a/src/srsinit/epsg_inlined_33.c
+++ b/src/srsinit/epsg_inlined_33.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3562 +52,3278 @@ initialize_epsg_33 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 27213, "epsg", 27213,
-        "NZGD49 / Wellington Circuit");
+    p = add_epsg_def (filter, first, last, 20438, "epsg", 20438,
+        "Ain el Abd / UTM zone 38N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231");
+        "+proj=utm +zone=38 +ellps=intl +towgs84=-143,-236,7,0,0,");
     add_proj4text (p, 1,
-        "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Wellington Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"Ain el Abd / UTM zone 38N\",GEOGCS[\"Ain el Abd");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-41.30131963888888],PARAMETER[\"");
+        "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "central_meridian\",174.7766231111111],PARAMETER[\"scale_");
+        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East");
-    add_srs_wkt (p, 13,
-        "ing\",EAST],AUTHORITY[\"EPSG\",\"27213\"]]");
-    p = add_epsg_def (filter, first, last, 27214, "epsg", 27214,
-        "NZGD49 / Collingwood Circuit");
+        "UTHORITY[\"EPSG\",\"20438\"]]");
+    p = add_epsg_def (filter, first, last, 20439, "epsg", 20439,
+        "Ain el Abd / UTM zone 39N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465");
+        "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,");
     add_proj4text (p, 1,
-        " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no");
-    add_proj4text (p, 2,
-        "_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Collingwood Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"Ain el Abd / UTM zone 39N\",GEOGCS[\"Ain el Abd");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-40.71475905555556],PARAMETER[\"");
+        "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "central_meridian\",172.6720465],PARAMETER[\"scale_factor");
+        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 13,
-        "EAST],AUTHORITY[\"EPSG\",\"27214\"]]");
-    p = add_epsg_def (filter, first, last, 27215, "epsg", 27215,
-        "NZGD49 / Nelson Circuit");
+        "UTHORITY[\"EPSG\",\"20439\"]]");
+    p = add_epsg_def (filter, first, last, 20440, "epsg", 20440,
+        "Ain el Abd / UTM zone 40N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168");
+        "+proj=utm +zone=40 +ellps=intl +towgs84=-143,-236,7,0,0,");
     add_proj4text (p, 1,
-        "055555 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Nelson Circuit\",GEOGCS[\"NZGD49\",DAT");
+        "PROJCS[\"Ain el Abd / UTM zone 40N\",GEOGCS[\"Ain el Abd");
     add_srs_wkt (p, 1,
-        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
+        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
     add_srs_wkt (p, 2,
-        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
+        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",-41.27454472222222],PARAMETER[\"cent");
+        "\"central_meridian\",57],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "ral_meridian\",173.2993168055555],PARAMETER[\"scale_fact");
+        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27215\"]]");
-    p = add_epsg_def (filter, first, last, 27216, "epsg", 27216,
-        "NZGD49 / Karamea Circuit");
+        "UTHORITY[\"EPSG\",\"20440\"]]");
+    p = add_epsg_def (filter, first, last, 20499, "epsg", 20499,
+        "Ain el Abd / Bahrain Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281");
+        "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,");
     add_proj4text (p, 1,
-        "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Karamea Circuit\",GEOGCS[\"NZGD49\",DA");
+        "PROJCS[\"Ain el Abd / Bahrain Grid\",GEOGCS[\"Ain el Abd");
     add_srs_wkt (p, 1,
-        "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter");
+        "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19");
     add_srs_wkt (p, 2,
-        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU");
+        "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "AUTHORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-41.28991152777778],PARAMETER[\"cen");
+        "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "tral_meridian\",172.1090281944444],PARAMETER[\"scale_fac");
+        "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27216\"]]");
-    p = add_epsg_def (filter, first, last, 27217, "epsg", 27217,
-        "NZGD49 / Buller Circuit");
+        "UTHORITY[\"EPSG\",\"20499\"]]");
+    p = add_epsg_def (filter, first, last, 20538, "epsg", 20538,
+        "Afgooye / UTM zone 38N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600");
+        "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0");
     add_proj4text (p, 1,
-        "555556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Buller Circuit\",GEOGCS[\"NZGD49\",DAT");
+        "PROJCS[\"Afgooye / UTM zone 38N\",GEOGCS[\"Afgooye\",DAT");
     add_srs_wkt (p, 1,
-        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
+        "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298.");
     add_srs_wkt (p, 2,
-        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
+        "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
+        "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
     add_srs_wkt (p, 7,
-        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",-41.81080286111111],PARAMETER[\"cent");
+        "ian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "ral_meridian\",171.5812600555556],PARAMETER[\"scale_fact");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27217\"]]");
-    p = add_epsg_def (filter, first, last, 27218, "epsg", 27218,
-        "NZGD49 / Grey Circuit");
+        ",\"20538\"]]");
+    p = add_epsg_def (filter, first, last, 20539, "epsg", 20539,
+        "Afgooye / UTM zone 39N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713");
+        "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0");
     add_proj4text (p, 1,
-        "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Grey Circuit\",GEOGCS[\"NZGD49\",DATUM");
+        "PROJCS[\"Afgooye / UTM zone 39N\",GEOGCS[\"Afgooye\",DAT");
     add_srs_wkt (p, 1,
-        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
+        "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298.");
     add_srs_wkt (p, 2,
-        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
+        "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,");
     add_srs_wkt (p, 3,
-        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
+        "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
+        "G\",\"4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",-42.33369427777778],PARAMETER[\"centra");
+        "ian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "l_meridian\",171.5497713055556],PARAMETER[\"scale_factor");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
     add_srs_wkt (p, 11,
-        "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 13,
-        "EAST],AUTHORITY[\"EPSG\",\"27218\"]]");
-    p = add_epsg_def (filter, first, last, 27219, "epsg", 27219,
-        "NZGD49 / Amuri Circuit");
+        ",\"20539\"]]");
+    p = add_epsg_def (filter, first, last, 20790, "epsg", 20790,
+        "Lisbon (Lisbon) / Portuguese National Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333");
+        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=");
     add_proj4text (p, 1,
-        "888889 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+        "200000 +y_0=300000 +ellps=intl +towgs84=-304.046,-60.576");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        ",103.64,0,0,0,0 +pm=lisbon +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Amuri Circuit\",GEOGCS[\"NZGD49\",DATU");
+        "PROJCS[\"Lisbon (Lisbon) / Portuguese National Grid\",GE");
     add_srs_wkt (p, 1,
-        "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna");
+        "OGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SP");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH");
+        "SG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0]");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        ",AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "06111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 7,
-        "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la");
+        "ITY[\"EPSG\",\"4803\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 8,
-        "titude_of_origin\",-42.68911658333333],PARAMETER[\"centr");
+        "\"],PARAMETER[\"latitude_of_origin\",39.66666666666666],");
     add_srs_wkt (p, 9,
-        "al_meridian\",173.0101333888889],PARAMETER[\"scale_facto");
+        "PARAMETER[\"central_meridian\",1],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
+        "or\",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "G\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27219\"]]");
-    p = add_epsg_def (filter, first, last, 27220, "epsg", 27220,
-        "NZGD49 / Marlborough Circuit");
+        "RITY[\"EPSG\",\"20790\"]]");
+    p = add_epsg_def (filter, first, last, 20791, "epsg", 20791,
+        "Lisbon (Lisbon) / Portuguese Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741");
+        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=");
     add_proj4text (p, 1,
-        "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+        "0 +y_0=0 +ellps=intl +towgs84=-304.046,-60.576,103.64,0,");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        "0,0,0 +pm=lisbon +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Marlborough Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"Lisbon (Lisbon) / Portuguese Grid\",GEOGCS[\"Li");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "sbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "22\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        "Y[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319061111111");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "12,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "SG\",\"4803\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-41.54448666666666],PARAMETER[\"");
+        "METER[\"latitude_of_origin\",39.66666666666666],PARAMETE");
     add_srs_wkt (p, 9,
-        "central_meridian\",173.8020741111111],PARAMETER[\"scale_");
+        "R[\"central_meridian\",1],PARAMETER[\"scale_factor\",1],");
     add_srs_wkt (p, 10,
-        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
+        "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East");
+        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"20");
     add_srs_wkt (p, 13,
-        "ing\",EAST],AUTHORITY[\"EPSG\",\"27220\"]]");
-    p = add_epsg_def (filter, first, last, 27221, "epsg", 27221,
-        "NZGD49 / Hokitika Circuit");
+        "791\"]]");
+    p = add_epsg_def (filter, first, last, 20822, "epsg", 20822,
+        "Aratu / UTM zone 22S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935");
+        "+proj=utm +zone=22 +south +ellps=intl +towgs84=-151.99,2");
     add_proj4text (p, 1,
-        " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no");
-    add_proj4text (p, 2,
-        "_defs");
+        "87.04,-147.45,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Hokitika Circuit\",GEOGCS[\"NZGD49\",D");
+        "PROJCS[\"Aratu / UTM zone 22S\",GEOGCS[\"Aratu\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte");
+        "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH");
     add_srs_wkt (p, 2,
-        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-42.88632236111111],PARAMETER[\"cen");
+        "meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "tral_meridian\",170.9799935],PARAMETER[\"scale_factor\",");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS");
-    add_srs_wkt (p, 13,
-        "T],AUTHORITY[\"EPSG\",\"27221\"]]");
-    p = add_epsg_def (filter, first, last, 27222, "epsg", 27222,
-        "NZGD49 / Okarito Circuit");
+        "HORITY[\"EPSG\",\"20822\"]]");
+    p = add_epsg_def (filter, first, last, 20823, "epsg", 20823,
+        "Aratu / UTM zone 23S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258");
+        "+proj=utm +zone=23 +south +ellps=intl +towgs84=-151.99,2");
     add_proj4text (p, 1,
-        "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "87.04,-147.45,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Okarito Circuit\",GEOGCS[\"NZGD49\",DA");
+        "PROJCS[\"Aratu / UTM zone 23S\",GEOGCS[\"Aratu\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter");
+        "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH");
     add_srs_wkt (p, 2,
-        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
+        "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45");
     add_srs_wkt (p, 3,
-        "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-43.11012813888889],PARAMETER[\"cen");
+        "meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "tral_meridian\",170.2609258333333],PARAMETER[\"scale_fac");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27222\"]]");
-    p = add_epsg_def (filter, first, last, 27223, "epsg", 27223,
-        "NZGD49 / Jacksons Bay Circuit");
+        "HORITY[\"EPSG\",\"20823\"]]");
+    p = add_epsg_def (filter, first, last, 20824, "epsg", 20824,
+        "Aratu / UTM zone 24S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 ");
+        "+proj=utm +zone=24 +south +ellps=intl +towgs84=-151.99,2");
     add_proj4text (p, 1,
-        "+k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no_");
-    add_proj4text (p, 2,
-        "defs");
+        "87.04,-147.45,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Jacksons Bay Circuit\",GEOGCS[\"NZGD49");
+        "PROJCS[\"Aratu / UTM zone 24S\",GEOGCS[\"Aratu\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
+        "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "\"EPSG\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",-43.97780288888889],PARAMETER[\"");
+        "meridian\",-39],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "central_meridian\",168.606267],PARAMETER[\"scale_factor\"");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA");
-    add_srs_wkt (p, 13,
-        "ST],AUTHORITY[\"EPSG\",\"27223\"]]");
-    p = add_epsg_def (filter, first, last, 27224, "epsg", 27224,
-        "NZGD49 / Mount Pleasant Circuit");
+        "HORITY[\"EPSG\",\"20824\"]]");
+    p = add_epsg_def (filter, first, last, 20934, "epsg", 20934,
+        "Arc 1950 / UTM zone 34S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935");
+        "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663");
     add_proj4text (p, 1,
-        "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Mount Pleasant Circuit\",GEOGCS[\"NZGD");
+        "PROJCS[\"Arc 1950 / UTM zone 34S\",GEOGCS[\"Arc 1950\",D");
     add_srs_wkt (p, 1,
-        "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[");
+        "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249");
     add_srs_wkt (p, 2,
-        "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
+        ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5");
+        "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM");
     add_srs_wkt (p, 4,
-        "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",-43.59063758333333],PARAMETE");
+        "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "R[\"central_meridian\",172.7271935833333],PARAMETER[\"sc");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "Easting\",EAST],AUTHORITY[\"EPSG\",\"27224\"]]");
-    p = add_epsg_def (filter, first, last, 27225, "epsg", 27225,
-        "NZGD49 / Gawler Circuit");
+        ",NORTH],AUTHORITY[\"EPSG\",\"20934\"]]");
+    p = add_epsg_def (filter, first, last, 20935, "epsg", 20935,
+        "Arc 1950 / UTM zone 35S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484");
+        "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663");
     add_proj4text (p, 1,
-        "722222 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Gawler Circuit\",GEOGCS[\"NZGD49\",DAT");
+        "PROJCS[\"Arc 1950 / UTM zone 35S\",GEOGCS[\"Arc 1950\",D");
     add_srs_wkt (p, 1,
-        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
+        "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249");
     add_srs_wkt (p, 2,
-        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
+        ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
+        "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",-43.74871155555556],PARAMETER[\"cent");
+        "R[\"central_meridian\",27],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "ral_meridian\",171.3607484722222],PARAMETER[\"scale_fact");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27225\"]]");
-    p = add_epsg_def (filter, first, last, 27226, "epsg", 27226,
-        "NZGD49 / Timaru Circuit");
+        ",NORTH],AUTHORITY[\"EPSG\",\"20935\"]]");
+    p = add_epsg_def (filter, first, last, 20936, "epsg", 20936,
+        "Arc 1950 / UTM zone 36S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508");
+        "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663");
     add_proj4text (p, 1,
-        "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Timaru Circuit\",GEOGCS[\"NZGD49\",DAT");
+        "PROJCS[\"Arc 1950 / UTM zone 36S\",GEOGCS[\"Arc 1950\",D");
     add_srs_wkt (p, 1,
-        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
+        "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249");
     add_srs_wkt (p, 2,
-        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
+        ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-");
     add_srs_wkt (p, 3,
-        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
+        "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "],AUTHORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",-44.40222036111111],PARAMETER[\"cent");
+        "R[\"central_meridian\",33],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "ral_meridian\",171.0572508333333],PARAMETER[\"scale_fact");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AUTHORITY[\"EPSG\",\"27226\"]]");
-    p = add_epsg_def (filter, first, last, 27227, "epsg", 27227,
-        "NZGD49 / Lindis Peak Circuit");
+        ",NORTH],AUTHORITY[\"EPSG\",\"20936\"]]");
+    p = add_epsg_def (filter, first, last, 21035, "epsg", 21035,
+        "Arc 1960 / UTM zone 35S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550");
+        "+proj=utm +zone=35 +south +ellps=clrk80 +towgs84=-160,-6");
     add_proj4text (p, 1,
-        "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ",-302,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Lindis Peak Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"Arc 1960 / UTM zone 35S\",GEOGCS[\"Arc 1960\",D");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-44.73526797222222],PARAMETER[\"");
+        "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "central_meridian\",169.4677550833333],PARAMETER[\"scale_");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
+        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East");
-    add_srs_wkt (p, 13,
-        "ing\",EAST],AUTHORITY[\"EPSG\",\"27227\"]]");
-    p = add_epsg_def (filter, first, last, 27228, "epsg", 27228,
-        "NZGD49 / Mount Nicholas Circuit");
+        "H],AUTHORITY[\"EPSG\",\"21035\"]]");
+    p = add_epsg_def (filter, first, last, 21036, "epsg", 21036,
+        "Arc 1960 / UTM zone 36S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411");
+        "+proj=utm +zone=36 +south +ellps=clrk80 +towgs84=-160,-6");
     add_proj4text (p, 1,
-        "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ",-302,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Mount Nicholas Circuit\",GEOGCS[\"NZGD");
+        "PROJCS[\"Arc 1960 / UTM zone 36S\",GEOGCS[\"Arc 1960\",D");
     add_srs_wkt (p, 1,
-        "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[");
+        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
     add_srs_wkt (p, 3,
-        "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5");
+        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",-45.13290258333333],PARAMETE");
+        "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "R[\"central_meridian\",168.3986411944444],PARAMETER[\"sc");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA");
+        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "Easting\",EAST],AUTHORITY[\"EPSG\",\"27228\"]]");
-    p = add_epsg_def (filter, first, last, 27229, "epsg", 27229,
-        "NZGD49 / Mount York Circuit");
+        "H],AUTHORITY[\"EPSG\",\"21036\"]]");
+    p = add_epsg_def (filter, first, last, 21037, "epsg", 21037,
+        "Arc 1960 / UTM zone 37S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617");
+        "+proj=utm +zone=37 +south +ellps=clrk80 +towgs84=-160,-6");
     add_proj4text (p, 1,
-        "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ",-302,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Mount York Circuit\",GEOGCS[\"NZGD49\"");
+        "PROJCS[\"Arc 1960 / UTM zone 37S\",GEOGCS[\"Arc 1960\",D");
     add_srs_wkt (p, 1,
-        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
+        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
+        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",-45.56372616666666],PARAMETER[\"");
+        "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "central_meridian\",167.7388617777778],PARAMETER[\"scale_");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
+        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East");
-    add_srs_wkt (p, 13,
-        "ing\",EAST],AUTHORITY[\"EPSG\",\"27229\"]]");
-    p = add_epsg_def (filter, first, last, 27230, "epsg", 27230,
-        "NZGD49 / Observation Point Circuit");
+        "H],AUTHORITY[\"EPSG\",\"21037\"]]");
+    p = add_epsg_def (filter, first, last, 21095, "epsg", 21095,
+        "Arc 1960 / UTM zone 35N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951");
+        "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-160,-6,-302,0");
     add_proj4text (p, 1,
-        "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
-    add_proj4text (p, 2,
-        "=m +no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Observation Point Circuit\",GEOGCS[\"N");
+        "PROJCS[\"Arc 1960 / UTM zone 35N\",GEOGCS[\"Arc 1960\",D");
     add_srs_wkt (p, 1,
-        "ZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHERO");
+        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\"");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
     add_srs_wkt (p, 3,
-        ",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-");
+        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_origin\",-45.81619661111111],PARAM");
+        "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "ETER[\"central_meridian\",170.6285951666667],PARAMETER[\"");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "scale_factor\",1],PARAMETER[\"false_easting\",300000],PA");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[");
-    add_srs_wkt (p, 13,
-        "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"27230\"]]");
-    p = add_epsg_def (filter, first, last, 27231, "epsg", 27231,
-        "NZGD49 / North Taieri Circuit");
+        "RITY[\"EPSG\",\"21095\"]]");
+    p = add_epsg_def (filter, first, last, 21096, "epsg", 21096,
+        "Arc 1960 / UTM zone 36N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891");
+        "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-160,-6,-302,0");
     add_proj4text (p, 1,
-        "111111 +k=0.99996 +x_0=300000 +y_0=700000 +datum=nzgd49 ");
-    add_proj4text (p, 2,
-        "+units=m +no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / North Taieri Circuit\",GEOGCS[\"NZGD49");
+        "PROJCS[\"Arc 1960 / UTM zone 36N\",GEOGCS[\"Arc 1960\",D");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
+        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
+        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",-45.86151336111111],PARAMETER[\"");
+        "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "central_meridian\",170.2825891111111],PARAMETER[\"scale_");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "factor\",0.99996],PARAMETER[\"false_easting\",300000],PA");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[");
-    add_srs_wkt (p, 13,
-        "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"27231\"]]");
-    p = add_epsg_def (filter, first, last, 27232, "epsg", 27232,
-        "NZGD49 / Bluff Circuit");
+        "RITY[\"EPSG\",\"21096\"]]");
+    p = add_epsg_def (filter, first, last, 21097, "epsg", 21097,
+        "Arc 1960 / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 ");
+        "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-160,-6,-302,0");
     add_proj4text (p, 1,
-        "+k=1 +x_0=300002.66 +y_0=699999.58 +datum=nzgd49 +units=");
-    add_proj4text (p, 2,
-        "m +no_defs");
+        ",0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / Bluff Circuit\",GEOGCS[\"NZGD49\",DATU");
+        "PROJCS[\"Arc 1960 / UTM zone 37N\",GEOGCS[\"Arc 1960\",D");
     add_srs_wkt (p, 1,
-        "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna");
+        "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,");
     add_srs_wkt (p, 3,
-        "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH");
+        "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427");
+        "HORITY[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "titude_of_origin\",-46.60000961111111],PARAMETER[\"centr");
+        "entral_meridian\",39],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "al_meridian\",168.342872],PARAMETER[\"scale_factor\",1],");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",300002.66],PARAMETER[\"false");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "_northing\",699999.58],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",");
-    add_srs_wkt (p, 13,
-        "EAST],AUTHORITY[\"EPSG\",\"27232\"]]");
-    p = add_epsg_def (filter, first, last, 27258, "epsg", 27258,
-        "NZGD49 / UTM zone 58S");
+        "RITY[\"EPSG\",\"21097\"]]");
+    p = add_epsg_def (filter, first, last, 21100, "epsg", 21100,
+        "Batavia (Jakarta) / NEIEZ (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +south +datum=nzgd49 +units=m +no_def");
+        "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 ");
     add_proj4text (p, 1,
-        "s");
+        "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +pm=jakarta ");
+    add_proj4text (p, 2,
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / UTM zone 58S\",GEOGCS[\"NZGD49\",DATUM");
+        "PROJCS[\"Batavia (Jakarta) / NEIEZ (deprecated)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
+        "[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",SPHEROI");
     add_srs_wkt (p, 2,
-        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
+        "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
+        "SG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194444444");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        ",AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "\",\"4813\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]");
+        "entral_meridian\",110],PARAMETER[\"scale_factor\",0.997]");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
+        ",PARAMETER[\"false_easting\",3900000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
+        "northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"27258\"]]");
-    p = add_epsg_def (filter, first, last, 27259, "epsg", 27259,
-        "NZGD49 / UTM zone 59S");
+        "EPSG\",\"21100\"]]");
+    p = add_epsg_def (filter, first, last, 21148, "epsg", 21148,
+        "Batavia / UTM zone 48S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=59 +south +datum=nzgd49 +units=m +no_def");
+        "+proj=utm +zone=48 +south +ellps=bessel +towgs84=-377,68");
     add_proj4text (p, 1,
-        "s");
+        "1,-50,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / UTM zone 59S\",GEOGCS[\"NZGD49\",DATUM");
+        "PROJCS[\"Batavia / UTM zone 48S\",GEOGCS[\"Batavia\",DAT");
     add_srs_wkt (p, 1,
-        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
+        "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
     add_srs_wkt (p, 2,
-        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
+        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-");
     add_srs_wkt (p, 3,
-        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
+        "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
+        "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]");
+        "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"27259\"]]");
-    p = add_epsg_def (filter, first, last, 27260, "epsg", 27260,
-        "NZGD49 / UTM zone 60S");
+        "UTHORITY[\"EPSG\",\"21148\"]]");
+    p = add_epsg_def (filter, first, last, 21149, "epsg", 21149,
+        "Batavia / UTM zone 49S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=60 +south +datum=nzgd49 +units=m +no_def");
+        "+proj=utm +zone=49 +south +ellps=bessel +towgs84=-377,68");
     add_proj4text (p, 1,
-        "s");
+        "1,-50,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / UTM zone 60S\",GEOGCS[\"NZGD49\",DATUM");
+        "PROJCS[\"Batavia / UTM zone 49S\",GEOGCS[\"Batavia\",DAT");
     add_srs_wkt (p, 1,
-        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
+        "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
     add_srs_wkt (p, 2,
-        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
+        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-");
     add_srs_wkt (p, 3,
-        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
+        "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
+        "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]");
+        "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"27260\"]]");
-    p = add_epsg_def (filter, first, last, 27291, "epsg", 27291,
-        "NZGD49 / North Island Grid");
+        "UTHORITY[\"EPSG\",\"21149\"]]");
+    p = add_epsg_def (filter, first, last, 21150, "epsg", 21150,
+        "Batavia / UTM zone 50S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.524");
+        "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-377,68");
     add_proj4text (p, 1,
-        "3848086 +y_0=365759.3658464114 +datum=nzgd49 +to_meter=0");
-    add_proj4text (p, 2,
-        ".9143984146160287 +no_defs");
+        "1,-50,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / North Island Grid\",GEOGCS[\"NZGD49\",");
+        "PROJCS[\"Batavia / UTM zone 50S\",GEOGCS[\"Batavia\",DAT");
     add_srs_wkt (p, 1,
-        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
+        "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
     add_srs_wkt (p, 2,
-        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-39],PARAMETER[\"central_meridian\"");
+        "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",175.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "easting\",300000],PARAMETER[\"false_northing\",400000],U");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27291\"]]");
-    p = add_epsg_def (filter, first, last, 27292, "epsg", 27292,
-        "NZGD49 / South Island Grid");
+        "UTHORITY[\"EPSG\",\"21150\"]]");
+    p = add_epsg_def (filter, first, last, 21291, "epsg", 21291,
+        "Barbados 1938 / British West Indies Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.207");
+        "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x");
     add_proj4text (p, 1,
-        "3080143 +y_0=457199.2073080143 +datum=nzgd49 +to_meter=0");
+        "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419");
     add_proj4text (p, 2,
-        ".9143984146160287 +no_defs");
+        ".19,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NZGD49 / South Island Grid\",GEOGCS[\"NZGD49\",");
+        "PROJCS[\"Barbados 1938 / British West Indies Grid\",GEOG");
     add_srs_wkt (p, 1,
-        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
+        "CS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
+        "\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "RITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212");
     add_srs_wkt (p, 7,
-        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",-44],PARAMETER[\"central_meridian\"");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-62]");
     add_srs_wkt (p, 9,
-        ",171.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_");
+        ",PARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "easting\",500000],PARAMETER[\"false_northing\",500000],U");
+        "sting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2129");
     add_srs_wkt (p, 13,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27292\"]]");
-    p = add_epsg_def (filter, first, last, 27391, "epsg", 27391,
-        "NGO 1948 (Oslo) / NGO zone I");
+        "1\"]]");
+    p = add_epsg_def (filter, first, last, 21292, "epsg", 21292,
+        "Barbados 1938 / Barbados National Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_");
+        "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222");
     add_proj4text (p, 1,
-        "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=");
+        "222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 ");
     add_proj4text (p, 2,
-        "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +");
-    add_proj4text (p, 3,
-        "no_defs");
+        "+towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone I\",GEOGCS[\"NGO 194");
+        "PROJCS[\"Barbados 1938 / Barbados National Grid\",GEOGCS");
     add_srs_wkt (p, 1,
-        "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod");
+        "[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"Cl");
     add_srs_wkt (p, 2,
-        "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700");
+        "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH");
+        ",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORI");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666");
+        "TY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[");
     add_srs_wkt (p, 5,
-        "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174");
+        "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A");
     add_srs_wkt (p, 6,
-        "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E");
+        "UTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4212\"");
     add_srs_wkt (p, 7,
-        "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR");
+        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
     add_srs_wkt (p, 8,
-        "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me");
+        "ude_of_origin\",13.17638888888889],PARAMETER[\"central_m");
     add_srs_wkt (p, 9,
-        "ridian\",-4.666666666666667],PARAMETER[\"scale_factor\",");
+        "eridian\",-59.55972222222222],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
+        ",0.9999986],PARAMETER[\"false_easting\",30000],PARAMETER");
     add_srs_wkt (p, 11,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "[\"false_northing\",75000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 13,
-        "27391\"]]");
-    p = add_epsg_def (filter, first, last, 27392, "epsg", 27392,
-        "NGO 1948 (Oslo) / NGO zone II");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"21292\"]]");
+    p = add_epsg_def (filter, first, last, 21413, "epsg", 21413,
+        "Beijing 1954 / Gauss-Kruger zone 13");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0");
     add_proj4text (p, 1,
-        "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=");
+        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
     add_proj4text (p, 2,
-        "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +");
-    add_proj4text (p, 3,
-        "no_defs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone II\",GEOGCS[\"NGO 19");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 13\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
+        "0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "eridian\",-2.333333333333333],PARAMETER[\"scale_factor\"");
+        "factor\",1],PARAMETER[\"false_easting\",13500000],PARAME");
     add_srs_wkt (p, 10,
-        ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
-    add_srs_wkt (p, 12,
-        "],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"27392\"]]");
-    p = add_epsg_def (filter, first, last, 27393, "epsg", 27393,
-        "NGO 1948 (Oslo) / NGO zone III");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21413\"]]");
+    p = add_epsg_def (filter, first, last, 21414, "epsg", 21414,
+        "Beijing 1954 / Gauss-Kruger zone 14");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0");
     add_proj4text (p, 1,
-        "7492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.");
+        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
     add_proj4text (p, 2,
-        "889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone III\",GEOGCS[\"NGO 1");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 14\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
+        "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "eridian\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
+        "factor\",1],PARAMETER[\"false_easting\",14500000],PARAME");
     add_srs_wkt (p, 10,
-        "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH");
-    add_srs_wkt (p, 12,
-        "],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27393\"]]");
-    p = add_epsg_def (filter, first, last, 27394, "epsg", 27394,
-        "NGO 1948 (Oslo) / NGO zone IV");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21414\"]]");
+    p = add_epsg_def (filter, first, last, 21415, "epsg", 21415,
+        "Beijing 1954 / Gauss-Kruger zone 15");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0");
     add_proj4text (p, 1,
-        "377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,");
+        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
     add_proj4text (p, 2,
-        "7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone IV\",GEOGCS[\"NGO 19");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 15\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
+        "0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "eridian\",2.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+        "factor\",1],PARAMETER[\"false_easting\",15500000],PARAME");
     add_srs_wkt (p, 10,
-        "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NOR");
-    add_srs_wkt (p, 12,
-        "TH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27394\"]]");
-    p = add_epsg_def (filter, first, last, 27395, "epsg", 27395,
-        "NGO 1948 (Oslo) / NGO zone V");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21415\"]]");
+    p = add_epsg_def (filter, first, last, 21416, "epsg", 21416,
+        "Beijing 1954 / Gauss-Kruger zone 16");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0");
     add_proj4text (p, 1,
-        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
     add_proj4text (p, 2,
-        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
-    add_proj4text (p, 3,
-        "o_defs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone V\",GEOGCS[\"NGO 194");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 16\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me");
+        "0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "ridian\",6.166666666666667],PARAMETER[\"scale_factor\",1");
+        "factor\",1],PARAMETER[\"false_easting\",16500000],PARAME");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 12,
-        "AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "27395\"]]");
-    p = add_epsg_def (filter, first, last, 27396, "epsg", 27396,
-        "NGO 1948 (Oslo) / NGO zone VI");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21416\"]]");
+    p = add_epsg_def (filter, first, last, 21417, "epsg", 21417,
+        "Beijing 1954 / Gauss-Kruger zone 17");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0");
     add_proj4text (p, 1,
-        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+        " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=");
     add_proj4text (p, 2,
-        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
-    add_proj4text (p, 3,
-        "o_defs");
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone VI\",GEOGCS[\"NGO 19");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 17\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
+        "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "eridian\",10.16666666666667],PARAMETER[\"scale_factor\",");
+        "factor\",1],PARAMETER[\"false_easting\",17500000],PARAME");
     add_srs_wkt (p, 10,
-        "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
-    add_srs_wkt (p, 12,
-        ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "27396\"]]");
-    p = add_epsg_def (filter, first, last, 27397, "epsg", 27397,
-        "NGO 1948 (Oslo) / NGO zone VII");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21417\"]]");
+    p = add_epsg_def (filter, first, last, 21418, "epsg", 21418,
+        "Beijing 1954 / Gauss-Kruger zone 18");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=");
     add_proj4text (p, 1,
-        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
-    add_proj4text (p, 3,
-        "o_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone VII\",GEOGCS[\"NGO 1");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 18\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
+        "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "eridian\",14.16666666666667],PARAMETER[\"scale_factor\",");
+        "_factor\",1],PARAMETER[\"false_easting\",18500000],PARAM");
     add_srs_wkt (p, 10,
-        "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
-    add_srs_wkt (p, 12,
-        ",AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "27397\"]]");
-    p = add_epsg_def (filter, first, last, 27398, "epsg", 27398,
-        "NGO 1948 (Oslo) / NGO zone VIII");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21418\"]]");
+    p = add_epsg_def (filter, first, last, 21419, "epsg", 21419,
+        "Beijing 1954 / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=");
     add_proj4text (p, 1,
-        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
-    add_proj4text (p, 3,
-        "o_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGO 1948 (Oslo) / NGO zone VIII\",GEOGCS[\"NGO ");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 19\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel ");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"central");
+        "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "_meridian\",18.33333333333333],PARAMETER[\"scale_factor\"");
+        "_factor\",1],PARAMETER[\"false_easting\",19500000],PARAM");
     add_srs_wkt (p, 10,
-        ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
-    add_srs_wkt (p, 12,
-        "],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"27398\"]]");
-    p = add_epsg_def (filter, first, last, 27429, "epsg", 27429,
-        "Datum 73 / UTM zone 29N");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21419\"]]");
+    p = add_epsg_def (filter, first, last, 21420, "epsg", 21420,
+        "Beijing 1954 / Gauss-Kruger zone 20");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +ellps=intl +towgs84=-223.237,110.193");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=");
     add_proj4text (p, 1,
-        ",36.649,0,0,0,0 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Datum 73 / UTM zone 29N\",GEOGCS[\"Datum 73\",D");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 20\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"Datum_73\",SPHEROID[\"International 1924\",637838");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-223.237,110");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        ".193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"6274\"]],PRIME");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transverse_M");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0.9");
+        "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        "_factor\",1],PARAMETER[\"false_easting\",20500000],PARAM");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
-    add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"27429\"]]");
-    p = add_epsg_def (filter, first, last, 27492, "epsg", 27492,
-        "Datum 73 / Modified Portuguese Grid (deprecated)");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21420\"]]");
+    p = add_epsg_def (filter, first, last, 21421, "epsg", 21421,
+        "Beijing 1954 / Gauss-Kruger zone 21");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=");
     add_proj4text (p, 1,
-        "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=");
+        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +");
-    add_proj4text (p, 3,
-        "no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Datum 73 / Modified Portuguese Grid (deprecated");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 21\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        ")\",GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"In");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY[");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "_of_origin\",39.66666666666666],PARAMETER[\"central_meri");
+        "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "dian\",-8.131906111111112],PARAMETER[\"scale_factor\",1]");
+        "_factor\",1],PARAMETER[\"false_easting\",21500000],PARAM");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_easting\",180.598],PARAMETER[\"false_");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "northing\",-86.99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 12,
-        "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"");
-    add_srs_wkt (p, 13,
-        "EPSG\",\"27492\"]]");
-    p = add_epsg_def (filter, first, last, 27493, "epsg", 27493,
-        "Datum 73 / Modified Portuguese Grid");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21421\"]]");
+    p = add_epsg_def (filter, first, last, 21422, "epsg", 21422,
+        "Beijing 1954 / Gauss-Kruger zone 22");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=");
     add_proj4text (p, 1,
-        "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=");
+        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +");
-    add_proj4text (p, 3,
-        "no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Datum 73 / Modified Portuguese Grid\",GEOGCS[\"");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 22\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"International 1");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "74\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"T");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "9.66666666666666],PARAMETER[\"central_meridian\",-8.1319");
+        "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "06111111112],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
+        "_factor\",1],PARAMETER[\"false_easting\",22500000],PARAM");
     add_srs_wkt (p, 10,
-        "alse_easting\",180.598],PARAMETER[\"false_northing\",-86");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ".99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
-    add_srs_wkt (p, 12,
-        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2749");
-    add_srs_wkt (p, 13,
-        "3\"]]");
-    p = add_epsg_def (filter, first, last, 27500, "epsg", 27500,
-        "ATF (Paris) / Nord de Guerre");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21422\"]]");
+    p = add_epsg_def (filter, first, last, 21423, "epsg", 21423,
+        "Beijing 1954 / Gauss-Kruger zone 23");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=");
     add_proj4text (p, 1,
-        "001 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +");
+        "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "a=6376523 +b=6355862.933255573 +pm=2.337208333333333 +un");
-    add_proj4text (p, 3,
-        "its=m +no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"ATF (Paris) / Nord de Guerre\",GEOGCS[\"ATF (Pa");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 23\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ris)\",DATUM[\"Ancienne_Triangulation_Francaise_Paris\",");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPS");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "G\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901\"]],PRIMEM[\"Pa");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "ris RGS\",2.337208333333333,AUTHORITY[\"EPSG\",\"8914\"]");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "9105\"]],AUTHORITY[\"EPSG\",\"4901\"]],PROJECTION[\"Lamb");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "n\",55],PARAMETER[\"central_meridian\",6],PARAMETER[\"sc");
+        "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "ale_factor\",0.99950908],PARAMETER[\"false_easting\",500");
+        "_factor\",1],PARAMETER[\"false_easting\",23500000],PARAM");
     add_srs_wkt (p, 10,
-        "000],PARAMETER[\"false_northing\",300000],UNIT[\"metre\"");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"27500\"]]");
-    p = add_epsg_def (filter, first, last, 27561, "epsg", 27561,
-        "NTF (Paris) / Lambert Nord France");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21423\"]]");
+    p = add_epsg_def (filter, first, last, 21453, "epsg", 21453,
+        "Beijing 1954 / Gauss-Kruger CM 75E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
-    add_proj4text (p, 3,
-        "paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert Nord France\",GEOGCS[\"NT");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 75E\",GEOGCS[\"B");
     add_srs_wkt (p, 1,
-        "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par");
+        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "2936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3");
+        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris");
+        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAME");
+        "],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0");
+        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        ".999877341],PARAMETER[\"false_easting\",600000],PARAMETE");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[");
-    add_srs_wkt (p, 12,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
-    add_srs_wkt (p, 13,
-        "UTHORITY[\"EPSG\",\"27561\"]]");
-    p = add_epsg_def (filter, first, last, 27562, "epsg", 27562,
-        "NTF (Paris) / Lambert Centre France");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21453\"]]");
+    p = add_epsg_def (filter, first, last, 21454, "epsg", 21454,
+        "Beijing 1954 / Gauss-Kruger CM 81E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert Centre France\",GEOGCS[\"");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 81E\",GEOGCS[\"B");
     add_srs_wkt (p, 1,
-        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
+        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
+        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
+        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR");
+        "],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
+        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY");
-    add_srs_wkt (p, 12,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 13,
-        "AUTHORITY[\"EPSG\",\"27562\"]]");
-    p = add_epsg_def (filter, first, last, 27563, "epsg", 27563,
-        "NTF (Paris) / Lambert Sud France");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21454\"]]");
+    p = add_epsg_def (filter, first, last, 21455, "epsg", 21455,
+        "Beijing 1954 / Gauss-Kruger CM 87E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
-    add_proj4text (p, 3,
-        "paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert Sud France\",GEOGCS[\"NTF");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 87E\",GEOGCS[\"B");
     add_srs_wkt (p, 1,
-        " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari");
+        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32");
+        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\"");
+        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET");
+        "],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.");
+        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "999877499],PARAMETER[\"false_easting\",600000],PARAMETER");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"");
-    add_srs_wkt (p, 12,
-        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
-    add_srs_wkt (p, 13,
-        "HORITY[\"EPSG\",\"27563\"]]");
-    p = add_epsg_def (filter, first, last, 27564, "epsg", 27564,
-        "NTF (Paris) / Lambert Corse");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21455\"]]");
+    p = add_epsg_def (filter, first, last, 21456, "epsg", 21456,
+        "Beijing 1954 / Gauss-Kruger CM 93E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 ");
-    add_proj4text (p, 3,
-        "+pm=paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert Corse\",GEOGCS[\"NTF (Par");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 93E\",GEOGCS[\"B");
     add_srs_wkt (p, 1,
-        "is)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",S");
+        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "PHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021293626");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "9,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0");
+        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        ",0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.3");
+        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "3722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETE");
+        "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "R[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.9");
+        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "9994471],PARAMETER[\"false_easting\",234.358],PARAMETER[");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "\"false_northing\",185861.369],UNIT[\"metre\",1,AUTHORIT");
-    add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 13,
-        ",AUTHORITY[\"EPSG\",\"27564\"]]");
-    p = add_epsg_def (filter, first, last, 27571, "epsg", 27571,
-        "NTF (Paris) / Lambert zone I");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21456\"]]");
+    p = add_epsg_def (filter, first, last, 21457, "epsg", 21457,
+        "Beijing 1954 / Gauss-Kruger CM 99E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
-    add_proj4text (p, 3,
-        "=paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NTF (Pa");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 99E\",GEOGCS[\"B");
     add_srs_wkt (p, 1,
-        "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",");
+        "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "69,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,");
+        "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.");
+        "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Coni");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "c_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER[");
+        "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "\"central_meridian\",0],PARAMETER[\"scale_factor\",0.999");
+        "actor\",1],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "877341],PARAMETER[\"false_easting\",600000],PARAMETER[\"");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "false_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"E");
-    add_srs_wkt (p, 12,
-        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
-    add_srs_wkt (p, 13,
-        "ORITY[\"EPSG\",\"27571\"]]");
-    p = add_epsg_def (filter, first, last, 27572, "epsg", 27572,
-        "NTF (Paris) / Lambert zone II");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"21457\"]]");
+    p = add_epsg_def (filter, first, last, 21458, "epsg", 21458,
+        "Beijing 1954 / Gauss-Kruger CM 105E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (P");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 105E\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\"");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER");
+        "0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99");
+        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\"");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E");
-    add_srs_wkt (p, 12,
-        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
-    add_srs_wkt (p, 13,
-        "ORITY[\"EPSG\",\"27572\"]]");
-    p = add_epsg_def (filter, first, last, 27573, "epsg", 27573,
-        "NTF (Paris) / Lambert zone III");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21458\"]]");
+    p = add_epsg_def (filter, first, last, 21459, "epsg", 21459,
+        "Beijing 1954 / Gauss-Kruger CM 111E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
-    add_proj4text (p, 3,
-        "=paris +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF (");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 111E\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\"");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER");
+        "0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99");
+        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        "9877499],PARAMETER[\"false_easting\",600000],PARAMETER[\"");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"E");
-    add_srs_wkt (p, 12,
-        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
-    add_srs_wkt (p, 13,
-        "ORITY[\"EPSG\",\"27573\"]]");
-    p = add_epsg_def (filter, first, last, 27574, "epsg", 27574,
-        "NTF (Paris) / Lambert zone IV");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21459\"]]");
+    p = add_epsg_def (filter, first, last, 21460, "epsg", 21460,
+        "Beijing 1954 / Gauss-Kruger CM 117E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0");
-    add_proj4text (p, 3,
-        " +pm=paris +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\"NTF (P");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 117E\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\"");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME");
+        "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0");
+        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO");
-    add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
-    add_srs_wkt (p, 13,
-        "TH],AUTHORITY[\"EPSG\",\"27574\"]]");
-    p = add_epsg_def (filter, first, last, 27581, "epsg", 27581,
-        "NTF (Paris) / France I (deprecated)");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21460\"]]");
+    p = add_epsg_def (filter, first, last, 21461, "epsg", 21461,
+        "Beijing 1954 / Gauss-Kruger CM 123E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
-    add_proj4text (p, 3,
-        "=paris +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / France I (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 123E\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PAR");
+        "0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
+        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        ",0.999877341],PARAMETER[\"false_easting\",600000],PARAME");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "TER[\"false_northing\",1200000],UNIT[\"metre\",1,AUTHORI");
-    add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
-    add_srs_wkt (p, 13,
-        "],AUTHORITY[\"EPSG\",\"27581\"]]");
-    p = add_epsg_def (filter, first, last, 27582, "epsg", 27582,
-        "NTF (Paris) / France II (deprecated)");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21461\"]]");
+    p = add_epsg_def (filter, first, last, 21462, "epsg", 21462,
+        "Beijing 1954 / Gauss-Kruger CM 129E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 129E\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR");
+        "0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
+        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",2200000],UNIT[\"metre\",1,AUTHORIT");
-    add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 13,
-        ",AUTHORITY[\"EPSG\",\"27582\"]]");
-    p = add_epsg_def (filter, first, last, 27583, "epsg", 27583,
-        "NTF (Paris) / France III (deprecated)");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21462\"]]");
+    p = add_epsg_def (filter, first, last, 21463, "epsg", 21463,
+        "Beijing 1954 / Gauss-Kruger CM 135E");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
-    add_proj4text (p, 3,
-        "=paris +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / France III (deprecated)\",GEOGCS[");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 135E\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise");
+        "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-");
+        "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P");
+        "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P");
+        "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto");
+        "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_northing\",3200000],UNIT[\"metre\",1,AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
-    add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"27583\"]]");
-    p = add_epsg_def (filter, first, last, 27584, "epsg", 27584,
-        "NTF (Paris) / France IV (deprecated)");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21463\"]]");
+    p = add_epsg_def (filter, first, last, 21473, "epsg", 21473,
+        "Beijing 1954 / Gauss-Kruger 13N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0");
-    add_proj4text (p, 3,
-        " +pm=paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / France IV (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 13N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],");
+        "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact");
+        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "or\",0.99994471],PARAMETER[\"false_easting\",234.358],PA");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",4185861.369],UNIT[\"metre\",1");
-    add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
-    add_srs_wkt (p, 13,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"27584\"]]");
-    p = add_epsg_def (filter, first, last, 27591, "epsg", 27591,
-        "NTF (Paris) / Nord France (deprecated)");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21473\"]]");
+    p = add_epsg_def (filter, first, last, 21474, "epsg", 21474,
+        "Beijing 1954 / Gauss-Kruger 14N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
-    add_proj4text (p, 3,
-        "paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Nord France (deprecated)\",GEOGCS");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 14N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francais");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "e_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conf");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],");
+        "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact");
+        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "or\",0.999877341],PARAMETER[\"false_easting\",600000],PA");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
-    add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"27591\"]]");
-    p = add_epsg_def (filter, first, last, 27592, "epsg", 27592,
-        "NTF (Paris) / Centre France (deprecated)");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21474\"]]");
+    p = add_epsg_def (filter, first, last, 21475, "epsg", 21475,
+        "Beijing 1954 / Gauss-Kruger 15N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Centre France (deprecated)\",GEOG");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 15N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "CS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Franca");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "ise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ".4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-16");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "8,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "]],AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Co");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52");
+        "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fa");
+        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "ctor\",0.99987742],PARAMETER[\"false_easting\",600000],P");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUT");
-    add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
-    add_srs_wkt (p, 13,
-        "ORTH],AUTHORITY[\"EPSG\",\"27592\"]]");
-    p = add_epsg_def (filter, first, last, 27593, "epsg", 27593,
-        "NTF (Paris) / Sud France (deprecated)");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21475\"]]");
+    p = add_epsg_def (filter, first, last, 21476, "epsg", 21476,
+        "Beijing 1954 / Gauss-Kruger 16N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
-    add_proj4text (p, 3,
-        "paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Sud France (deprecated)\",GEOGCS[");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 16N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P");
+        "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto");
+        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHO");
-    add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
-    add_srs_wkt (p, 13,
-        "TH],AUTHORITY[\"EPSG\",\"27593\"]]");
-    p = add_epsg_def (filter, first, last, 27594, "epsg", 27594,
-        "NTF (Paris) / Corse (deprecated)");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21476\"]]");
+    p = add_epsg_def (filter, first, last, 21477, "epsg", 21477,
+        "Beijing 1954 / Gauss-Kruger 17N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36");
+        "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m ");
     add_proj4text (p, 2,
-        "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 ");
-    add_proj4text (p, 3,
-        "+pm=paris +units=m +no_defs");
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NTF (Paris) / Corse (deprecated)\",GEOGCS[\"NTF");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 17N (deprecated)\",");
     add_srs_wkt (p, 1,
-        " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\"");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARA");
+        "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE");
     add_srs_wkt (p, 9,
-        "METER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
+        "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        ",0.99994471],PARAMETER[\"false_easting\",234.358],PARAME");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "TER[\"false_northing\",185861.369],UNIT[\"metre\",1,AUTH");
-    add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
-    add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"27594\"]]");
-    p = add_epsg_def (filter, first, last, 27700, "epsg", 27700,
-        "OSGB 1936 / British National Grid");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21477\"]]");
+    p = add_epsg_def (filter, first, last, 21478, "epsg", 21478,
+        "Beijing 1954 / Gauss-Kruger 18N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OS");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 18N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "GB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",637");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "7563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "84[375,-111,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6277\"]],P");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "\"]],AUTHORITY[\"EPSG\",\"4277\"]],PROJECTION[\"Transver");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",49],PARA");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",-2],PARAMETER[\"scale_factor\"");
+        "_origin\",0],PARAMETER[\"central_meridian\",105],PARAMET");
     add_srs_wkt (p, 9,
-        ",0.9996012717],PARAMETER[\"false_easting\",400000],PARAM");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",-100000],UNIT[\"metre\",1,AUTHOR");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
-    add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"27700\"]]");
-    p = add_epsg_def (filter, first, last, 28191, "epsg", 28191,
-        "Palestine 1923 / Palestine Grid");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21478\"]]");
+    p = add_epsg_def (filter, first, last, 21479, "epsg", 21479,
+        "Beijing 1954 / Gauss-Kruger 19N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "5556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.4");
-    add_proj4text (p, 3,
-        "2,-11.821,1 +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Palestine 1923 / Palestine Grid\",GEOGCS[\"Pale");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 19N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke ");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8.");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sold");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "ner\"],PARAMETER[\"latitude_of_origin\",31.7340969444444");
+        "_origin\",0],PARAMETER[\"central_meridian\",111],PARAMET");
     add_srs_wkt (p, 9,
-        "5],PARAMETER[\"central_meridian\",35.21208055555556],PAR");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_easting\",170251.555],PARAMETER[\"false_n");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "orthing\",126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 12,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
-    add_srs_wkt (p, 13,
-        "TH],AUTHORITY[\"EPSG\",\"28191\"]]");
-    p = add_epsg_def (filter, first, last, 28192, "epsg", 28192,
-        "Palestine 1923 / Palestine Belt");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21479\"]]");
+    p = add_epsg_def (filter, first, last, 21480, "epsg", 21480,
+        "Beijing 1954 / Gauss-Kruger 20N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.212080555");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "55556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.7");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "89 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.0");
-    add_proj4text (p, 3,
-        "01,-4.42,-11.821,1 +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Palestine 1923 / Palestine Belt\",GEOGCS[\"Pale");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 20N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke ");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY[");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8.");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Transverse_M");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",31.734096944");
+        "_origin\",0],PARAMETER[\"central_meridian\",117],PARAMET");
     add_srs_wkt (p, 9,
-        "44445],PARAMETER[\"central_meridian\",35.21208055555556]");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "\",170251.555],PARAMETER[\"false_northing\",1126867.909]");
-    add_srs_wkt (p, 12,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
-    add_srs_wkt (p, 13,
-        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 14,
-        "\",\"28192\"]]");
-    p = add_epsg_def (filter, first, last, 28193, "epsg", 28193,
-        "Palestine 1923 / Israeli CS Grid");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21480\"]]");
+    p = add_epsg_def (filter, first, last, 21481, "epsg", 21481,
+        "Beijing 1954 / Gauss-Kruger 21N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "5556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
     add_proj4text (p, 2,
-        "6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.");
-    add_proj4text (p, 3,
-        "42,-11.821,1 +units=m +no_defs");
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Palestine 1923 / Israeli CS Grid\",GEOGCS[\"Pal");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 21N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "estine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        " 1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        ".001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIM");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "],AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sol");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "dner\"],PARAMETER[\"latitude_of_origin\",31.734096944444");
+        "_origin\",0],PARAMETER[\"central_meridian\",123],PARAMET");
     add_srs_wkt (p, 9,
-        "45],PARAMETER[\"central_meridian\",35.21208055555556],PA");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_easting\",170251.555],PARAMETER[\"false_");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "northing\",1126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPS");
-    add_srs_wkt (p, 12,
-        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
-    add_srs_wkt (p, 13,
-        "NORTH],AUTHORITY[\"EPSG\",\"28193\"]]");
-    p = add_epsg_def (filter, first, last, 28232, "epsg", 28232,
-        "Pointe Noire / UTM zone 32S");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21481\"]]");
+    p = add_epsg_def (filter, first, last, 21482, "epsg", 21482,
+        "Beijing 1954 / Gauss-Kruger 22N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "84=-148,51,-291,0,0,0,0 +units=m +no_defs");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pointe Noire / UTM zone 32S\",GEOGCS[\"Pointe N");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 22N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "oire\",DATUM[\"Congo_1960_Pointe_Noire\",SPHEROID[\"Clar");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "ke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORIT");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "Y[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4282\"]]");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM");
+        "_origin\",0],PARAMETER[\"central_meridian\",129],PARAMET");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\"");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",");
-    add_srs_wkt (p, 12,
-        "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2823");
-    add_srs_wkt (p, 13,
-        "2\"]]");
-    p = add_epsg_def (filter, first, last, 28348, "epsg", 28348,
-        "GDA94 / MGA zone 48");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21482\"]]");
+    p = add_epsg_def (filter, first, last, 21483, "epsg", 21483,
+        "Beijing 1954 / Gauss-Kruger 23N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 48\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Beijing 1954 / Gauss-Kruger 23N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4214\"]],PRO");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0");
+        "_origin\",0],PARAMETER[\"central_meridian\",135],PARAMET");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
-    add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28348\"]]");
-    p = add_epsg_def (filter, first, last, 28349, "epsg", 28349,
-        "GDA94 / MGA zone 49");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"21483\"]]");
+    p = add_epsg_def (filter, first, last, 21500, "epsg", 21500,
+        "Belge 1950 (Brussels) / Belge Lambert 50");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=i");
+    add_proj4text (p, 2,
+        "ntl +pm=brussels +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 49\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Belge 1950 (Brussels) / Belge Lambert 50\",GEOG");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "CS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National_Bel");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "ge_1950_Brussels\",SPHEROID[\"International 1924\",63783");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4809\"]],PRO");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",0");
+        "ndard_parallel_1\",49.83333333333334],PARAMETER[\"standa");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "rd_parallel_2\",51.16666666666666],PARAMETER[\"latitude_");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "of_origin\",90],PARAMETER[\"central_meridian\",0],PARAME");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "TER[\"false_easting\",150000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28349\"]]");
-    p = add_epsg_def (filter, first, last, 28350, "epsg", 28350,
-        "GDA94 / MGA zone 50");
+        "\",5400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 14,
+        ",\"21500\"]]");
+    p = add_epsg_def (filter, first, last, 21780, "epsg", 21780,
+        "Bern 1898 (Bern) / LV03C");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "_0=0 +y_0=0 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,");
+    add_proj4text (p, 2,
+        "0,0 +pm=bern +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 50\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bern 1898 (Bern) / LV03C\",GEOGCS[\"Bern 1898 (");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "Bern)\",DATUM[\"CH1903_Bern\",SPHEROID[\"Bessel 1841\",6");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "GS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6801");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\"]],PRIMEM[\"Bern\",7.439583333333333,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        ",\"8907\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4801\"]],PROJE");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "CTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],PARAME");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",0");
+        "TER[\"latitude_of_center\",46.95240555555556],PARAMETER[");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "\"longitude_of_center\",0],PARAMETER[\"azimuth\",90],PAR");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "AMETER[\"rectified_grid_angle\",90],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "ctor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28350\"]]");
-    p = add_epsg_def (filter, first, last, 28351, "epsg", 28351,
-        "GDA94 / MGA zone 51");
+        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+    add_srs_wkt (p, 13,
+        "001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 14,
+        "PSG\",\"21780\"]]");
+    p = add_epsg_def (filter, first, last, 21781, "epsg", 21781,
+        "CH1903 / LV03");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +tow");
+    add_proj4text (p, 2,
+        "gs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 51\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"CH1903 / LV03\",GEOGCS[\"CH1903\",DATUM[\"CH190");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "3\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "G\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azim");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "uth_Center\"],PARAMETER[\"latitude_of_center\",46.952405");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",0");
+        "55555556],PARAMETER[\"longitude_of_center\",7.4395833333");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "33333],PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_g");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "rid_angle\",90],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "\"false_easting\",600000],PARAMETER[\"false_northing\",2");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28351\"]]");
-    p = add_epsg_def (filter, first, last, 28352, "epsg", 28352,
-        "GDA94 / MGA zone 52");
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21");
+    add_srs_wkt (p, 14,
+        "781\"]]");
+    p = add_epsg_def (filter, first, last, 21782, "epsg", 21782,
+        "CH1903 / LV03C-G");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.4");
+    add_proj4text (p, 2,
+        ",15.1,405.3,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 52\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"CH1903 / LV03C-G\",GEOGCS[\"CH1903\",DATUM[\"CH");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "1903\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "EPSG\",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator_A");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "zimuth_Center\"],PARAMETER[\"latitude_of_center\",46.952");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",0");
+        "40555555556],PARAMETER[\"longitude_of_center\",7.4395833");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "33333333],PARAMETER[\"azimuth\",90],PARAMETER[\"rectifie");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "d_grid_angle\",90],PARAMETER[\"scale_factor\",1],PARAMET");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28352\"]]");
-    p = add_epsg_def (filter, first, last, 28353, "epsg", 28353,
-        "GDA94 / MGA zone 53");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21782\"]]");
+    p = add_epsg_def (filter, first, last, 21817, "epsg", 21817,
+        "Bogota 1975 / UTM zone 17N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 53\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bogota 1975 / UTM zone 17N (deprecated)\",GEOGC");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "S[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inter");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"621");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",0");
+        "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28353\"]]");
-    p = add_epsg_def (filter, first, last, 28354, "epsg", 28354,
-        "GDA94 / MGA zone 54");
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"21817\"]]");
+    p = add_epsg_def (filter, first, last, 21818, "epsg", 21818,
+        "Bogota 1975 / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 54\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bogota 1975 / UTM zone 18N\",GEOGCS[\"Bogota 19");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "75\",DATUM[\"Bogota_1975\",SPHEROID[\"International 1924");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[307");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        ",304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "UTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",141],PARAMETER[\"scale_factor\",0");
+        "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28354\"]]");
-    p = add_epsg_def (filter, first, last, 28355, "epsg", 28355,
-        "GDA94 / MGA zone 55");
+        "THORITY[\"EPSG\",\"21818\"]]");
+    p = add_epsg_def (filter, first, last, 21891, "epsg", 21891,
+        "Bogota 1975 / Colombia West zone (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+    add_proj4text (p, 2,
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 55\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bogota 1975 / Colombia West zone (deprecated)\"");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        ",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",147],PARAMETER[\"scale_factor\",0");
+        "n\",4.599047222222222],PARAMETER[\"central_meridian\",-7");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "7.08091666666667],PARAMETER[\"scale_factor\",1],PARAMETE");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "R[\"false_easting\",1000000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28355\"]]");
-    p = add_epsg_def (filter, first, last, 28356, "epsg", 28356,
-        "GDA94 / MGA zone 56");
+        ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "21891\"]]");
+    p = add_epsg_def (filter, first, last, 21892, "epsg", 21892,
+        "Bogota 1975 / Colombia Bogota zone (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+    add_proj4text (p, 2,
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bogota 1975 / Colombia Bogota zone (deprecated)");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        ",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",153],PARAMETER[\"scale_factor\",0");
+        "in\",4.599047222222222],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "74.08091666666667],PARAMETER[\"scale_factor\",1],PARAMET");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "ER[\"false_easting\",1000000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]");
-    p = add_epsg_def (filter, first, last, 28357, "epsg", 28357,
-        "GDA94 / MGA zone 57");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"21892\"]]");
+    p = add_epsg_def (filter, first, last, 21893, "epsg", 21893,
+        "Bogota 1975 / Colombia East Central zone (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+    add_proj4text (p, 2,
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 57\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bogota 1975 / Colombia East Central zone (depre");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "cated)\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SP");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "SG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "\"EPSG\",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",159],PARAMETER[\"scale_factor\",0");
+        "_of_origin\",4.599047222222222],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "dian\",-71.08091666666667],PARAMETER[\"scale_factor\",1]");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28357\"]]");
-    p = add_epsg_def (filter, first, last, 28358, "epsg", 28358,
-        "GDA94 / MGA zone 58");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"21893\"]]");
+    p = add_epsg_def (filter, first, last, 21894, "epsg", 21894,
+        "Bogota 1975 / Colombia East (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
+    add_proj4text (p, 2,
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"GDA94 / MGA zone 58\",GEOGCS[\"GDA94\",DATUM[\"");
+        "PROJCS[\"Bogota 1975 / Colombia East (deprecated)\",GEOG");
     add_srs_wkt (p, 1,
-        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
+        "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
+        "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",165],PARAMETER[\"scale_factor\",0");
+        ".599047222222222],PARAMETER[\"central_meridian\",-68.080");
     add_srs_wkt (p, 9,
-        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "alse_easting\",1000000],PARAMETER[\"false_northing\",100");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"28358\"]]");
-    p = add_epsg_def (filter, first, last, 28402, "epsg", 28402,
-        "Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"218");
+    add_srs_wkt (p, 13,
+        "94\"]]");
+    p = add_epsg_def (filter, first, last, 21896, "epsg", 21896,
+        "Bogota 1975 / Colombia West zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)");
+        "PROJCS[\"Bogota 1975 / Colombia West zone\",GEOGCS[\"Bog");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO");
+        "ota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internationa");
     add_srs_wkt (p, 2,
-        "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",");
+        "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1");
+        "84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],P");
     add_srs_wkt (p, 4,
-        "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transver");
     add_srs_wkt (p, 7,
-        ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "se_Mercator\"],PARAMETER[\"latitude_of_origin\",4.599047");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "222222222],PARAMETER[\"central_meridian\",-77.0809166666");
     add_srs_wkt (p, 9,
-        "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea");
+        "6667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "sting\",1000000],PARAMETER[\"false_northing\",1000000],U");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28402\"]]");
-    p = add_epsg_def (filter, first, last, 28403, "epsg", 28403,
-        "Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)");
+        "\"EPSG\",\"21896\"]]");
+    p = add_epsg_def (filter, first, last, 21897, "epsg", 21897,
+        "Bogota 1975 / Colombia Bogota zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)");
+        "PROJCS[\"Bogota 1975 / Colombia Bogota zone\",GEOGCS[\"B");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO");
+        "ogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internatio");
     add_srs_wkt (p, 2,
-        "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",");
+        "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW");
     add_srs_wkt (p, 3,
-        "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1");
+        "GS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]]");
     add_srs_wkt (p, 4,
-        "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,");
+        ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "22\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transv");
     add_srs_wkt (p, 7,
-        ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.5990");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "47222222222],PARAMETER[\"central_meridian\",-74.08091666");
     add_srs_wkt (p, 9,
-        "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e");
+        "666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "asting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "easting\",1000000],PARAMETER[\"false_northing\",1000000]");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28403\"]]");
-    p = add_epsg_def (filter, first, last, 28404, "epsg", 28404,
-        "Pulkovo 1942 / Gauss-Kruger zone 4");
+        "Y[\"EPSG\",\"21897\"]]");
+    p = add_epsg_def (filter, first, last, 21898, "epsg", 21898,
+        "Bogota 1975 / Colombia East Central zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 4\",GEOGCS[\"P");
+        "PROJCS[\"Bogota 1975 / Colombia East Central zone\",GEOG");
     add_srs_wkt (p, 1,
-        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
+        "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
+        "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",21],PARAM");
+        ".599047222222222],PARAMETER[\"central_meridian\",-71.080");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",450");
+        "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "alse_easting\",1000000],PARAMETER[\"false_northing\",100");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUT");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"28404\"]]");
-    p = add_epsg_def (filter, first, last, 28405, "epsg", 28405,
-        "Pulkovo 1942 / Gauss-Kruger zone 5");
+        "HORITY[\"EPSG\",\"21898\"]]");
+    p = add_epsg_def (filter, first, last, 21899, "epsg", 21899,
+        "Bogota 1975 / Colombia East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "84=307,304,-318,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 5\",GEOGCS[\"P");
+        "PROJCS[\"Bogota 1975 / Colombia East\",GEOGCS[\"Bogota 1");
     add_srs_wkt (p, 1,
-        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
+        "975\",DATUM[\"Bogota_1975\",SPHEROID[\"International 192");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[30");
     add_srs_wkt (p, 3,
-        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
+        "7,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
+        "AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Me");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "rcator\"],PARAMETER[\"latitude_of_origin\",4.59904722222");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAM");
+        "2222],PARAMETER[\"central_meridian\",-68.08091666666667]");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",550");
+        ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "\",1000000],PARAMETER[\"false_northing\",1000000],UNIT[\"");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"28405\"]]");
-    p = add_epsg_def (filter, first, last, 28406, "epsg", 28406,
-        "Pulkovo 1942 / Gauss-Kruger zone 6");
+        "\",\"21899\"]]");
+    p = add_epsg_def (filter, first, last, 22032, "epsg", 22032,
+        "Camacupa / UTM zone 32S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 ");
+        "+proj=utm +zone=32 +south +ellps=clrk80 +towgs84=-50.9,-");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "347.6,-231,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 6\",GEOGCS[\"P");
+        "PROJCS[\"Camacupa / UTM zone 32S\",GEOGCS[\"Camacupa\",D");
     add_srs_wkt (p, 1,
-        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
+        "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9");
     add_srs_wkt (p, 3,
-        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
+        ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
+        "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",33],PARAM");
+        "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",650");
+        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"28406\"]]");
-    p = add_epsg_def (filter, first, last, 28407, "epsg", 28407,
-        "Pulkovo 1942 / Gauss-Kruger zone 7");
+        "NORTH],AUTHORITY[\"EPSG\",\"22032\"]]");
+    p = add_epsg_def (filter, first, last, 22033, "epsg", 22033,
+        "Camacupa / UTM zone 33S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 ");
+        "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-50.9,-");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "347.6,-231,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 7\",GEOGCS[\"P");
+        "PROJCS[\"Camacupa / UTM zone 33S\",GEOGCS[\"Camacupa\",D");
     add_srs_wkt (p, 1,
-        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
+        "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9");
     add_srs_wkt (p, 3,
-        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
+        ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
+        "],AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",39],PARAM");
+        "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",750");
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"28407\"]]");
-    p = add_epsg_def (filter, first, last, 28408, "epsg", 28408,
-        "Pulkovo 1942 / Gauss-Kruger zone 8");
+        ",NORTH],AUTHORITY[\"EPSG\",\"22033\"]]");
+    p = add_epsg_def (filter, first, last, 22091, "epsg", 22091,
+        "Camacupa / TM 11.30 SE");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "y_0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 8\",GEOGCS[\"P");
+        "PROJCS[\"Camacupa / TM 11.30 SE\",GEOGCS[\"Camacupa\",DA");
     add_srs_wkt (p, 1,
-        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
+        "TUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,");
     add_srs_wkt (p, 3,
-        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
+        "-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIME");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
+        ",AUTHORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM");
+        "[\"central_meridian\",11.5],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",850");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"28408\"]]");
-    p = add_epsg_def (filter, first, last, 28409, "epsg", 28409,
-        "Pulkovo 1942 / Gauss-Kruger zone 9");
+        ",NORTH],AUTHORITY[\"EPSG\",\"22091\"]]");
+    p = add_epsg_def (filter, first, last, 22092, "epsg", 22092,
+        "Camacupa / TM 12 SE");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,0,");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 9\",GEOGCS[\"P");
+        "PROJCS[\"Camacupa / TM 12 SE\",GEOGCS[\"Camacupa\",DATUM");
     add_srs_wkt (p, 1,
-        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
+        "[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145");
     add_srs_wkt (p, 2,
-        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
+        ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,-34");
     add_srs_wkt (p, 3,
-        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
+        "7.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
+        "HORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "_of_origin\",0],PARAMETER[\"central_meridian\",51],PARAM");
+        "entral_meridian\",12],PARAMETER[\"scale_factor\",0.9996]");
     add_srs_wkt (p, 9,
-        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",950");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\"");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        ",EAST],AUTHORITY[\"EPSG\",\"28409\"]]");
-    p = add_epsg_def (filter, first, last, 28410, "epsg", 28410,
-        "Pulkovo 1942 / Gauss-Kruger zone 10");
+        "H],AUTHORITY[\"EPSG\",\"22092\"]]");
+    p = add_epsg_def (filter, first, last, 22171, "epsg", 22171,
+        "POSGAR 98 / Argentina 1");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 10\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 1\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA");
+        "90],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",10");
+        "e_factor\",1],PARAMETER[\"false_easting\",1500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28410\"]]");
-    p = add_epsg_def (filter, first, last, 28411, "epsg", 28411,
-        "Pulkovo 1942 / Gauss-Kruger zone 11");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22171\"]]");
+    p = add_epsg_def (filter, first, last, 22172, "epsg", 22172,
+        "POSGAR 98 / Argentina 2");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 11\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 2\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA");
+        "90],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",11");
+        "e_factor\",1],PARAMETER[\"false_easting\",2500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28411\"]]");
-    p = add_epsg_def (filter, first, last, 28412, "epsg", 28412,
-        "Pulkovo 1942 / Gauss-Kruger zone 12");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22172\"]]");
+    p = add_epsg_def (filter, first, last, 22173, "epsg", 22173,
+        "POSGAR 98 / Argentina 3");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 12\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 3\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA");
+        "90],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",12");
+        "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28412\"]]");
-    p = add_epsg_def (filter, first, last, 28413, "epsg", 28413,
-        "Pulkovo 1942 / Gauss-Kruger zone 13");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22173\"]]");
+    p = add_epsg_def (filter, first, last, 22174, "epsg", 22174,
+        "POSGAR 98 / Argentina 4");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 13\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 4\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA");
+        "90],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",13");
+        "e_factor\",1],PARAMETER[\"false_easting\",4500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28413\"]]");
-    p = add_epsg_def (filter, first, last, 28414, "epsg", 28414,
-        "Pulkovo 1942 / Gauss-Kruger zone 14");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22174\"]]");
+    p = add_epsg_def (filter, first, last, 22175, "epsg", 22175,
+        "POSGAR 98 / Argentina 5");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 14\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 5\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA");
+        "90],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14");
+        "e_factor\",1],PARAMETER[\"false_easting\",5500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28414\"]]");
-    p = add_epsg_def (filter, first, last, 28415, "epsg", 28415,
-        "Pulkovo 1942 / Gauss-Kruger zone 15");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22175\"]]");
+    p = add_epsg_def (filter, first, last, 22176, "epsg", 22176,
+        "POSGAR 98 / Argentina 6");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 15\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 6\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA");
+        "90],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15");
+        "e_factor\",1],PARAMETER[\"false_easting\",6500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28415\"]]");
-    p = add_epsg_def (filter, first, last, 28416, "epsg", 28416,
-        "Pulkovo 1942 / Gauss-Kruger zone 16");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22176\"]]");
+    p = add_epsg_def (filter, first, last, 22177, "epsg", 22177,
+        "POSGAR 98 / Argentina 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 16\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 98 / Argentina 7\",GEOGCS[\"POSGAR 98\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA");
+        "90],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16");
+        "e_factor\",1],PARAMETER[\"false_easting\",7500000],PARAM");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28416\"]]");
-    p = add_epsg_def (filter, first, last, 28417, "epsg", 28417,
-        "Pulkovo 1942 / Gauss-Kruger zone 17");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22177\"]]");
+    p = add_epsg_def (filter, first, last, 22181, "epsg", 22181,
+        "POSGAR 94 / Argentina 1");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0");
+        "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 17\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 1\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA");
+        "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17");
+        "_factor\",1],PARAMETER[\"false_easting\",1500000],PARAME");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28417\"]]");
-    p = add_epsg_def (filter, first, last, 28418, "epsg", 28418,
-        "Pulkovo 1942 / Gauss-Kruger zone 18");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22181\"]]");
+    p = add_epsg_def (filter, first, last, 22182, "epsg", 22182,
+        "POSGAR 94 / Argentina 2");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
-    add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 18\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 2\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR");
+        "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1");
+        "_factor\",1],PARAMETER[\"false_easting\",2500000],PARAME");
     add_srs_wkt (p, 10,
-        "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28418\"]]");
-    p = add_epsg_def (filter, first, last, 28419, "epsg", 28419,
-        "Pulkovo 1942 / Gauss-Kruger zone 19");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22182\"]]");
+    p = add_epsg_def (filter, first, last, 22183, "epsg", 22183,
+        "POSGAR 94 / Argentina 3");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
-    add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 19\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 3\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR");
+        "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1");
+        "_factor\",1],PARAMETER[\"false_easting\",3500000],PARAME");
     add_srs_wkt (p, 10,
-        "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28419\"]]");
-    p = add_epsg_def (filter, first, last, 28420, "epsg", 28420,
-        "Pulkovo 1942 / Gauss-Kruger zone 20");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22183\"]]");
+    p = add_epsg_def (filter, first, last, 22184, "epsg", 22184,
+        "POSGAR 94 / Argentina 4");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
-    add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 20\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 4\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR");
+        "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME");
     add_srs_wkt (p, 10,
-        "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28420\"]]");
-    p = add_epsg_def (filter, first, last, 28421, "epsg", 28421,
-        "Pulkovo 1942 / Gauss-Kruger zone 21");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22184\"]]");
+    p = add_epsg_def (filter, first, last, 22185, "epsg", 22185,
+        "POSGAR 94 / Argentina 5");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
-    add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 21\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 5\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR");
+        "0],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME");
     add_srs_wkt (p, 10,
-        "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28421\"]]");
-    p = add_epsg_def (filter, first, last, 28422, "epsg", 28422,
-        "Pulkovo 1942 / Gauss-Kruger zone 22");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22185\"]]");
+    p = add_epsg_def (filter, first, last, 22186, "epsg", 22186,
+        "POSGAR 94 / Argentina 6");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
-    add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 22\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 6\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR");
+        "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "_factor\",1],PARAMETER[\"false_easting\",6500000],PARAME");
     add_srs_wkt (p, 10,
-        "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28422\"]]");
-    p = add_epsg_def (filter, first, last, 28423, "epsg", 28423,
-        "Pulkovo 1942 / Gauss-Kruger zone 23");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22186\"]]");
+    p = add_epsg_def (filter, first, last, 22187, "epsg", 22187,
+        "POSGAR 94 / Argentina 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
-    add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 23\",GEOGCS[\"");
+        "PROJCS[\"POSGAR 94 / Argentina 7\",GEOGCS[\"POSGAR 94\",");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR");
+        "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "_factor\",1],PARAMETER[\"false_easting\",7500000],PARAME");
     add_srs_wkt (p, 10,
-        "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28423\"]]");
-    p = add_epsg_def (filter, first, last, 28424, "epsg", 28424,
-        "Pulkovo 1942 / Gauss-Kruger zone 24");
+        "PSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"22187\"]]");
+    p = add_epsg_def (filter, first, last, 22191, "epsg", 22191,
+        "Campo Inchauspe / Argentina 1");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 24\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 1\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR");
+        ",PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "actor\",1],PARAMETER[\"false_easting\",1500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28424\"]]");
-    p = add_epsg_def (filter, first, last, 28425, "epsg", 28425,
-        "Pulkovo 1942 / Gauss-Kruger zone 25");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22191\"]]");
+    p = add_epsg_def (filter, first, last, 22192, "epsg", 22192,
+        "Campo Inchauspe / Argentina 2");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 25\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 2\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR");
+        ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "actor\",1],PARAMETER[\"false_easting\",2500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28425\"]]");
-    p = add_epsg_def (filter, first, last, 28426, "epsg", 28426,
-        "Pulkovo 1942 / Gauss-Kruger zone 26");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22192\"]]");
+    p = add_epsg_def (filter, first, last, 22193, "epsg", 22193,
+        "Campo Inchauspe / Argentina 3");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 26\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 3\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR");
+        ",PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28426\"]]");
-    p = add_epsg_def (filter, first, last, 28427, "epsg", 28427,
-        "Pulkovo 1942 / Gauss-Kruger zone 27");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22193\"]]");
+    p = add_epsg_def (filter, first, last, 22194, "epsg", 22194,
+        "Campo Inchauspe / Argentina 4");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 27\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 4\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR");
+        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "actor\",1],PARAMETER[\"false_easting\",4500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28427\"]]");
-    p = add_epsg_def (filter, first, last, 28428, "epsg", 28428,
-        "Pulkovo 1942 / Gauss-Kruger zone 28");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22194\"]]");
+    p = add_epsg_def (filter, first, last, 22195, "epsg", 22195,
+        "Campo Inchauspe / Argentina 5");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 28\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 5\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR");
+        ",PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "actor\",1],PARAMETER[\"false_easting\",5500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28428\"]]");
-    p = add_epsg_def (filter, first, last, 28429, "epsg", 28429,
-        "Pulkovo 1942 / Gauss-Kruger zone 29");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22195\"]]");
+    p = add_epsg_def (filter, first, last, 22196, "epsg", 22196,
+        "Campo Inchauspe / Argentina 6");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 29\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 6\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR");
+        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
+        "actor\",1],PARAMETER[\"false_easting\",6500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28429\"]]");
-    p = add_epsg_def (filter, first, last, 28430, "epsg", 28430,
-        "Pulkovo 1942 / Gauss-Kruger zone 30");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22196\"]]");
+    p = add_epsg_def (filter, first, last, 22197, "epsg", 22197,
+        "Campo Inchauspe / Argentina 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=");
+        "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0");
     add_proj4text (p, 1,
-        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+        "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no");
     add_proj4text (p, 2,
-        ",-0.12 +units=m +no_defs");
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 30\",GEOGCS[\"");
+        "PROJCS[\"Campo Inchauspe / Argentina 7\",GEOGCS[\"Campo ");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\"");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90]");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR");
+        ",PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3");
+        "actor\",1],PARAMETER[\"false_easting\",7500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"28430\"]]");
-    p = add_epsg_def (filter, first, last, 28431, "epsg", 28431,
-        "Pulkovo 1942 / Gauss-Kruger zone 31");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"22197\"]]");
+    p = add_epsg_def (filter, first, last, 22234, "epsg", 22234,
+        "Cape / UTM zone 34S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0");
+        "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663");
     add_proj4text (p, 1,
-        "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8");
-    add_proj4text (p, 2,
-        "2,-0.12 +units=m +no_defs");
+        "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 31\",GEOGCS[\"");
+        "PROJCS[\"Cape / UTM zone 34S\",GEOGCS[\"Cape\",DATUM[\"C");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA");
+        "_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28431\"]]");
-    p = add_epsg_def (filter, first, last, 28432, "epsg", 28432,
-        "Pulkovo 1942 / Gauss-Kruger zone 32");
+        "HORITY[\"EPSG\",\"22234\"]]");
+    p = add_epsg_def (filter, first, last, 22235, "epsg", 22235,
+        "Cape / UTM zone 35S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0");
+        "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663");
     add_proj4text (p, 1,
-        "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8");
-    add_proj4text (p, 2,
-        "2,-0.12 +units=m +no_defs");
+        "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 32\",GEOGCS[\"");
+        "PROJCS[\"Cape / UTM zone 35S\",GEOGCS[\"Cape\",DATUM[\"C");
     add_srs_wkt (p, 1,
-        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
+        "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466");
     add_srs_wkt (p, 2,
-        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
+        "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29");
     add_srs_wkt (p, 3,
-        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
+        "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
+        "[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA");
+        "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28432\"]]");
-    p = add_epsg_def (filter, first, last, 28462, "epsg", 28462,
-        "Pulkovo 1942 / Gauss-Kruger 2N (deprecated)");
+        "HORITY[\"EPSG\",\"22235\"]]");
+    p = add_epsg_def (filter, first, last, 22236, "epsg", 22236,
+        "Cape / UTM zone 36S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e");
+        "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663");
     add_proj4text (p, 1,
-        "llps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.");
-    add_proj4text (p, 2,
-        "12 +units=m +no_defs");
+        "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 2N (deprecated)\",G");
+        "PROJCS[\"Cape / UTM zone 36S (deprecated)\",GEOGCS[\"Cap");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "e\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (Arc)\",637824");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "9.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PR");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "]],AUTHORITY[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
+        "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28462\"]]");
+        ",NORTH],AUTHORITY[\"EPSG\",\"22236\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_34.c b/src/srsinit/epsg_inlined_34.c
index a059653..acf6211 100644
--- a/src/srsinit/epsg_inlined_34.c
+++ b/src/srsinit/epsg_inlined_34.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3434 +52,3336 @@ initialize_epsg_34 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 28463, "epsg", 28463,
-        "Pulkovo 1942 / Gauss-Kruger 3N (deprecated)");
+    p = add_epsg_def (filter, first, last, 22275, "epsg", 22275,
+        "Cape / Lo15");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 3N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo15\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "central_meridian\",15],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22275");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28463\"]]");
-    p = add_epsg_def (filter, first, last, 28464, "epsg", 28464,
-        "Pulkovo 1942 / Gauss-Kruger 4N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22277, "epsg", 22277,
+        "Cape / Lo17");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 4N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo17\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2");
+        "central_meridian\",17],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22277");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28464\"]]");
-    p = add_epsg_def (filter, first, last, 28465, "epsg", 28465,
-        "Pulkovo 1942 / Gauss-Kruger 5N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22279, "epsg", 22279,
+        "Cape / Lo19");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 5N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo19\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2");
+        "central_meridian\",19],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22279");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28465\"]]");
-    p = add_epsg_def (filter, first, last, 28466, "epsg", 28466,
-        "Pulkovo 1942 / Gauss-Kruger 6N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22281, "epsg", 22281,
+        "Cape / Lo21");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 6N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo21\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3");
+        "central_meridian\",21],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22281");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28466\"]]");
-    p = add_epsg_def (filter, first, last, 28467, "epsg", 28467,
-        "Pulkovo 1942 / Gauss-Kruger 7N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22283, "epsg", 22283,
+        "Cape / Lo23");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 7N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo23\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3");
+        "central_meridian\",23],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22283");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28467\"]]");
-    p = add_epsg_def (filter, first, last, 28468, "epsg", 28468,
-        "Pulkovo 1942 / Gauss-Kruger 8N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22285, "epsg", 22285,
+        "Cape / Lo25");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 8N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo25\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4");
+        "central_meridian\",25],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22285");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28468\"]]");
-    p = add_epsg_def (filter, first, last, 28469, "epsg", 28469,
-        "Pulkovo 1942 / Gauss-Kruger 9N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22287, "epsg", 22287,
+        "Cape / Lo27");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 9N (deprecated)\",G");
+        "PROJCS[\"Cape / Lo27\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5");
+        "central_meridian\",27],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22287");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28469\"]]");
-    p = add_epsg_def (filter, first, last, 28470, "epsg", 28470,
-        "Pulkovo 1942 / Gauss-Kruger 10N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22289, "epsg", 22289,
+        "Cape / Lo29");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 10N (deprecated)\",");
+        "PROJCS[\"Cape / Lo29\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5");
+        "central_meridian\",29],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22289");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28470\"]]");
-    p = add_epsg_def (filter, first, last, 28471, "epsg", 28471,
-        "Pulkovo 1942 / Gauss-Kruger 11N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22291, "epsg", 22291,
+        "Cape / Lo31");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 11N (deprecated)\",");
+        "PROJCS[\"Cape / Lo31\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
+        "central_meridian\",31],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22291");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28471\"]]");
-    p = add_epsg_def (filter, first, last, 28472, "epsg", 28472,
-        "Pulkovo 1942 / Gauss-Kruger 12N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22293, "epsg", 22293,
+        "Cape / Lo33");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis=");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "08,-292,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 12N (deprecated)\",");
+        "PROJCS[\"Cape / Lo33\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",\"4222\"]],PROJECTION[\"Transverse_Mercator_South_Orien");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "tated\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
+        "central_meridian\",33],PARAMETER[\"scale_factor\",1],PAR");
     add_srs_wkt (p, 9,
-        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22293");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28472\"]]");
-    p = add_epsg_def (filter, first, last, 28473, "epsg", 28473,
-        "Pulkovo 1942 / Gauss-Kruger 13N (deprecated)");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22332, "epsg", 22332,
+        "Carthage / UTM zone 32N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
-    add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
-    add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "+proj=utm +zone=32 +datum=carthage +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 13N (deprecated)\",");
+        "PROJCS[\"Carthage / UTM zone 32N\",GEOGCS[\"Carthage\",D");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ".2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7");
+        "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28473\"]]");
-    p = add_epsg_def (filter, first, last, 28474, "epsg", 28474,
-        "Pulkovo 1942 / Gauss-Kruger 14N (deprecated)");
+        "AUTHORITY[\"EPSG\",\"22332\"]]");
+    p = add_epsg_def (filter, first, last, 22391, "epsg", 22391,
+        "Carthage / Nord Tunisie");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.99962554");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "4 +x_0=500000 +y_0=300000 +datum=carthage +units=m +no_d");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 14N (deprecated)\",");
+        "PROJCS[\"Carthage / Nord Tunisie\",GEOGCS[\"Carthage\",D");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ".2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36]");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
+        ",PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "actor\",0.999625544],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28474\"]]");
-    p = add_epsg_def (filter, first, last, 28475, "epsg", 28475,
-        "Pulkovo 1942 / Gauss-Kruger 15N (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"22391\"]]");
+    p = add_epsg_def (filter, first, last, 22392, "epsg", 22392,
+        "Carthage / Sud Tunisie");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.9996");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+        "25769 +x_0=500000 +y_0=300000 +datum=carthage +units=m +");
     add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 15N (deprecated)\",");
+        "PROJCS[\"Carthage / Sud Tunisie\",GEOGCS[\"Carthage\",DA");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "TUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "4[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIM");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "],AUTHORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
+        "3],PARAMETER[\"central_meridian\",9.9],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        "_factor\",0.999625769],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "0],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28475\"]]");
-    p = add_epsg_def (filter, first, last, 28476, "epsg", 28476,
-        "Pulkovo 1942 / Gauss-Kruger 16N (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"22392\"]]");
+    p = add_epsg_def (filter, first, last, 22521, "epsg", 22521,
+        "Corrego Alegre 1970-72 / UTM zone 21S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
-    add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "-6,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 16N (deprecated)\",");
+        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 21S\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28476\"]]");
-    p = add_epsg_def (filter, first, last, 28477, "epsg", 28477,
-        "Pulkovo 1942 / Gauss-Kruger 17N (deprecated)");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"22521\"]]");
+    p = add_epsg_def (filter, first, last, 22522, "epsg", 22522,
+        "Corrego Alegre 1970-72 / UTM zone 22S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,");
     add_proj4text (p, 1,
-        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
-    add_proj4text (p, 2,
-        ".12 +units=m +no_defs");
+        "-6,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 17N (deprecated)\",");
+        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 22S\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]");
     add_srs_wkt (p, 9,
-        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28477\"]]");
-    p = add_epsg_def (filter, first, last, 28478, "epsg", 28478,
-        "Pulkovo 1942 / Gauss-Kruger 18N (deprecated)");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"22522\"]]");
+    p = add_epsg_def (filter, first, last, 22523, "epsg", 22523,
+        "Corrego Alegre 1970-72 / UTM zone 23S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "-6,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 18N (deprecated)\",");
+        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 23S\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]");
     add_srs_wkt (p, 9,
-        "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28478\"]]");
-    p = add_epsg_def (filter, first, last, 28479, "epsg", 28479,
-        "Pulkovo 1942 / Gauss-Kruger 19N (deprecated)");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"22523\"]]");
+    p = add_epsg_def (filter, first, last, 22524, "epsg", 22524,
+        "Corrego Alegre 1970-72 / UTM zone 24S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "-6,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 19N (deprecated)\",");
+        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 24S\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]");
     add_srs_wkt (p, 9,
-        "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28479\"]]");
-    p = add_epsg_def (filter, first, last, 28480, "epsg", 28480,
-        "Pulkovo 1942 / Gauss-Kruger 20N (deprecated)");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"22524\"]]");
+    p = add_epsg_def (filter, first, last, 22525, "epsg", 22525,
+        "Corrego Alegre 1970-72 / UTM zone 25S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "-6,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 20N (deprecated)\",");
+        "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 25S\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "Y[\"EPSG\",\"7022\"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "RITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4225");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]");
     add_srs_wkt (p, 9,
-        "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28480\"]]");
-    p = add_epsg_def (filter, first, last, 28481, "epsg", 28481,
-        "Pulkovo 1942 / Gauss-Kruger 21N (deprecated)");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"22525\"]]");
+    p = add_epsg_def (filter, first, last, 22700, "epsg", 22700,
+        "Deir ez Zor / Levant Zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 ");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 21N (deprecated)\",");
+        "PROJCS[\"Deir ez Zor / Levant Zone\",GEOGCS[\"Deir ez Zo");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "r\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"EP");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "SG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PROJE");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "ude_of_origin\",34.65],PARAMETER[\"central_meridian\",37");
     add_srs_wkt (p, 9,
-        "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ".35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "alse_easting\",300000],PARAMETER[\"false_northing\",3000");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28481\"]]");
-    p = add_epsg_def (filter, first, last, 28482, "epsg", 28482,
-        "Pulkovo 1942 / Gauss-Kruger 22N (deprecated)");
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22700");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 22770, "epsg", 22770,
+        "Deir ez Zor / Syria Lambert");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 ");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 22N (deprecated)\",");
+        "PROJCS[\"Deir ez Zor / Syria Lambert\",GEOGCS[\"Deir ez ");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227\"]],PR");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "titude_of_origin\",34.65],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ",37.35],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "\"false_easting\",300000],PARAMETER[\"false_northing\",3");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28482\"]]");
-    p = add_epsg_def (filter, first, last, 28483, "epsg", 28483,
-        "Pulkovo 1942 / Gauss-Kruger 23N (deprecated)");
+        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22");
+    add_srs_wkt (p, 13,
+        "770\"]]");
+    p = add_epsg_def (filter, first, last, 22780, "epsg", 22780,
+        "Deir ez Zor / Levant Stereographic");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0=");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "0 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        ",238.69,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 23N (deprecated)\",");
+        "PROJCS[\"Deir ez Zor / Levant Stereographic\",GEOGCS[\"D");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "eir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 188");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "0 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        ",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "RITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4227");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "atitude_of_origin\",34.2],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        ",39.15],PARAMETER[\"scale_factor\",0.9995341],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28483\"]]");
-    p = add_epsg_def (filter, first, last, 28484, "epsg", 28484,
-        "Pulkovo 1942 / Gauss-Kruger 24N (deprecated)");
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22780\"]]");
+    p = add_epsg_def (filter, first, last, 22832, "epsg", 22832,
+        "Douala / UTM zone 32N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 24N (deprecated)\",");
+        "PROJCS[\"Douala / UTM zone 32N (deprecated)\",GEOGCS[\"D");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "ouala\",DATUM[\"Douala\",SPHEROID[\"Clarke 1880 (IGN)\",");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        ",\"4228\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
     add_srs_wkt (p, 9,
-        "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28484\"]]");
-    p = add_epsg_def (filter, first, last, 28485, "epsg", 28485,
-        "Pulkovo 1942 / Gauss-Kruger 25N (deprecated)");
+        "22832\"]]");
+    p = add_epsg_def (filter, first, last, 22991, "epsg", 22991,
+        "Egypt 1907 / Blue Belt");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=11");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 25N (deprecated)\",");
+        "PROJCS[\"Egypt 1907 / Blue Belt\",GEOGCS[\"Egypt 1907\",");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,2");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "eridian\",35],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "false_easting\",300000],PARAMETER[\"false_northing\",110");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28485\"]]");
-    p = add_epsg_def (filter, first, last, 28486, "epsg", 28486,
-        "Pulkovo 1942 / Gauss-Kruger 26N (deprecated)");
+        "EPSG\",\"22991\"]]");
+    p = add_epsg_def (filter, first, last, 22992, "epsg", 22992,
+        "Egypt 1907 / Red Belt");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 26N (deprecated)\",");
+        "PROJCS[\"Egypt 1907 / Red Belt\",GEOGCS[\"Egypt 1907\",D");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "ATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,29");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "8.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,0");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "RAMETER[\"latitude_of_origin\",30],PARAMETER[\"central_m");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "eridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "false_easting\",615000],PARAMETER[\"false_northing\",810");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28486\"]]");
-    p = add_epsg_def (filter, first, last, 28487, "epsg", 28487,
-        "Pulkovo 1942 / Gauss-Kruger 27N (deprecated)");
+        "EPSG\",\"22992\"]]");
+    p = add_epsg_def (filter, first, last, 22993, "epsg", 22993,
+        "Egypt 1907 / Purple Belt");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=20");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 27N (deprecated)\",");
+        "PROJCS[\"Egypt 1907 / Purple Belt\",GEOGCS[\"Egypt 1907\"");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        ",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[");
     add_srs_wkt (p, 9,
-        "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "\"false_easting\",700000],PARAMETER[\"false_northing\",2");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28487\"]]");
-    p = add_epsg_def (filter, first, last, 28488, "epsg", 28488,
-        "Pulkovo 1942 / Gauss-Kruger 28N (deprecated)");
+        "\"EPSG\",\"22993\"]]");
+    p = add_epsg_def (filter, first, last, 22994, "epsg", 22994,
+        "Egypt 1907 / Extended Purple Belt");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=12");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+        "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit");
     add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        "s=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 28N (deprecated)\",");
+        "PROJCS[\"Egypt 1907 / Extended Purple Belt\",GEOGCS[\"Eg");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "ypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\"");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        ",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-13");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "0,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "UTHORITY[\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "cator\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "\"central_meridian\",27],PARAMETER[\"scale_factor\",1],P");
     add_srs_wkt (p, 9,
-        "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "thing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28488\"]]");
-    p = add_epsg_def (filter, first, last, 28489, "epsg", 28489,
-        "Pulkovo 1942 / Gauss-Kruger 29N (deprecated)");
+        "AUTHORITY[\"EPSG\",\"22994\"]]");
+    p = add_epsg_def (filter, first, last, 23028, "epsg", 23028,
+        "ED50 / UTM zone 28N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=28 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 29N (deprecated)\",");
+        "PROJCS[\"ED50 / UTM zone 28N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "l_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28489\"]]");
-    p = add_epsg_def (filter, first, last, 28490, "epsg", 28490,
-        "Pulkovo 1942 / Gauss-Kruger 30N (deprecated)");
+        "Y[\"EPSG\",\"23028\"]]");
+    p = add_epsg_def (filter, first, last, 23029, "epsg", 23029,
+        "ED50 / UTM zone 29N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 ");
+        "+proj=utm +zone=29 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
-    add_proj4text (p, 2,
-        "0.12 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 30N (deprecated)\",");
+        "PROJCS[\"ED50 / UTM zone 29N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "l_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28490\"]]");
-    p = add_epsg_def (filter, first, last, 28491, "epsg", 28491,
-        "Pulkovo 1942 / Gauss-Kruger 31N (deprecated)");
+        "[\"EPSG\",\"23029\"]]");
+    p = add_epsg_def (filter, first, last, 23030, "epsg", 23030,
+        "ED50 / UTM zone 30N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0");
+        "+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 31N (deprecated)\",");
+        "PROJCS[\"ED50 / UTM zone 30N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "l_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28491\"]]");
-    p = add_epsg_def (filter, first, last, 28492, "epsg", 28492,
-        "Pulkovo 1942 / Gauss-Kruger 32N (deprecated)");
+        "[\"EPSG\",\"23030\"]]");
+    p = add_epsg_def (filter, first, last, 23031, "epsg", 23031,
+        "ED50 / UTM zone 31N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0");
+        "+proj=utm +zone=31 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
-    add_proj4text (p, 2,
-        "-0.12 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 32N (deprecated)\",");
+        "PROJCS[\"ED50 / UTM zone 31N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "l_meridian\",3],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 11,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],");
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28492\"]]");
-    p = add_epsg_def (filter, first, last, 28600, "epsg", 28600,
-        "Qatar 1974 / Qatar National Grid");
+        "\"EPSG\",\"23031\"]]");
+    p = add_epsg_def (filter, first, last, 23032, "epsg", 23032,
+        "ED50 / UTM zone 32N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9");
+        "+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-128.1");
-    add_proj4text (p, 2,
-        "6,-282.42,21.93,0,0,0,0 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Qatar 1974 / Qatar National Grid\",GEOGCS[\"Qat");
+        "PROJCS[\"ED50 / UTM zone 32N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "ar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"International ");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\"EPSG\",\"628");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4285\"]],PROJECTION[\"T");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "4.45],PARAMETER[\"central_meridian\",51.21666666666667],");
+        "l_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PARAM");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_ea");
+        "ETER[\"false_easting\",500000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 10,
-        "sting\",200000],PARAMETER[\"false_northing\",300000],UNI");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "28600\"]]");
-    p = add_epsg_def (filter, first, last, 28991, "epsg", 28991,
-        "Amersfoort / RD Old");
+        "\"EPSG\",\"23032\"]]");
+    p = add_epsg_def (filter, first, last, 23033, "epsg", 23033,
+        "ED50 / UTM zone 33N");
     add_proj4text (p, 0,
-        "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888");
+        "+proj=utm +zone=33 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "88889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +towgs84=");
-    add_proj4text (p, 2,
-        "565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.072");
-    add_proj4text (p, 3,
-        "5 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Amersfoort / RD Old\",GEOGCS[\"Amersfoort\",DAT");
+        "PROJCS[\"ED50 / UTM zone 33N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent");
+        "l_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "r\",0.9999079],PARAMETER[\"false_easting\",0],PARAMETER[");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
-    add_srs_wkt (p, 13,
-        "[\"EPSG\",\"28991\"]]");
-    p = add_epsg_def (filter, first, last, 28992, "epsg", 28992,
-        "Amersfoort / RD New");
+        "[\"EPSG\",\"23033\"]]");
+    p = add_epsg_def (filter, first, last, 23034, "epsg", 23034,
+        "ED50 / UTM zone 34N");
     add_proj4text (p, 0,
-        "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888");
+        "+proj=utm +zone=34 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel");
-    add_proj4text (p, 2,
-        " +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.");
-    add_proj4text (p, 3,
-        "8774,4.0725 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DAT");
+        "PROJCS[\"ED50 / UTM zone 34N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent");
+        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "r\",0.9999079],PARAMETER[\"false_easting\",155000],PARAM");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "ETER[\"false_northing\",463000],UNIT[\"metre\",1,AUTHORI");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
-    add_srs_wkt (p, 13,
-        "],AUTHORITY[\"EPSG\",\"28992\"]]");
-    p = add_epsg_def (filter, first, last, 29100, "epsg", 29100,
-        "SAD69 / Brazil Polyconic (deprecated)");
+        "[\"EPSG\",\"23034\"]]");
+    p = add_epsg_def (filter, first, last, 23035, "epsg", 23035,
+        "ED50 / UTM zone 35N");
     add_proj4text (p, 0,
-        "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000");
+        "+proj=utm +zone=35 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "0 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_d");
-    add_proj4text (p, 2,
-        "efs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / Brazil Polyconic (deprecated)\",GEOGCS[");
+        "PROJCS[\"ED50 / UTM zone 35N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"70");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "36\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\",\"9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "Polyconic\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",-54],PARAMETER[\"false_easting\"");
+        "l_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        ",5000000],PARAMETER[\"false_northing\",10000000],UNIT[\"");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29100\"]]");
-    p = add_epsg_def (filter, first, last, 29101, "epsg", 29101,
-        "SAD69 / Brazil Polyconic");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 12,
+        "[\"EPSG\",\"23035\"]]");
+    p = add_epsg_def (filter, first, last, 23036, "epsg", 23036,
+        "ED50 / UTM zone 36N");
     add_proj4text (p, 0,
-        "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000");
+        "+proj=utm +zone=36 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        "0 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no");
-    add_proj4text (p, 2,
-        "_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / Brazil Polyconic\",GEOGCS[\"SAD69\",DAT");
+        "PROJCS[\"ED50 / UTM zone 36N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Polyconic\"");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-54],PARAMETER[\"false_easting\",5000000],P");
+        "l_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29101\"]]");
-    p = add_epsg_def (filter, first, last, 29118, "epsg", 29118,
-        "SAD69 / UTM zone 18N (deprecated)");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 12,
+        "[\"EPSG\",\"23036\"]]");
+    p = add_epsg_def (filter, first, last, 23037, "epsg", 23037,
+        "ED50 / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
+        "+proj=utm +zone=37 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        ",0 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 18N (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"ED50 / UTM zone 37N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac");
+        "l_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29118\"]]");
-    p = add_epsg_def (filter, first, last, 29119, "epsg", 29119,
-        "SAD69 / UTM zone 19N (deprecated)");
+        "[\"EPSG\",\"23037\"]]");
+    p = add_epsg_def (filter, first, last, 23038, "epsg", 23038,
+        "ED50 / UTM zone 38N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
+        "+proj=utm +zone=38 +ellps=intl +towgs84=-87,-98,-121,0,0");
     add_proj4text (p, 1,
-        ",0 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 19N (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"ED50 / UTM zone 38N\",GEOGCS[\"ED50\",DATUM[\"E");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "uropean_Datum_1950\",SPHEROID[\"International 1924\",637");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac");
+        "l_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29119\"]]");
-    p = add_epsg_def (filter, first, last, 29120, "epsg", 29120,
-        "SAD69 / UTM zone 20N (deprecated)");
+        "[\"EPSG\",\"23038\"]]");
+    p = add_epsg_def (filter, first, last, 23090, "epsg", 23090,
+        "ED50 / TM 0 N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
+        "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0");
     add_proj4text (p, 1,
-        ",0 +units=m +no_defs");
+        "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n");
+    add_proj4text (p, 2,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 20N (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"ED50 / TM 0 N\",GEOGCS[\"ED50\",DATUM[\"Europea");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "n_Datum_1950\",SPHEROID[\"International 1924\",6378388,2");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "SG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac");
+        "dian\",0],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29120\"]]");
-    p = add_epsg_def (filter, first, last, 29121, "epsg", 29121,
-        "SAD69 / UTM zone 21N (deprecated)");
+        ",\"23090\"]]");
+    p = add_epsg_def (filter, first, last, 23095, "epsg", 23095,
+        "ED50 / TM 5 NE");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
+        "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0");
     add_proj4text (p, 1,
-        ",0 +units=m +no_defs");
+        "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n");
+    add_proj4text (p, 2,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 21N (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"ED50 / TM 5 NE\",GEOGCS[\"ED50\",DATUM[\"Europe");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "RAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_me");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac");
+        "ridian\",5],PARAMETER[\"scale_factor\",0.9996],PARAMETER");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29121\"]]");
-    p = add_epsg_def (filter, first, last, 29122, "epsg", 29122,
-        "SAD69 / UTM zone 22N (deprecated)");
+        "G\",\"23095\"]]");
+    p = add_epsg_def (filter, first, last, 23239, "epsg", 23239,
+        "Fahud / UTM zone 39N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
+        "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-346,-1,224,0,");
     add_proj4text (p, 1,
-        ",0 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 22N (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"Fahud / UTM zone 39N\",GEOGCS[\"Fahud\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac");
+        "dian\",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29122\"]]");
-    p = add_epsg_def (filter, first, last, 29168, "epsg", 29168,
-        "SAD69 / UTM zone 18N");
+        "G\",\"23239\"]]");
+    p = add_epsg_def (filter, first, last, 23240, "epsg", 23240,
+        "Fahud / UTM zone 40N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
+        "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-346,-1,224,0,");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 18N\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"Fahud / UTM zone 40N\",GEOGCS[\"Fahud\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "SG\",\"4232\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
     add_srs_wkt (p, 8,
-        "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999");
+        "dian\",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"29168\"]]");
-    p = add_epsg_def (filter, first, last, 29169, "epsg", 29169,
-        "SAD69 / UTM zone 19N");
+        "G\",\"23240\"]]");
+    p = add_epsg_def (filter, first, last, 23433, "epsg", 23433,
+        "Garoua / UTM zone 33N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
+        "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 19N\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"Garoua / UTM zone 33N (deprecated)\",GEOGCS[\"G");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "aroua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 1880 (IGN)\",");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        ",\"4234\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999");
+        "\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"29169\"]]");
-    p = add_epsg_def (filter, first, last, 29170, "epsg", 29170,
-        "SAD69 / UTM zone 20N");
+        "\"23433\"]]");
+    p = add_epsg_def (filter, first, last, 23700, "epsg", 23700,
+        "HD72 / EOV");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
+        "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67");
+    add_proj4text (p, 2,
+        " +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 20N\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"HD72 / EOV\",GEOGCS[\"HD72\",DATUM[\"Hungarian_");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "Datum_1972\",SPHEROID[\"GRS 1967\",6378160,298.247167427");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        ",AUTHORITY[\"EPSG\",\"7036\"]],TOWGS84[52.17,-71.82,-14.");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "9,0,0,0,0],AUTHORITY[\"EPSG\",\"6237\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "[\"EPSG\",\"4237\"]],PROJECTION[\"Hotine_Oblique_Mercato");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "r_Azimuth_Center\"],PARAMETER[\"latitude_of_center\",47.");
     add_srs_wkt (p, 8,
-        "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999");
+        "14439372222222],PARAMETER[\"longitude_of_center\",19.048");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "57177777778],PARAMETER[\"azimuth\",90],PARAMETER[\"recti");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "fied_grid_angle\",90],PARAMETER[\"scale_factor\",0.99993");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        "],PARAMETER[\"false_easting\",650000],PARAMETER[\"false_");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"29170\"]]");
-    p = add_epsg_def (filter, first, last, 29171, "epsg", 29171,
-        "SAD69 / UTM zone 21N");
+        "northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 14,
+        "EPSG\",\"23700\"]]");
+    p = add_epsg_def (filter, first, last, 23830, "epsg", 23830,
+        "DGN95 / Indonesia TM-3 zone 46.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
+        "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 21N\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 46.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",94.5],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"29171\"]]");
-    p = add_epsg_def (filter, first, last, 29172, "epsg", 29172,
-        "SAD69 / UTM zone 22N");
+        "AUTHORITY[\"EPSG\",\"23830\"]]");
+    p = add_epsg_def (filter, first, last, 23831, "epsg", 23831,
+        "DGN95 / Indonesia TM-3 zone 47.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
+        "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +");
     add_proj4text (p, 1,
-        ",0,0 +units=m +no_defs");
+        "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 22N\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",97.5],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "r\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETE");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "R[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"29172\"]]");
-    p = add_epsg_def (filter, first, last, 29177, "epsg", 29177,
-        "SAD69 / UTM zone 17S (deprecated)");
+        "AUTHORITY[\"EPSG\",\"23831\"]]");
+    p = add_epsg_def (filter, first, last, 23832, "epsg", 23832,
+        "DGN95 / Indonesia TM-3 zone 47.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 17S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",100.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29177\"]]");
-    p = add_epsg_def (filter, first, last, 29178, "epsg", 29178,
-        "SAD69 / UTM zone 18S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23832\"]]");
+    p = add_epsg_def (filter, first, last, 23833, "epsg", 23833,
+        "DGN95 / Indonesia TM-3 zone 48.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 18S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",103.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29178\"]]");
-    p = add_epsg_def (filter, first, last, 29179, "epsg", 29179,
-        "SAD69 / UTM zone 19S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23833\"]]");
+    p = add_epsg_def (filter, first, last, 23834, "epsg", 23834,
+        "DGN95 / Indonesia TM-3 zone 48.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 19S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",106.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29179\"]]");
-    p = add_epsg_def (filter, first, last, 29180, "epsg", 29180,
-        "SAD69 / UTM zone 20S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23834\"]]");
+    p = add_epsg_def (filter, first, last, 23835, "epsg", 23835,
+        "DGN95 / Indonesia TM-3 zone 49.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 20S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",109.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29180\"]]");
-    p = add_epsg_def (filter, first, last, 29181, "epsg", 29181,
-        "SAD69 / UTM zone 21S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23835\"]]");
+    p = add_epsg_def (filter, first, last, 23836, "epsg", 23836,
+        "DGN95 / Indonesia TM-3 zone 49.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 21S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",112.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29181\"]]");
-    p = add_epsg_def (filter, first, last, 29182, "epsg", 29182,
-        "SAD69 / UTM zone 22S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23836\"]]");
+    p = add_epsg_def (filter, first, last, 23837, "epsg", 23837,
+        "DGN95 / Indonesia TM-3 zone 50.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 22S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",115.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29182\"]]");
-    p = add_epsg_def (filter, first, last, 29183, "epsg", 29183,
-        "SAD69 / UTM zone 23S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23837\"]]");
+    p = add_epsg_def (filter, first, last, 23838, "epsg", 23838,
+        "DGN95 / Indonesia TM-3 zone 50.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 23S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",118.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29183\"]]");
-    p = add_epsg_def (filter, first, last, 29184, "epsg", 29184,
-        "SAD69 / UTM zone 24S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23838\"]]");
+    p = add_epsg_def (filter, first, last, 23839, "epsg", 23839,
+        "DGN95 / Indonesia TM-3 zone 51.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 24S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",121.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29184\"]]");
-    p = add_epsg_def (filter, first, last, 29185, "epsg", 29185,
-        "SAD69 / UTM zone 25S (deprecated)");
+        ",AUTHORITY[\"EPSG\",\"23839\"]]");
+    p = add_epsg_def (filter, first, last, 23840, "epsg", 23840,
+        "DGN95 / Indonesia TM-3 zone 51.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-4");
+        "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "1,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 25S (deprecated)\",GEOGCS[\"SA");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac");
+        "METER[\"central_meridian\",124.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29185\"]]");
-    p = add_epsg_def (filter, first, last, 29187, "epsg", 29187,
-        "SAD69 / UTM zone 17S");
+        ",AUTHORITY[\"EPSG\",\"23840\"]]");
+    p = add_epsg_def (filter, first, last, 23841, "epsg", 23841,
+        "DGN95 / Indonesia TM-3 zone 52.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 17S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",127.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29187\"]]");
-    p = add_epsg_def (filter, first, last, 29188, "epsg", 29188,
-        "SAD69 / UTM zone 18S");
+        ",AUTHORITY[\"EPSG\",\"23841\"]]");
+    p = add_epsg_def (filter, first, last, 23842, "epsg", 23842,
+        "DGN95 / Indonesia TM-3 zone 52.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 18S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",130.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29188\"]]");
-    p = add_epsg_def (filter, first, last, 29189, "epsg", 29189,
-        "SAD69 / UTM zone 19S");
+        ",AUTHORITY[\"EPSG\",\"23842\"]]");
+    p = add_epsg_def (filter, first, last, 23843, "epsg", 23843,
+        "DGN95 / Indonesia TM-3 zone 53.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 19S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",133.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29189\"]]");
-    p = add_epsg_def (filter, first, last, 29190, "epsg", 29190,
-        "SAD69 / UTM zone 20S");
+        ",AUTHORITY[\"EPSG\",\"23843\"]]");
+    p = add_epsg_def (filter, first, last, 23844, "epsg", 23844,
+        "DGN95 / Indonesia TM-3 zone 53.2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 20S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.2\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",136.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29190\"]]");
-    p = add_epsg_def (filter, first, last, 29191, "epsg", 29191,
-        "SAD69 / UTM zone 21S");
+        ",AUTHORITY[\"EPSG\",\"23844\"]]");
+    p = add_epsg_def (filter, first, last, 23845, "epsg", 23845,
+        "DGN95 / Indonesia TM-3 zone 54.1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 ");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 21S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"DGN95 / Indonesia TM-3 zone 54.1\",GEOGCS[\"DGN");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",139.5],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "ER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29191\"]]");
-    p = add_epsg_def (filter, first, last, 29192, "epsg", 29192,
-        "SAD69 / UTM zone 22S");
+        ",AUTHORITY[\"EPSG\",\"23845\"]]");
+    p = add_epsg_def (filter, first, last, 23846, "epsg", 23846,
+        "ID74 / UTM zone 46N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 22S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"ID74 / UTM zone 46N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",93],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29192\"]]");
-    p = add_epsg_def (filter, first, last, 29193, "epsg", 29193,
-        "SAD69 / UTM zone 23S");
+        "H],AUTHORITY[\"EPSG\",\"23846\"]]");
+    p = add_epsg_def (filter, first, last, 23847, "epsg", 23847,
+        "ID74 / UTM zone 47N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 23S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"ID74 / UTM zone 47N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-45],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29193\"]]");
-    p = add_epsg_def (filter, first, last, 29194, "epsg", 29194,
-        "SAD69 / UTM zone 24S");
+        "H],AUTHORITY[\"EPSG\",\"23847\"]]");
+    p = add_epsg_def (filter, first, last, 23848, "epsg", 23848,
+        "ID74 / UTM zone 48N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 24S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"ID74 / UTM zone 48N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-39],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",105],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29194\"]]");
-    p = add_epsg_def (filter, first, last, 29195, "epsg", 29195,
-        "SAD69 / UTM zone 25S");
+        "ORTH],AUTHORITY[\"EPSG\",\"23848\"]]");
+    p = add_epsg_def (filter, first, last, 23849, "epsg", 23849,
+        "ID74 / UTM zone 49N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-57,1,");
+        "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "-41,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SAD69 / UTM zone 25S\",GEOGCS[\"SAD69\",DATUM[\"");
+        "PROJCS[\"ID74 / UTM zone 49N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "central_meridian\",-33],PARAMETER[\"scale_factor\",0.999");
+        "METER[\"central_meridian\",111],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"29195\"]]");
-    p = add_epsg_def (filter, first, last, 29220, "epsg", 29220,
-        "Sapper Hill 1943 / UTM zone 20S");
+        "ORTH],AUTHORITY[\"EPSG\",\"23849\"]]");
+    p = add_epsg_def (filter, first, last, 23850, "epsg", 23850,
+        "ID74 / UTM zone 50N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,7");
+        "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "2,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Sapper Hill 1943 / UTM zone 20S\",GEOGCS[\"Sapp");
+        "PROJCS[\"ID74 / UTM zone 50N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
+        "METER[\"central_meridian\",117],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29220\"]]");
-    p = add_epsg_def (filter, first, last, 29221, "epsg", 29221,
-        "Sapper Hill 1943 / UTM zone 21S");
+        "ORTH],AUTHORITY[\"EPSG\",\"23850\"]]");
+    p = add_epsg_def (filter, first, last, 23851, "epsg", 23851,
+        "ID74 / UTM zone 51N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,7");
+        "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "2,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Sapper Hill 1943 / UTM zone 21S\",GEOGCS[\"Sapp");
+        "PROJCS[\"ID74 / UTM zone 51N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
+        "METER[\"central_meridian\",123],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29221\"]]");
-    p = add_epsg_def (filter, first, last, 29333, "epsg", 29333,
-        "Schwarzeck / UTM zone 33S");
+        "ORTH],AUTHORITY[\"EPSG\",\"23851\"]]");
+    p = add_epsg_def (filter, first, last, 23852, "epsg", 23852,
+        "ID74 / UTM zone 52N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +south +ellps=bess_nam +towgs84=616,9");
+        "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "7,-251,0,0,0,0 +units=m +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / UTM zone 33S\",GEOGCS[\"Schwarzeck");
+        "PROJCS[\"ID74 / UTM zone 52N\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\"");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        ",6377483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "\"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "293\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_");
+        "METER[\"central_meridian\",129],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29333\"]]");
-    p = add_epsg_def (filter, first, last, 29371, "epsg", 29371,
-        "Schwarzeck / Lo22/11");
+        "ORTH],AUTHORITY[\"EPSG\",\"23852\"]]");
+    p = add_epsg_def (filter, first, last, 23853, "epsg", 23853,
+        "ID74 / UTM zone 53N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=11 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +towgs");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/11\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"ID74 / UTM zone 53N (deprecated)\",GEOGCS[\"ID7");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",11],PAR");
+        "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29371\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29373, "epsg", 29373,
-        "Schwarzeck / Lo22/13");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23853\"]]");
+    p = add_epsg_def (filter, first, last, 23866, "epsg", 23866,
+        "DGN95 / UTM zone 46N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=13 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/13\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 46N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",13],PAR");
+        "l_meridian\",93],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29373\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29375, "epsg", 29375,
-        "Schwarzeck / Lo22/15");
+        "[\"EPSG\",\"23866\"]]");
+    p = add_epsg_def (filter, first, last, 23867, "epsg", 23867,
+        "DGN95 / UTM zone 47N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/15\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 47N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",15],PAR");
+        "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29375\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29377, "epsg", 29377,
-        "Schwarzeck / Lo22/17");
+        "[\"EPSG\",\"23867\"]]");
+    p = add_epsg_def (filter, first, last, 23868, "epsg", 23868,
+        "DGN95 / UTM zone 48N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/17\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 48N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",17],PAR");
+        "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29377\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29379, "epsg", 29379,
-        "Schwarzeck / Lo22/19");
+        "Y[\"EPSG\",\"23868\"]]");
+    p = add_epsg_def (filter, first, last, 23869, "epsg", 23869,
+        "DGN95 / UTM zone 49N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/19\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 49N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",19],PAR");
+        "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29379\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29381, "epsg", 29381,
-        "Schwarzeck / Lo22/21");
+        "Y[\"EPSG\",\"23869\"]]");
+    p = add_epsg_def (filter, first, last, 23870, "epsg", 23870,
+        "DGN95 / UTM zone 50N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/21\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 50N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",21],PAR");
+        "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29381\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29383, "epsg", 29383,
-        "Schwarzeck / Lo22/23");
+        "Y[\"EPSG\",\"23870\"]]");
+    p = add_epsg_def (filter, first, last, 23871, "epsg", 23871,
+        "DGN95 / UTM zone 51N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/23\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 51N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",23],PAR");
+        "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29383\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29385, "epsg", 29385,
-        "Schwarzeck / Lo22/25");
+        "Y[\"EPSG\",\"23871\"]]");
+    p = add_epsg_def (filter, first, last, 23872, "epsg", 23872,
+        "DGN95 / UTM zone 52N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=-22 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axi");
+        "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
-    add_proj4text (p, 2,
-        "eter=1.0000135965 +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Schwarzeck / Lo22/25\",GEOGCS[\"Schwarzeck\",DA");
+        "PROJCS[\"DGN95 / UTM zone 52N\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "_of_origin\",-22],PARAMETER[\"central_meridian\",25],PAR");
+        "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29385\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29635, "epsg", 29635,
-        "Sudan / UTM zone 35N (deprecated)");
+        "Y[\"EPSG\",\"23872\"]]");
+    p = add_epsg_def (filter, first, last, 23877, "epsg", 23877,
+        "DGN95 / UTM zone 47S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_");
+        "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Sudan / UTM zone 35N (deprecated)\",GEOGCS[\"Su");
+        "PROJCS[\"DGN95 / UTM zone 47S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
+        "l_meridian\",99],PARAMETER[\"scale_factor\",0.9996],PARA");
     add_srs_wkt (p, 9,
-        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
+        "ng\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "35\"]]");
-    p = add_epsg_def (filter, first, last, 29636, "epsg", 29636,
-        "Sudan / UTM zone 36N (deprecated)");
+        "THORITY[\"EPSG\",\"23877\"]]");
+    p = add_epsg_def (filter, first, last, 23878, "epsg", 23878,
+        "DGN95 / UTM zone 48S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_");
+        "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Sudan / UTM zone 36N (deprecated)\",GEOGCS[\"Su");
+        "PROJCS[\"DGN95 / UTM zone 48S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
+        "l_meridian\",105],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "36\"]]");
-    p = add_epsg_def (filter, first, last, 29700, "epsg", 29700,
-        "Tananarive (Paris) / Laborde Grid (deprecated)");
+        "UTHORITY[\"EPSG\",\"23878\"]]");
+    p = add_epsg_def (filter, first, last, 23879, "epsg", 23879,
+        "DGN95 / UTM zone 49S");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=");
+        "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm");
-    add_proj4text (p, 2,
-        "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa");
-    add_proj4text (p, 3,
-        "ris +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tananarive (Paris) / Laborde Grid (deprecated)\"");
+        "PROJCS[\"DGN95 / UTM zone 49S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_P");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "aris\",SPHEROID[\"International 1924\",6378388,297,AUTHO");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "RITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.3372291");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "7,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PA");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "RAMETER[\"latitude_of_center\",-21],PARAMETER[\"longitud");
+        "l_meridian\",111],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "e_of_center\",49],PARAMETER[\"azimuth\",21],PARAMETER[\"");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "rectified_grid_angle\",21],PARAMETER[\"scale_factor\",0.");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "9995],PARAMETER[\"false_easting\",400000],PARAMETER[\"fa");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "lse_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 13,
-        "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
-    add_srs_wkt (p, 14,
-        "TY[\"EPSG\",\"29700\"]]");
-    p = add_epsg_def (filter, first, last, 29702, "epsg", 29702,
-        "Tananarive (Paris) / Laborde Grid approximation");
+        "UTHORITY[\"EPSG\",\"23879\"]]");
+    p = add_epsg_def (filter, first, last, 23880, "epsg", 23880,
+        "DGN95 / UTM zone 50S");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=");
+        "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm");
-    add_proj4text (p, 2,
-        "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa");
-    add_proj4text (p, 3,
-        "ris +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tananarive (Paris) / Laborde Grid approximation");
+        "PROJCS[\"DGN95 / UTM zone 50S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "_Paris\",SPHEROID[\"International 1924\",6378388,297,AUT");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EP");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "SG\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"latitude_of_center\",-21],PARAMETER[\"longit");
+        "l_meridian\",117],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "ude_of_center\",49],PARAMETER[\"azimuth\",21],PARAMETER[");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "\"rectified_grid_angle\",21],PARAMETER[\"scale_factor\",");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "0.9995],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "false_northing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EP");
-    add_srs_wkt (p, 13,
-        "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO");
-    add_srs_wkt (p, 14,
-        "RITY[\"EPSG\",\"29702\"]]");
-    p = add_epsg_def (filter, first, last, 29738, "epsg", 29738,
-        "Tananarive / UTM zone 38S");
+        "UTHORITY[\"EPSG\",\"23880\"]]");
+    p = add_epsg_def (filter, first, last, 23881, "epsg", 23881,
+        "DGN95 / UTM zone 51S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242");
+        "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        ",-91,0,0,0,0 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tananarive / UTM zone 38S\",GEOGCS[\"Tananarive");
+        "PROJCS[\"DGN95 / UTM zone 51S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0.");
+        "l_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29738\"]]");
-    p = add_epsg_def (filter, first, last, 29739, "epsg", 29739,
-        "Tananarive / UTM zone 39S");
+        "UTHORITY[\"EPSG\",\"23881\"]]");
+    p = add_epsg_def (filter, first, last, 23882, "epsg", 23882,
+        "DGN95 / UTM zone 52S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242");
+        "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        ",-91,0,0,0,0 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tananarive / UTM zone 39S\",GEOGCS[\"Tananarive");
+        "PROJCS[\"DGN95 / UTM zone 52S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "R[\"central_meridian\",51],PARAMETER[\"scale_factor\",0.");
+        "l_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"29739\"]]");
-    p = add_epsg_def (filter, first, last, 29849, "epsg", 29849,
-        "Timbalai 1948 / UTM zone 49N");
+        "UTHORITY[\"EPSG\",\"23882\"]]");
+    p = add_epsg_def (filter, first, last, 23883, "epsg", 23883,
+        "DGN95 / UTM zone 53S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +ellps=evrstSS +towgs84=-533.4,669.2,");
+        "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "-52.5,0,0,4.28,9.4 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Timbalai 1948 / UTM zone 49N\",GEOGCS[\"Timbala");
+        "PROJCS[\"DGN95 / UTM zone 53S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "SG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4]");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AU");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "\"4298\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_meridian\",135],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "29849\"]]");
-    p = add_epsg_def (filter, first, last, 29850, "epsg", 29850,
-        "Timbalai 1948 / UTM zone 50N");
+        "UTHORITY[\"EPSG\",\"23883\"]]");
+    p = add_epsg_def (filter, first, last, 23884, "epsg", 23884,
+        "DGN95 / UTM zone 54S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +ellps=evrstSS +towgs84=-533.4,669.2,");
+        "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "-52.5,0,0,4.28,9.4 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Timbalai 1948 / UTM zone 50N\",GEOGCS[\"Timbala");
+        "PROJCS[\"DGN95 / UTM zone 54S\",GEOGCS[\"DGN95\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830");
+        "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813");
     add_srs_wkt (p, 2,
-        " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP");
+        "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "SG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4]");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AU");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "TY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "\"4298\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_meridian\",141],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "29850\"]]");
-    p = add_epsg_def (filter, first, last, 29871, "epsg", 29871,
-        "Timbalai 1948 / RSO Borneo (ch)");
+        "UTHORITY[\"EPSG\",\"23884\"]]");
+    p = add_epsg_def (filter, first, last, 23886, "epsg", 23886,
+        "ID74 / UTM zone 46S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 ");
+        "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "+k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 ");
-    add_proj4text (p, 2,
-        "+gamma=53.13010236111111 +ellps=evrstSS +towgs84=-533.4,");
-    add_proj4text (p, 3,
-        "669.2,-52.5,0,0,4.28,9.4 +to_meter=20.11676512155263 +no");
-    add_proj4text (p, 4,
-        "_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Timbalai 1948 / RSO Borneo (ch)\",GEOGCS[\"Timb");
+        "PROJCS[\"ID74 / UTM zone 46S (deprecated)\",GEOGCS[\"ID7");
     add_srs_wkt (p, 1,
-        "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1");
+        "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia");
     add_srs_wkt (p, 2,
-        "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"");
+        "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.");
+        ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,");
+        ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of");
+        "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA");
+        "],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
     add_srs_wkt (p, 12,
-        "ing\",29352.4763],PARAMETER[\"false_northing\",22014.357");
-    add_srs_wkt (p, 13,
-        "2],UNIT[\"British chain (Sears 1922)\",20.11676512155263");
-    add_srs_wkt (p, 14,
-        ",AUTHORITY[\"EPSG\",\"9042\"]],AXIS[\"Easting\",EAST],AX");
-    add_srs_wkt (p, 15,
-        "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29871\"]]");
-    p = add_epsg_def (filter, first, last, 29872, "epsg", 29872,
-        "Timbalai 1948 / RSO Borneo (ft)");
+        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"23886\"]]");
+    p = add_epsg_def (filter, first, last, 23887, "epsg", 23887,
+        "ID74 / UTM zone 47S");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 ");
+        "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "+k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985");
-    add_proj4text (p, 2,
-        " +gamma=53.13010236111111 +ellps=evrstSS +towgs84=-533.4");
-    add_proj4text (p, 3,
-        ",669.2,-52.5,0,0,4.28,9.4 +to_meter=0.3047994715386762 +");
-    add_proj4text (p, 4,
-        "no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Timbalai 1948 / RSO Borneo (ft)\",GEOGCS[\"Timb");
+        "PROJCS[\"ID74 / UTM zone 47S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of");
+        "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 9,
-        "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],");
+        ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA");
+        "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "ing\",1937263.44],PARAMETER[\"false_northing\",1452947.5");
-    add_srs_wkt (p, 13,
-        "8],UNIT[\"British foot (Sears 1922)\",0.3047994715386762");
-    add_srs_wkt (p, 14,
-        ",AUTHORITY[\"EPSG\",\"9041\"]],AXIS[\"Easting\",EAST],AX");
-    add_srs_wkt (p, 15,
-        "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29872\"]]");
-    p = add_epsg_def (filter, first, last, 29873, "epsg", 29873,
-        "Timbalai 1948 / RSO Borneo (m)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"23887\"]]");
+    p = add_epsg_def (filter, first, last, 23888, "epsg", 23888,
+        "ID74 / UTM zone 48S");
     add_proj4text (p, 0,
-        "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 ");
+        "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "+k=0.99984 +x_0=590476.87 +y_0=442857.65 +gamma=53.13010");
-    add_proj4text (p, 2,
-        "236111111 +ellps=evrstSS +towgs84=-533.4,669.2,-52.5,0,0");
-    add_proj4text (p, 3,
-        ",4.28,9.4 +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Timbalai 1948 / RSO Borneo (m)\",GEOGCS[\"Timba");
+        "PROJCS[\"ID74 / UTM zone 48S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "lai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 18");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "30 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7016\"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "4],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        ",\"4298\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARA");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "METER[\"latitude_of_center\",4],PARAMETER[\"longitude_of");
+        "METER[\"central_meridian\",105],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "_center\",115],PARAMETER[\"azimuth\",53.31582047222222],");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"rectified_grid_angle\",53.13010236111111],PA");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "RAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_east");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "ing\",590476.87],PARAMETER[\"false_northing\",442857.65]");
-    add_srs_wkt (p, 13,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
-    add_srs_wkt (p, 14,
-        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 15,
-        "\",\"29873\"]]");
-    p = add_epsg_def (filter, first, last, 29900, "epsg", 29900,
-        "TM65 / Irish National Grid (deprecated)");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23888\"]]");
+    p = add_epsg_def (filter, first, last, 23889, "epsg", 23889,
+        "ID74 / UTM zone 49S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000");
+        "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "0 +y_0=250000 +datum=ire65 +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"TM65 / Irish National Grid (deprecated)\",GEOGC");
+        "PROJCS[\"ID74 / UTM zone 49S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "S[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified 1849\"");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        ",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],T");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "OWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUT");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "99\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",53.5],PARAMETER[\"central_meridian\"");
+        "METER[\"central_meridian\",111],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        ",-8],PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"fa");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "lse_easting\",200000],PARAMETER[\"false_northing\",25000");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 13,
-        "G\",\"29900\"]]");
-    p = add_epsg_def (filter, first, last, 29901, "epsg", 29901,
-        "OSNI 1952 / Irish National Grid");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23889\"]]");
+    p = add_epsg_def (filter, first, last, 23890, "epsg", 23890,
+        "ID74 / UTM zone 50S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0=");
+        "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0");
-    add_proj4text (p, 2,
-        ".214,-0.631,8.15 +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"OSNI 1952 / Irish National Grid\",GEOGCS[\"OSNI");
+        "PROJCS[\"ID74 / UTM zone 50S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        " 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy 1830\",63775");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "63.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS84");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4188\"]]");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "e_of_origin\",53.5],PARAMETER[\"central_meridian\",-8],P");
+        "METER[\"central_meridian\",117],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        ",200000],PARAMETER[\"false_northing\",250000],UNIT[\"met");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29901\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 29902, "epsg", 29902,
-        "TM65 / Irish Grid");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23890\"]]");
+    p = add_epsg_def (filter, first, last, 23891, "epsg", 23891,
+        "ID74 / UTM zone 51S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000");
+        "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "0 +y_0=250000 +datum=ire65 +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"TM65 / Irish Grid\",GEOGCS[\"TM65\",DATUM[\"TM6");
+        "PROJCS[\"ID74 / UTM zone 51S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "5\",SPHEROID[\"Airy Modified 1849\",6377340.189,299.3249");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "646,AUTHORITY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,5");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "64.6,-1.042,-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"629");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4299\"]],PROJECTION[\"T");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "3.5],PARAMETER[\"central_meridian\",-8],PARAMETER[\"scal");
+        "METER[\"central_meridian\",123],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "e_factor\",1.000035],PARAMETER[\"false_easting\",200000]");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,A");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29902\"]]");
-    p = add_epsg_def (filter, first, last, 29903, "epsg", 29903,
-        "TM75 / Irish Grid");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23891\"]]");
+    p = add_epsg_def (filter, first, last, 23892, "epsg", 23892,
+        "ID74 / UTM zone 52S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000");
+        "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564.");
-    add_proj4text (p, 2,
-        "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"TM75 / Irish Grid\",GEOGCS[\"TM75\",DATUM[\"Geo");
+        "PROJCS[\"ID74 / UTM zone 52S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "detic_Datum_of_1965\",SPHEROID[\"Airy Modified 1849\",63");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "77340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],TOWG");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "S84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHOR");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "ITY[\"EPSG\",\"6300\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4300\"");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "ude_of_origin\",53.5],PARAMETER[\"central_meridian\",-8]");
+        "METER[\"central_meridian\",129],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"false_");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "easting\",200000],PARAMETER[\"false_northing\",250000],U");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"29903\"]]");
-    p = add_epsg_def (filter, first, last, 30161, "epsg", 30161,
-        "Tokyo / Japan Plane Rectangular CS I");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23892\"]]");
+    p = add_epsg_def (filter, first, last, 23893, "epsg", 23893,
+        "ID74 / UTM zone 53S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0");
+        "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
-    add_proj4text (p, 2,
-        ",0 +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS I\",GEOGCS[\"");
+        "PROJCS[\"ID74 / UTM zone 53S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        "3],PARAMETER[\"central_meridian\",129.5],PARAMETER[\"sca");
+        "METER[\"central_meridian\",135],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"30161\"]]");
-    p = add_epsg_def (filter, first, last, 30162, "epsg", 30162,
-        "Tokyo / Japan Plane Rectangular CS II");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23893\"]]");
+    p = add_epsg_def (filter, first, last, 23894, "epsg", 23894,
+        "ID74 / UTM zone 54S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS II\",GEOGCS[");
+        "PROJCS[\"ID74 / UTM zone 54S\",GEOGCS[\"ID74\",DATUM[\"I");
     add_srs_wkt (p, 1,
-        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+        "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp");
     add_srs_wkt (p, 2,
-        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+        "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T");
     add_srs_wkt (p, 3,
-        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "2\"]],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 8,
-        ",33],PARAMETER[\"central_meridian\",131],PARAMETER[\"sca");
+        "METER[\"central_meridian\",141],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+        "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"30162\"]]");
-    p = add_epsg_def (filter, first, last, 30163, "epsg", 30163,
-        "Tokyo / Japan Plane Rectangular CS III");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"23894\"]]");
+    p = add_epsg_def (filter, first, last, 23946, "epsg", 23946,
+        "Indian 1954 / UTM zone 46N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999");
+        "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
-    add_proj4text (p, 2,
-        "80.507,0,0,0,0 +units=m +no_defs");
+        "owgs84=217,823,299,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS III\",GEOGCS");
+        "PROJCS[\"Indian 1954 / UTM zone 46N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
-        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+        "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937");
     add_srs_wkt (p, 2,
-        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        ",36],PARAMETER[\"central_meridian\",132.1666666666667],P");
+        "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"30163\"]]");
-    p = add_epsg_def (filter, first, last, 30164, "epsg", 30164,
-        "Tokyo / Japan Plane Rectangular CS IV");
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23946\"]]");
+    p = add_epsg_def (filter, first, last, 23947, "epsg", 23947,
+        "Indian 1954 / UTM zone 47N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0");
+        "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
-    add_proj4text (p, 2,
-        ",0 +units=m +no_defs");
+        "owgs84=217,823,299,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS IV\",GEOGCS[");
+        "PROJCS[\"Indian 1954 / UTM zone 47N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
-        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+        "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937");
     add_srs_wkt (p, 2,
-        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        ",33],PARAMETER[\"central_meridian\",133.5],PARAMETER[\"s");
+        "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"30164\"]]");
-    p = add_epsg_def (filter, first, last, 30165, "epsg", 30165,
-        "Tokyo / Japan Plane Rectangular CS V");
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"23947\"]]");
+    p = add_epsg_def (filter, first, last, 23948, "epsg", 23948,
+        "Indian 1954 / UTM zone 48N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999");
+        "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
-    add_proj4text (p, 2,
-        "80.507,0,0,0,0 +units=m +no_defs");
+        "owgs84=217,823,299,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS V\",GEOGCS[\"");
+        "PROJCS[\"Indian 1954 / UTM zone 48N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
-        "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397");
+        "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937");
     add_srs_wkt (p, 2,
-        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-");
+        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63");
+        "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "6],PARAMETER[\"central_meridian\",134.3333333333333],PAR");
+        "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"30165\"]]");
-    p = add_epsg_def (filter, first, last, 30166, "epsg", 30166,
-        "Tokyo / Japan Plane Rectangular CS VI");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23948\"]]");
+    p = add_epsg_def (filter, first, last, 24047, "epsg", 24047,
+        "Indian 1975 / UTM zone 47N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "owgs84=210,814,289,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS VI\",GEOGCS[");
+        "PROJCS[\"Indian 1975 / UTM zone 47N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
-        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+        "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937");
     add_srs_wkt (p, 2,
-        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        ",36],PARAMETER[\"central_meridian\",136],PARAMETER[\"sca");
+        "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+        "cale_factor\",0.9996],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"30166\"]]");
-    p = add_epsg_def (filter, first, last, 30167, "epsg", 30167,
-        "Tokyo / Japan Plane Rectangular CS VII");
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"24047\"]]");
+    p = add_epsg_def (filter, first, last, 24048, "epsg", 24048,
+        "Indian 1975 / UTM zone 48N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999");
+        "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
-    add_proj4text (p, 2,
-        "80.507,0,0,0,0 +units=m +no_defs");
+        "owgs84=210,814,289,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS VII\",GEOGCS");
+        "PROJCS[\"Indian 1975 / UTM zone 48N\",GEOGCS[\"Indian 19");
     add_srs_wkt (p, 1,
-        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+        "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937");
     add_srs_wkt (p, 2,
-        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+        " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        ",36],PARAMETER[\"central_meridian\",137.1666666666667],P");
+        "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"30167\"]]");
-    p = add_epsg_def (filter, first, last, 30168, "epsg", 30168,
-        "Tokyo / Japan Plane Rectangular CS VIII");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"24048\"]]");
+    p = add_epsg_def (filter, first, last, 24100, "epsg", 24100,
+        "Jamaica 1875 / Jamaica (Old Grid)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0");
+        "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167");
     add_proj4text (p, 1,
-        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
+        "638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356");
     add_proj4text (p, 2,
-        ",0 +units=m +no_defs");
+        "514.966204134 +to_meter=0.3047972654 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS VIII\",GEOGC");
+        "PROJCS[\"Jamaica 1875 / Jamaica (Old Grid)\",GEOGCS[\"Ja");
     add_srs_wkt (p, 1,
-        "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637");
+        "maica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[\"Clarke 18");
     add_srs_wkt (p, 2,
-        "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS");
+        "80\",6378249.144808011,293.4663076556349,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",");
+        "G\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO");
+        "ITY[\"EPSG\",\"4241\"]],PROJECTION[\"Lambert_Conformal_C");
     add_srs_wkt (p, 7,
-        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",18],PARAMET");
     add_srs_wkt (p, 8,
-        "n\",36],PARAMETER[\"central_meridian\",138.5],PARAMETER[");
+        "ER[\"central_meridian\",-77],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0],");
+        "1],PARAMETER[\"false_easting\",550000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
+        "_northing\",400000],UNIT[\"Clarke's foot\",0.3047972654,");
     add_srs_wkt (p, 11,
-        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST");
+        "AUTHORITY[\"EPSG\",\"9005\"]],AXIS[\"Easting\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "],AUTHORITY[\"EPSG\",\"30168\"]]");
-    p = add_epsg_def (filter, first, last, 30169, "epsg", 30169,
-        "Tokyo / Japan Plane Rectangular CS IX");
+        "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24100\"]]");
+    p = add_epsg_def (filter, first, last, 24200, "epsg", 24200,
+        "JAD69 / Jamaica National Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999");
+        "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250");
     add_proj4text (p, 1,
-        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
+        "000 +y_0=150000 +ellps=clrk66 +towgs84=70,207,389.5,0,0,");
     add_proj4text (p, 2,
-        "80.507,0,0,0,0 +units=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS IX\",GEOGCS[");
+        "PROJCS[\"JAD69 / Jamaica National Grid\",GEOGCS[\"JAD69\"");
     add_srs_wkt (p, 1,
-        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+        ",DATUM[\"Jamaica_1969\",SPHEROID[\"Clarke 1866\",6378206");
     add_srs_wkt (p, 2,
-        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+        ".4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6242\"]],P");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "\"]],AUTHORITY[\"EPSG\",\"4242\"]],PROJECTION[\"Lambert_");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        ",36],PARAMETER[\"central_meridian\",139.8333333333333],P");
+        "18],PARAMETER[\"central_meridian\",-77],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east");
+        "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME");
     add_srs_wkt (p, 10,
-        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "TER[\"false_northing\",150000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"30169\"]]");
-    p = add_epsg_def (filter, first, last, 30170, "epsg", 30170,
-        "Tokyo / Japan Plane Rectangular CS X");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24200\"]]");
+    p = add_epsg_def (filter, first, last, 24305, "epsg", 24305,
+        "Kalianpur 1937 / UTM zone 45N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999");
+        "+proj=utm +zone=45 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
-    add_proj4text (p, 2,
-        "80.507,0,0,0,0 +units=m +no_defs");
+        "owgs84=214,804,268,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS X\",GEOGCS[\"");
+        "PROJCS[\"Kalianpur 1937 / UTM zone 45N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397");
+        "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-");
+        "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63");
+        "EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 4,
-        "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+        "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]");
     add_srs_wkt (p, 7,
-        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        "0],PARAMETER[\"central_meridian\",140.8333333333333],PAR");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA");
     add_srs_wkt (p, 9,
-        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
+        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "\",EAST],AUTHORITY[\"EPSG\",\"30170\"]]");
-    p = add_epsg_def (filter, first, last, 30171, "epsg", 30171,
-        "Tokyo / Japan Plane Rectangular CS XI");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24305\"]]");
+    p = add_epsg_def (filter, first, last, 24306, "epsg", 24306,
+        "Kalianpur 1937 / UTM zone 46N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_");
+        "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +t");
     add_proj4text (p, 1,
-        "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,");
-    add_proj4text (p, 2,
-        "0,0 +units=m +no_defs");
+        "owgs84=214,804,268,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XI\",GEOGCS[");
+        "PROJCS[\"Kalianpur 1937 / UTM zone 46N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+        "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+        "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"]]");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",44],PARAMETER[\"central_meridian\",140.25],PARAMETER[\"");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"30171\"]]");
-    p = add_epsg_def (filter, first, last, 30172, "epsg", 30172,
-        "Tokyo / Japan Plane Rectangular CS XII");
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24306\"]]");
+    p = add_epsg_def (filter, first, last, 24311, "epsg", 24311,
+        "Kalianpur 1962 / UTM zone 41N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_");
+        "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165384 +");
     add_proj4text (p, 1,
-        "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,");
-    add_proj4text (p, 2,
-        "0,0 +units=m +no_defs");
+        "towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XII\",GEOGCS");
+        "PROJCS[\"Kalianpur 1962 / UTM zone 41N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",44],PARAMETER[\"central_meridian\",142.25],PARAMETER[\"");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"30172\"]]");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24311");
+    add_srs_wkt (p, 13,
+        "\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_35.c b/src/srsinit/epsg_inlined_35.c
index 92a424c..0ced151 100644
--- a/src/srsinit/epsg_inlined_35.c
+++ b/src/srsinit/epsg_inlined_35.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3450 +52,3344 @@ initialize_epsg_35 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 30173, "epsg", 30173,
-        "Tokyo / Japan Plane Rectangular CS XIII");
+    p = add_epsg_def (filter, first, last, 24312, "epsg", 24312,
+        "Kalianpur 1962 / UTM zone 42N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_");
+        "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165384 +");
     add_proj4text (p, 1,
-        "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,");
-    add_proj4text (p, 2,
-        "0,0 +units=m +no_defs");
+        "towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIII\",GEOGC");
+        "PROJCS[\"Kalianpur 1962 / UTM zone 42N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637");
+        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS");
+        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
     add_srs_wkt (p, 7,
-        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "n\",44],PARAMETER[\"central_meridian\",144.25],PARAMETER");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],");
     add_srs_wkt (p, 9,
-        "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "T],AUTHORITY[\"EPSG\",\"30173\"]]");
-    p = add_epsg_def (filter, first, last, 30174, "epsg", 30174,
-        "Tokyo / Japan Plane Rectangular CS XIV");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24312");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24313, "epsg", 24313,
+        "Kalianpur 1962 / UTM zone 43N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165384 +");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIV\",GEOGCS");
+        "PROJCS[\"Kalianpur 1962 / UTM zone 43N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",26],PARAMETER[\"central_meridian\",142],PARAMETER[\"sca");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"30174\"]]");
-    p = add_epsg_def (filter, first, last, 30175, "epsg", 30175,
-        "Tokyo / Japan Plane Rectangular CS XV");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24313");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24342, "epsg", 24342,
+        "Kalianpur 1975 / UTM zone 42N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0");
+        "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +");
     add_proj4text (p, 1,
-        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
-    add_proj4text (p, 2,
-        ",0 +units=m +no_defs");
+        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XV\",GEOGCS[");
+        "PROJCS[\"Kalianpur 1975 / UTM zone 42N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",26],PARAMETER[\"central_meridian\",127.5],PARAMETER[\"s");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],");
     add_srs_wkt (p, 9,
-        "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"30175\"]]");
-    p = add_epsg_def (filter, first, last, 30176, "epsg", 30176,
-        "Tokyo / Japan Plane Rectangular CS XVI");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24342");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24343, "epsg", 24343,
+        "Kalianpur 1975 / UTM zone 43N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVI\",GEOGCS");
+        "PROJCS[\"Kalianpur 1975 / UTM zone 43N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",26],PARAMETER[\"central_meridian\",124],PARAMETER[\"sca");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"30176\"]]");
-    p = add_epsg_def (filter, first, last, 30177, "epsg", 30177,
-        "Tokyo / Japan Plane Rectangular CS XVII");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24343");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24344, "epsg", 24344,
+        "Kalianpur 1975 / UTM zone 44N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVII\",GEOGC");
+        "PROJCS[\"Kalianpur 1975 / UTM zone 44N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "n\",26],PARAMETER[\"central_meridian\",131],PARAMETER[\"");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"30177\"]]");
-    p = add_epsg_def (filter, first, last, 30178, "epsg", 30178,
-        "Tokyo / Japan Plane Rectangular CS XVIII");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24344");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24345, "epsg", 24345,
+        "Kalianpur 1975 / UTM zone 45N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVIII\",GEOG");
+        "PROJCS[\"Kalianpur 1975 / UTM zone 45N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "CS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "S84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        ",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTI");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "in\",20],PARAMETER[\"central_meridian\",136],PARAMETER[\"");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"30178\"]]");
-    p = add_epsg_def (filter, first, last, 30179, "epsg", 30179,
-        "Tokyo / Japan Plane Rectangular CS XIX");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24345");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24346, "epsg", 24346,
+        "Kalianpur 1975 / UTM zone 46N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0");
+        "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIX\",GEOGCS");
+        "PROJCS[\"Kalianpur 1975 / UTM zone 46N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",26],PARAMETER[\"central_meridian\",154],PARAMETER[\"sca");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"30179\"]]");
-    p = add_epsg_def (filter, first, last, 30200, "epsg", 30200,
-        "Trinidad 1903 / Trinidad Grid");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24346");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24347, "epsg", 24347,
+        "Kalianpur 1975 / UTM zone 47N");
     add_proj4text (p, 0,
-        "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333");
+        "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +");
     add_proj4text (p, 1,
-        "33334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=63782");
-    add_proj4text (p, 2,
-        "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4");
-    add_proj4text (p, 3,
-        "88,472.052,0,0,0,0 +to_meter=0.201166195164 +no_defs");
+        "towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Trinidad 1903 / Trinidad Grid\",GEOGCS[\"Trinid");
+        "PROJCS[\"Kalianpur 1975 / UTM zone 47N\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "ad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Clarke 1858");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "\",6378293.645208759,294.2606763692654,AUTHORITY[\"EPSG\"");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        ",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUT");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "02\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latit");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        "ude_of_origin\",10.44166666666667],PARAMETER[\"central_m");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],");
     add_srs_wkt (p, 9,
-        "eridian\",-61.33333333333334],PARAMETER[\"false_easting\"");
+        "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        ",430000],PARAMETER[\"false_northing\",325000],UNIT[\"Cla");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "rke's link\",0.201166195164,AUTHORITY[\"EPSG\",\"9039\"]");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E");
     add_srs_wkt (p, 12,
-        "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR");
+        "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24347");
     add_srs_wkt (p, 13,
-        "ITY[\"EPSG\",\"30200\"]]");
-    p = add_epsg_def (filter, first, last, 30339, "epsg", 30339,
-        "TC(1948) / UTM zone 39N");
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 24370, "epsg", 24370,
+        "Kalianpur 1880 / India zone 0");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs");
+        "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846");
+    add_proj4text (p, 1,
+        "154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377");
+    add_proj4text (p, 2,
+        "299.36559538 +b=6356098.359005156 +to_meter=0.9143985307");
+    add_proj4text (p, 3,
+        "444408 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"TC(1948) / UTM zone 39N\",GEOGCS[\"TC(1948)\",D");
+        "PROJCS[\"Kalianpur 1880 / India zone 0\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63");
+        "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest (");
     add_srs_wkt (p, 2,
-        "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP");
+        "1830 Definition)\",6377299.36559538,300.8017255433552,AU");
     add_srs_wkt (p, 3,
-        "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]");
     add_srs_wkt (p, 4,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "rigin\",0],PARAMETER[\"central_meridian\",51],PARAMETER[");
+        "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 8,
-        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500");
+        "\",39.5],PARAMETER[\"central_meridian\",68],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "scale_factor\",0.99846154],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+        "355500],PARAMETER[\"false_northing\",2590000],UNIT[\"Ind");
     add_srs_wkt (p, 11,
-        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30339\"]]");
-    p = add_epsg_def (filter, first, last, 30340, "epsg", 30340,
-        "TC(1948) / UTM zone 40N");
+        "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"24370\"]]");
+    p = add_epsg_def (filter, first, last, 24371, "epsg", 24371,
+        "Kalianpur 1880 / India zone I");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs");
+        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878");
+    add_proj4text (p, 1,
+        "641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=637");
+    add_proj4text (p, 2,
+        "7299.36559538 +b=6356098.359005156 +to_meter=0.914398530");
+    add_proj4text (p, 3,
+        "7444408 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"TC(1948) / UTM zone 40N\",GEOGCS[\"TC(1948)\",D");
+        "PROJCS[\"Kalianpur 1880 / India zone I\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63");
+        "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest (");
     add_srs_wkt (p, 2,
-        "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP");
+        "1830 Definition)\",6377299.36559538,300.8017255433552,AU");
     add_srs_wkt (p, 3,
-        "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]");
     add_srs_wkt (p, 4,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "rigin\",0],PARAMETER[\"central_meridian\",57],PARAMETER[");
+        "rt_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 8,
-        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500");
+        "\",32.5],PARAMETER[\"central_meridian\",68],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3");
     add_srs_wkt (p, 10,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+        "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind");
     add_srs_wkt (p, 11,
-        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30340\"]]");
-    p = add_epsg_def (filter, first, last, 30491, "epsg", 30491,
-        "Voirol 1875 / Nord Algerie (ancienne)");
+        "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"24371\"]]");
+    p = add_epsg_def (filter, first, last, 24372, "epsg", 24372,
+        "Kalianpur 1880 / India zone IIa");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554");
+        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs");
+        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
     add_proj4text (p, 2,
-        "84=-73,-247,227,0,0,0,0 +units=m +no_defs");
+        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
+    add_proj4text (p, 3,
+        "408 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Voirol 1875 / Nord Algerie (ancienne)\",GEOGCS[");
+        "PROJCS[\"Kalianpur 1880 / India zone IIa\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        "\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke ");
+        "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS");
+        " (1830 Definition)\",6377299.36559538,300.8017255433552,");
     add_srs_wkt (p, 3,
-        "G\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"");
+        "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PR");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la");
+        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "titude_of_origin\",36],PARAMETER[\"central_meridian\",2.");
+        "n\",26],PARAMETER[\"central_meridian\",74],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\"f");
+        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
     add_srs_wkt (p, 10,
-        "alse_easting\",500000],PARAMETER[\"false_northing\",3000");
+        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
     add_srs_wkt (p, 12,
-        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30491");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 30492, "epsg", 30492,
-        "Voirol 1875 / Sud Algerie (ancienne)");
+        "RITY[\"EPSG\",\"24372\"]]");
+    p = add_epsg_def (filter, first, last, 24373, "epsg", 24373,
+        "Kalianpur 1880 / India zone IIIa");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996");
+        "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t");
+        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
     add_proj4text (p, 2,
-        "owgs84=-73,-247,227,0,0,0,0 +units=m +no_defs");
+        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
+    add_proj4text (p, 3,
+        "408 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Voirol 1875 / Sud Algerie (ancienne)\",GEOGCS[\"");
+        "PROJCS[\"Kalianpur 1880 / India zone IIIa\",GEOGCS[\"Kal");
     add_srs_wkt (p, 1,
-        "Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke 18");
+        "ianpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everes");
     add_srs_wkt (p, 2,
-        "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\"");
+        "t (1830 Definition)\",6377299.36559538,300.8017255433552");
     add_srs_wkt (p, 3,
-        ",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"EP");
+        ",AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243");
     add_srs_wkt (p, 4,
-        "SG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PROJE");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"La");
     add_srs_wkt (p, 7,
-        "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit");
+        "mbert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 8,
-        "ude_of_origin\",33.3],PARAMETER[\"central_meridian\",2.7");
+        "gin\",19],PARAMETER[\"central_meridian\",80],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\"fa");
+        "scale_factor\",0.99878641],PARAMETER[\"false_easting\",3");
     add_srs_wkt (p, 10,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",30000");
+        "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"Ind");
     add_srs_wkt (p, 11,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "ian yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
     add_srs_wkt (p, 12,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30492\"");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 30493, "epsg", 30493,
-        "Voirol 1879 / Nord Algerie (ancienne)");
+        "RITY[\"EPSG\",\"24373\"]]");
+    p = add_epsg_def (filter, first, last, 24374, "epsg", 24374,
+        "Kalianpur 1880 / India zone IVa");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554");
+        "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units");
+        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
     add_proj4text (p, 2,
-        "=m +no_defs");
+        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
+    add_proj4text (p, 3,
+        "408 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Voirol 1879 / Nord Algerie (ancienne)\",GEOGCS[");
+        "PROJCS[\"Kalianpur 1880 / India zone IVa\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        "\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke ");
+        "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS");
+        " (1830 Definition)\",6377299.36559538,300.8017255433552,");
     add_srs_wkt (p, 3,
-        "G\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Gr");
+        "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_C");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAMET");
+        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\",");
+        "n\",12],PARAMETER[\"central_meridian\",80],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "0.999625544],PARAMETER[\"false_easting\",500000],PARAMET");
+        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY");
+        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"30493\"]]");
-    p = add_epsg_def (filter, first, last, 30494, "epsg", 30494,
-        "Voirol 1879 / Sud Algerie (ancienne)");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"24374\"]]");
+    p = add_epsg_def (filter, first, last, 24375, "epsg", 24375,
+        "Kalianpur 1937 / India zone IIb");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996");
+        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +u");
+        "+x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        ".41314024 +towgs84=214,804,268,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Voirol 1879 / Sud Algerie (ancienne)\",GEOGCS[\"");
+        "PROJCS[\"Kalianpur 1937 / India zone IIb\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        "Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke 18");
+        "anpur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\"");
+        " 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY");
     add_srs_wkt (p, 3,
-        ",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Green");
+        "[\"EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "ITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4144\"");
     add_srs_wkt (p, 7,
-        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAMET");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\",");
+        "[\"latitude_of_origin\",26],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 9,
-        "0.999625769],PARAMETER[\"false_easting\",500000],PARAMET");
+        "\",90],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY");
+        "\"false_easting\",2743185.69],PARAMETER[\"false_northing");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "\",914395.23],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"30494\"]]");
-    p = add_epsg_def (filter, first, last, 30729, "epsg", 30729,
-        "Nord Sahara 1959 / UTM zone 29N");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"24375\"]]");
+    p = add_epsg_def (filter, first, last, 24376, "epsg", 24376,
+        "Kalianpur 1962 / India zone I");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-186,-93,310,0");
+        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=63561");
+    add_proj4text (p, 2,
+        "00.230165384 +towgs84=283,682,231,0,0,0,0 +units=m +no_d");
+    add_proj4text (p, 3,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nord Sahara 1959 / UTM zone 29N\",GEOGCS[\"Nord");
+        "PROJCS[\"Kalianpur 1962 / India zone I\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+        "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+        "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4145");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-9],PARAMETER[");
+        "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500");
+        "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME");
     add_srs_wkt (p, 10,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+        "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30729\"]]");
-    p = add_epsg_def (filter, first, last, 30730, "epsg", 30730,
-        "Nord Sahara 1959 / UTM zone 30N");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"24376\"]]");
+    p = add_epsg_def (filter, first, last, 24377, "epsg", 24377,
+        "Kalianpur 1962 / India zone IIa");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-186,-93,310,0");
+        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "+x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.2");
+    add_proj4text (p, 2,
+        "30165384 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nord Sahara 1959 / UTM zone 30N\",GEOGCS[\"Nord");
+        "PROJCS[\"Kalianpur 1962 / India zone IIa\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+        "anpur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+        " 1830 (1962 Definition)\",6377301.243,300.8017255,AUTHOR");
     add_srs_wkt (p, 3,
-        "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS");
+        "ITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "45\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",-3],PARAMETER[");
+        "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500");
+        "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME");
     add_srs_wkt (p, 10,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "TER[\"false_easting\",2743196.4],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+        "ing\",914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30730\"]]");
-    p = add_epsg_def (filter, first, last, 30731, "epsg", 30731,
-        "Nord Sahara 1959 / UTM zone 31N");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"24377\"]]");
+    p = add_epsg_def (filter, first, last, 24378, "epsg", 24378,
+        "Kalianpur 1975 / India zone I");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-186,-93,310,0");
+        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=63560");
+    add_proj4text (p, 2,
+        "98.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_d");
+    add_proj4text (p, 3,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nord Sahara 1959 / UTM zone 31N\",GEOGCS[\"Nord");
+        "PROJCS[\"Kalianpur 1975 / India zone I\",GEOGCS[\"Kalian");
     add_srs_wkt (p, 1,
-        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+        "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1");
     add_srs_wkt (p, 2,
-        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+        "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT");
     add_srs_wkt (p, 3,
-        "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS");
+        "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO");
     add_srs_wkt (p, 4,
-        "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4146");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMET");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"");
+        "ER[\"latitude_of_origin\",32.5],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "dian\",68],PARAMETER[\"scale_factor\",0.99878641],PARAME");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"30731\"]]");
-    p = add_epsg_def (filter, first, last, 30732, "epsg", 30732,
-        "Nord Sahara 1959 / UTM zone 32N");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"24378\"]]");
+    p = add_epsg_def (filter, first, last, 24379, "epsg", 24379,
+        "Kalianpur 1975 / India zone IIa");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-186,-93,310,0");
+        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
+    add_proj4text (p, 2,
+        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nord Sahara 1959 / UTM zone 32N\",GEOGCS[\"Nord");
+        "PROJCS[\"Kalianpur 1975 / India zone IIa\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+        "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+        " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR");
     add_srs_wkt (p, 3,
-        "\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"EPS");
+        "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "G\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PROJE");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+        "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
     add_srs_wkt (p, 8,
-        "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"");
+        "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "dian\",74],PARAMETER[\"scale_factor\",0.99878641],PARAME");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"30732\"]]");
-    p = add_epsg_def (filter, first, last, 30791, "epsg", 30791,
-        "Nord Sahara 1959 / Voirol Unifie Nord");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"24379\"]]");
+    p = add_epsg_def (filter, first, last, 24380, "epsg", 24380,
+        "Kalianpur 1975 / India zone IIb");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554");
+        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "4 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-186,-9");
+        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
     add_proj4text (p, 2,
-        "3,310,0,0,0,0 +units=m +no_defs");
+        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nord Sahara 1959 / Voirol Unifie Nord\",GEOGCS[");
+        "PROJCS[\"Kalianpur 1975 / India zone IIb\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        "\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID");
+        "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"E");
+        " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR");
     add_srs_wkt (p, 3,
-        "PSG\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY");
+        "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "[\"EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]]");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"");
+        "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",36],PARAMETER[\"central_meridian\",");
+        "ETER[\"latitude_of_origin\",26],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "2.7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\"");
+        "dian\",90],PARAMETER[\"scale_factor\",0.99878641],PARAME");
     add_srs_wkt (p, 10,
-        "false_easting\",500135],PARAMETER[\"false_northing\",300");
+        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "090],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
     add_srs_wkt (p, 12,
-        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079");
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
     add_srs_wkt (p, 13,
-        "1\"]]");
-    p = add_epsg_def (filter, first, last, 30792, "epsg", 30792,
-        "Nord Sahara 1959 / Voirol Unifie Sud");
+        "UTHORITY[\"EPSG\",\"24380\"]]");
+    p = add_epsg_def (filter, first, last, 24381, "epsg", 24381,
+        "Kalianpur 1975 / India zone IIIa");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996");
+        "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "25769 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-18");
+        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
     add_proj4text (p, 2,
-        "6,-93,310,0,0,0,0 +units=m +no_defs");
+        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Nord Sahara 1959 / Voirol Unifie Sud\",GEOGCS[\"");
+        "PROJCS[\"Kalianpur 1975 / India zone IIIa\",GEOGCS[\"Kal");
     add_srs_wkt (p, 1,
-        "Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"");
+        "ianpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everes");
     add_srs_wkt (p, 2,
-        "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG");
+        "t 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHO");
     add_srs_wkt (p, 3,
-        "\",\"7012\"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY[\"");
+        "RITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AU");
     add_srs_wkt (p, 4,
-        "EPSG\",\"6307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+        "THORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4307\"]],PR");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la");
+        "146\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARA");
     add_srs_wkt (p, 8,
-        "titude_of_origin\",33.3],PARAMETER[\"central_meridian\",");
+        "METER[\"latitude_of_origin\",19],PARAMETER[\"central_mer");
     add_srs_wkt (p, 9,
-        "2.7],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\"");
+        "idian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAM");
     add_srs_wkt (p, 10,
-        "false_easting\",500135],PARAMETER[\"false_northing\",300");
+        "ETER[\"false_easting\",2743195.5],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "090],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "hing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 12,
-        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079");
+        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
     add_srs_wkt (p, 13,
-        "2\"]]");
-    p = add_epsg_def (filter, first, last, 30800, "epsg", 30800,
-        "RT38 2.5 gon W (deprecated)");
+        "AUTHORITY[\"EPSG\",\"24381\"]]");
+    p = add_epsg_def (filter, first, last, 24382, "epsg", 24382,
+        "Kalianpur 1880 / India zone IIb");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=");
+        "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "1500000 +y_0=0 +ellps=bessel +units=m +no_defs");
+        "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299");
+    add_proj4text (p, 2,
+        ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444");
+    add_proj4text (p, 3,
+        "408 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"RT38 2.5 gon W (deprecated)\",GEOGCS[\"RT38\",D");
+        "PROJCS[\"Kalianpur 1880 / India zone IIb\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        "ATUM[\"Stockholm_1938\",SPHEROID[\"Bessel 1841\",6377397");
+        "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY");
+        " (1830 Definition)\",6377299.36559538,300.8017255433552,");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+        "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"");
     add_srs_wkt (p, 4,
-        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]]");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "e_of_origin\",0],PARAMETER[\"central_meridian\",15.80827");
+        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        "777777778],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal");
+        "n\",26],PARAMETER[\"central_meridian\",90],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "se_easting\",1500000],PARAMETER[\"false_northing\",0],UN");
+        "cale_factor\",0.99878641],PARAMETER[\"false_easting\",30");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+        "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"Indi");
     add_srs_wkt (p, 11,
-        "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"30800\"]]");
-    p = add_epsg_def (filter, first, last, 31028, "epsg", 31028,
-        "Yoff / UTM zone 28N");
+        "an yard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"24382\"]]");
+    p = add_epsg_def (filter, first, last, 24383, "epsg", 24383,
+        "Kalianpur 1975 / India zone IVa");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_");
+        "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 ");
     add_proj4text (p, 1,
-        "defs");
+        "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1");
+    add_proj4text (p, 2,
+        "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Yoff / UTM zone 28N\",GEOGCS[\"Yoff\",DATUM[\"Y");
+        "PROJCS[\"Kalianpur 1975 / India zone IVa\",GEOGCS[\"Kali");
     add_srs_wkt (p, 1,
-        "off\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602");
+        "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest");
     add_srs_wkt (p, 2,
-        "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\"");
+        " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR");
     add_srs_wkt (p, 3,
-        ",\"6310\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT");
     add_srs_wkt (p, 4,
-        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+        "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4310\"]],PROJECTI");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"41");
     add_srs_wkt (p, 7,
-        "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"");
+        "46\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAM");
     add_srs_wkt (p, 8,
-        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+        "ETER[\"latitude_of_origin\",12],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "dian\",80],PARAMETER[\"scale_factor\",0.99878641],PARAME");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "TER[\"false_easting\",2743195.5],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"31028\"]]");
-    p = add_epsg_def (filter, first, last, 31121, "epsg", 31121,
-        "Zanderij / UTM zone 21N");
+        "ing\",914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+    add_srs_wkt (p, 12,
+        "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"24383\"]]");
+    p = add_epsg_def (filter, first, last, 24500, "epsg", 24500,
+        "Kertau 1968 / Singapore Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,");
+        "+proj=cass +lat_0=1.287646666666667 +lon_0=103.853002222");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "2222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038");
+    add_proj4text (p, 2,
+        "993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Zanderij / UTM zone 21N\",GEOGCS[\"Zanderij\",D");
+        "PROJCS[\"Kertau 1968 / Singapore Grid\",GEOGCS[\"Kertau ");
     add_srs_wkt (p, 1,
-        "ATUM[\"Zanderij\",SPHEROID[\"International 1924\",637838");
+        "1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Mod");
     add_srs_wkt (p, 2,
-        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-35");
+        "ified\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"");
     add_srs_wkt (p, 3,
-        "8,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenw");
+        "]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"");
     add_srs_wkt (p, 4,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Cass");
     add_srs_wkt (p, 7,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "ini_Soldner\"],PARAMETER[\"latitude_of_origin\",1.287646");
     add_srs_wkt (p, 8,
-        "_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PARA");
+        "666666667],PARAMETER[\"central_meridian\",103.8530022222");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        "222],PARAMETER[\"false_easting\",30000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "e_northing\",30000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"31121\"]]");
-    p = add_epsg_def (filter, first, last, 31154, "epsg", 31154,
-        "Zanderij / TM 54 NW");
+        "H],AUTHORITY[\"EPSG\",\"24500\"]]");
+    p = add_epsg_def (filter, first, last, 24547, "epsg", 24547,
+        "Kertau 1968 / UTM zone 47N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y");
+        "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +");
     add_proj4text (p, 1,
-        "_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m");
-    add_proj4text (p, 2,
-        " +no_defs");
+        "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Zanderij / TM 54 NW\",GEOGCS[\"Zanderij\",DATUM");
+        "PROJCS[\"Kertau 1968 / UTM zone 47N\",GEOGCS[\"Kertau 19");
     add_srs_wkt (p, 1,
-        "[\"Zanderij\",SPHEROID[\"International 1924\",6378388,29");
+        "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif");
     add_srs_wkt (p, 2,
-        "7,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358,0,");
+        "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]");
     add_srs_wkt (p, 3,
-        "0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwich\"");
+        ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "SG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "dian\",-54],PARAMETER[\"scale_factor\",0.9996],PARAMETER");
+        "RAMETER[\"central_meridian\",99],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
+        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
     add_srs_wkt (p, 12,
-        "G\",\"31154\"]]");
-    p = add_epsg_def (filter, first, last, 31170, "epsg", 31170,
-        "Zanderij / Suriname Old TM");
+        "NORTH],AUTHORITY[\"EPSG\",\"24547\"]]");
+    p = add_epsg_def (filter, first, last, 24548, "epsg", 24548,
+        "Kertau 1968 / UTM zone 48N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996");
+        "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +");
     add_proj4text (p, 1,
-        " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0");
-    add_proj4text (p, 2,
-        ",0,0,0 +units=m +no_defs");
+        "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Zanderij / Suriname Old TM\",GEOGCS[\"Zanderij\"");
+        "PROJCS[\"Kertau 1968 / UTM zone 48N\",GEOGCS[\"Kertau 19");
     add_srs_wkt (p, 1,
-        ",DATUM[\"Zanderij\",SPHEROID[\"International 1924\",6378");
+        "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif");
     add_srs_wkt (p, 2,
-        "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-");
+        "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]");
     add_srs_wkt (p, 3,
-        "358,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Gree");
+        ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"");
+        "122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Trans");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "verse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PA");
     add_srs_wkt (p, 8,
-        "l_meridian\",-55.68333333333333],PARAMETER[\"scale_facto");
+        "RAMETER[\"central_meridian\",105],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
+        "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET");
     add_srs_wkt (p, 10,
-        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "NORTH],AUTHORITY[\"EPSG\",\"31170\"]]");
-    p = add_epsg_def (filter, first, last, 31171, "epsg", 31171,
-        "Zanderij / Suriname TM");
+        ",NORTH],AUTHORITY[\"EPSG\",\"24548\"]]");
+    p = add_epsg_def (filter, first, last, 24571, "epsg", 24571,
+        "Kertau / R.S.O. Malaya (ch) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999");
+        "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=");
     add_proj4text (p, 1,
-        " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0");
+        "0.99984 +x_0=804671.2997750348 +y_0=0 +no_uoff +gamma=32");
     add_proj4text (p, 2,
-        ",0,0,0 +units=m +no_defs");
+        "3.1301023611111 +a=6377304.063 +b=6356103.038993155 +tow");
+    add_proj4text (p, 3,
+        "gs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_d");
+    add_proj4text (p, 4,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Zanderij / Suriname TM\",GEOGCS[\"Zanderij\",DA");
+        "PROJCS[\"Kertau / R.S.O. Malaya (ch) (deprecated)\",GEOG");
     add_srs_wkt (p, 1,
-        "TUM[\"Zanderij\",SPHEROID[\"International 1924\",6378388");
+        "CS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Ever");
     add_srs_wkt (p, 2,
-        ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358");
+        "est 1830 Modified\",6377304.063,300.8017,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwi");
+        "G\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EP");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "SG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4245\"]],PROJE");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+        "CTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_");
     add_srs_wkt (p, 8,
-        "meridian\",-55.68333333333333],PARAMETER[\"scale_factor\"");
+        "of_center\",4],PARAMETER[\"longitude_of_center\",102.25]");
     add_srs_wkt (p, 9,
-        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        ",PARAMETER[\"azimuth\",323.0257905],PARAMETER[\"rectifie");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "d_grid_angle\",323.1301023611111],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+        "or\",0.99984],PARAMETER[\"false_easting\",40000],PARAMET");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"31171\"]]");
-    p = add_epsg_def (filter, first, last, 31251, "epsg", 31251,
-        "MGI (Ferro) / Austria GK West Zone");
+        "ER[\"false_northing\",0],UNIT[\"British chain (Benoit 18");
+    add_srs_wkt (p, 13,
+        "95 B)\",20.11678249437587,AUTHORITY[\"EPSG\",\"9062\"]],");
+    add_srs_wkt (p, 14,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 15,
+        "Y[\"EPSG\",\"24571\"]]");
+    p = add_epsg_def (filter, first, last, 24600, "epsg", 24600,
+        "KOC Lambert");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000");
+        "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +");
+        "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow");
     add_proj4text (p, 2,
-        "units=m +no_defs");
+        "gs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria GK West Zone\",GEOGCS[\"M");
+        "PROJCS[\"KOC Lambert\",GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil");
     add_srs_wkt (p, 1,
-        "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr");
+        "_Company\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,29");
     add_srs_wkt (p, 2,
-        "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+        "3.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-294.7,-200.");
     add_srs_wkt (p, 3,
-        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]");
+        "1,525.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6246\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "HORITY[\"EPSG\",\"4246\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator");
+        "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PA");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "RAMETER[\"central_meridian\",45],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "ral_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMET");
+        "r\",0.9987864078],PARAMETER[\"false_easting\",1500000],P");
     add_srs_wkt (p, 10,
-        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50");
+        "ARAMETER[\"false_northing\",1166200],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
     add_srs_wkt (p, 12,
-        "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31");
-    add_srs_wkt (p, 13,
-        "251\"]]");
-    p = add_epsg_def (filter, first, last, 31252, "epsg", 31252,
-        "MGI (Ferro) / Austria GK Central Zone");
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24600\"]]");
+    p = add_epsg_def (filter, first, last, 24718, "epsg", 24718,
+        "La Canoa / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000");
+        "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-35");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +");
-    add_proj4text (p, 2,
-        "units=m +no_defs");
+        "7.9,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria GK Central Zone\",GEOGCS[");
+        "PROJCS[\"La Canoa / UTM zone 18N\",GEOGCS[\"La Canoa\",D");
     add_srs_wkt (p, 1,
-        "\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Institut_F");
+        "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838");
     add_srs_wkt (p, 2,
-        "erro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,");
+        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0");
+        ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "6666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degre");
-    add_srs_wkt (p, 6,
         "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "HORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Merca");
-    add_srs_wkt (p, 8,
         "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 8,
+        "entral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996");
     add_srs_wkt (p, 9,
-        "entral_meridian\",31],PARAMETER[\"scale_factor\",1],PARA");
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",0],PARAMETER[\"false_northing\",");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31252\"]]");
-    p = add_epsg_def (filter, first, last, 31253, "epsg", 31253,
-        "MGI (Ferro) / Austria GK East Zone");
+        "HORITY[\"EPSG\",\"24718\"]]");
+    p = add_epsg_def (filter, first, last, 24719, "epsg", 24719,
+        "La Canoa / UTM zone 19N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000");
+        "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-35");
     add_proj4text (p, 1,
-        " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +");
-    add_proj4text (p, 2,
-        "units=m +no_defs");
+        "7.9,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria GK East Zone\",GEOGCS[\"M");
+        "PROJCS[\"La Canoa / UTM zone 19N\",GEOGCS[\"La Canoa\",D");
     add_srs_wkt (p, 1,
-        "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr");
+        "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838");
     add_srs_wkt (p, 2,
-        "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6");
     add_srs_wkt (p, 3,
-        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]");
+        ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "entral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996");
     add_srs_wkt (p, 9,
-        "ral_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMET");
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31");
-    add_srs_wkt (p, 13,
-        "253\"]]");
-    p = add_epsg_def (filter, first, last, 31254, "epsg", 31254,
-        "MGI / Austria GK West");
+        "HORITY[\"EPSG\",\"24719\"]]");
+    p = add_epsg_def (filter, first, last, 24720, "epsg", 24720,
+        "La Canoa / UTM zone 20N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-35");
     add_proj4text (p, 1,
-        "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs");
+        "7.9,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria GK West\",GEOGCS[\"MGI\",DATUM[\"");
+        "PROJCS[\"La Canoa / UTM zone 20N\",GEOGCS[\"La Canoa\",D");
     add_srs_wkt (p, 1,
-        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+        "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838");
     add_srs_wkt (p, 2,
-        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6");
     add_srs_wkt (p, 3,
-        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+        ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "HORITY[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "entral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996");
     add_srs_wkt (p, 9,
-        "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",0],PARAMETER[\"false_northing\",");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31254\"]]");
-    p = add_epsg_def (filter, first, last, 31255, "epsg", 31255,
-        "MGI / Austria GK Central");
+        "HORITY[\"EPSG\",\"24720\"]]");
+    p = add_epsg_def (filter, first, last, 24817, "epsg", 24817,
+        "PSAD56 / UTM zone 17N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=17 +ellps=intl +towgs84=-288,175,-376,0,");
     add_proj4text (p, 1,
-        "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria GK Central\",GEOGCS[\"MGI\",DATUM");
+        "PROJCS[\"PSAD56 / UTM zone 17N\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"Militar_Geographische_Institute\",SPHEROID[\"Bessel 1");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.42");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "32],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "an\",13.33333333333333],PARAMETER[\"scale_factor\",1],PA");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31255\"]]");
-    p = add_epsg_def (filter, first, last, 31256, "epsg", 31256,
-        "MGI / Austria GK East");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24817\"]]");
+    p = add_epsg_def (filter, first, last, 24818, "epsg", 24818,
+        "PSAD56 / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=18 +ellps=intl +towgs84=-288,175,-376,0,");
     add_proj4text (p, 1,
-        "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria GK East\",GEOGCS[\"MGI\",DATUM[\"");
+        "PROJCS[\"PSAD56 / UTM zone 18N\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",0],PARAMETER[\"false_northing\",");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        ",AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31256\"]]");
-    p = add_epsg_def (filter, first, last, 31257, "epsg", 31257,
-        "MGI / Austria GK M28");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24818\"]]");
+    p = add_epsg_def (filter, first, last, 24819, "epsg", 24819,
+        "PSAD56 / UTM zone 19N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=19 +ellps=intl +towgs84=-288,175,-376,0,");
     add_proj4text (p, 1,
-        "150000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d");
-    add_proj4text (p, 2,
-        "efs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria GK M28\",GEOGCS[\"MGI\",DATUM[\"M");
+        "PROJCS[\"PSAD56 / UTM zone 19N\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\"");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",150000],PARAMETER[\"false_northing\"");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31257\"]]");
-    p = add_epsg_def (filter, first, last, 31258, "epsg", 31258,
-        "MGI / Austria GK M31");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24819\"]]");
+    p = add_epsg_def (filter, first, last, 24820, "epsg", 24820,
+        "PSAD56 / UTM zone 20N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=20 +ellps=intl +towgs84=-288,175,-376,0,");
     add_proj4text (p, 1,
-        "450000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d");
-    add_proj4text (p, 2,
-        "efs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria GK M31\",GEOGCS[\"MGI\",DATUM[\"M");
+        "PROJCS[\"PSAD56 / UTM zone 20N\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\"");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",450000],PARAMETER[\"false_northing\"");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31258\"]]");
-    p = add_epsg_def (filter, first, last, 31259, "epsg", 31259,
-        "MGI / Austria GK M34");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24820\"]]");
+    p = add_epsg_def (filter, first, last, 24821, "epsg", 24821,
+        "PSAD56 / UTM zone 21N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=21 +ellps=intl +towgs84=-288,175,-376,0,");
     add_proj4text (p, 1,
-        "750000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d");
-    add_proj4text (p, 2,
-        "efs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria GK M34\",GEOGCS[\"MGI\",DATUM[\"M");
+        "PROJCS[\"PSAD56 / UTM zone 21N\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\"");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",750000],PARAMETER[\"false_northing\"");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31259\"]]");
-    p = add_epsg_def (filter, first, last, 31265, "epsg", 31265,
-        "MGI / 3-degree Gauss zone 5 (deprecated)");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"24821\"]]");
+    p = add_epsg_def (filter, first, last, 24877, "epsg", 24877,
+        "PSAD56 / UTM zone 17S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
+        "+proj=utm +zone=17 +south +ellps=intl +towgs84=-288,175,");
     add_proj4text (p, 1,
-        "+datum=hermannskogel +units=m +no_defs");
+        "-376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / 3-degree Gauss zone 5 (deprecated)\",GEOG");
+        "PROJCS[\"PSAD56 / UTM zone 17S\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+        ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31265\"]]");
-    p = add_epsg_def (filter, first, last, 31266, "epsg", 31266,
-        "MGI / 3-degree Gauss zone 6 (deprecated)");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24877\"]]");
+    p = add_epsg_def (filter, first, last, 24878, "epsg", 24878,
+        "PSAD56 / UTM zone 18S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 ");
+        "+proj=utm +zone=18 +south +ellps=intl +towgs84=-288,175,");
     add_proj4text (p, 1,
-        "+datum=hermannskogel +units=m +no_defs");
+        "-376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / 3-degree Gauss zone 6 (deprecated)\",GEOG");
+        "PROJCS[\"PSAD56 / UTM zone 18S\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+        ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "[\"central_meridian\",18],PARAMETER[\"scale_factor\",1],");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_n");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31266\"]]");
-    p = add_epsg_def (filter, first, last, 31267, "epsg", 31267,
-        "MGI / 3-degree Gauss zone 7 (deprecated)");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24878\"]]");
+    p = add_epsg_def (filter, first, last, 24879, "epsg", 24879,
+        "PSAD56 / UTM zone 19S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 ");
+        "+proj=utm +zone=19 +south +ellps=intl +towgs84=-288,175,");
     add_proj4text (p, 1,
-        "+datum=hermannskogel +units=m +no_defs");
+        "-376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / 3-degree Gauss zone 7 (deprecated)\",GEOG");
+        "PROJCS[\"PSAD56 / UTM zone 19S\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+        ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_n");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31267\"]]");
-    p = add_epsg_def (filter, first, last, 31268, "epsg", 31268,
-        "MGI / 3-degree Gauss zone 8 (deprecated)");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24879\"]]");
+    p = add_epsg_def (filter, first, last, 24880, "epsg", 24880,
+        "PSAD56 / UTM zone 20S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 ");
+        "+proj=utm +zone=20 +south +ellps=intl +towgs84=-288,175,");
     add_proj4text (p, 1,
-        "+datum=hermannskogel +units=m +no_defs");
+        "-376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / 3-degree Gauss zone 8 (deprecated)\",GEOG");
+        "PROJCS[\"PSAD56 / UTM zone 20S\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+        ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "[\"central_meridian\",24],PARAMETER[\"scale_factor\",1],");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",8500000],PARAMETER[\"false_n");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31268\"]]");
-    p = add_epsg_def (filter, first, last, 31275, "epsg", 31275,
-        "MGI / Balkans zone 5 (deprecated)");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24880\"]]");
+    p = add_epsg_def (filter, first, last, 24881, "epsg", 24881,
+        "PSAD56 / UTM zone 21S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y");
+        "+proj=utm +zone=21 +south +ellps=intl +towgs84=-288,175,");
     add_proj4text (p, 1,
-        "_0=0 +datum=hermannskogel +units=m +no_defs");
+        "-376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Balkans zone 5 (deprecated)\",GEOGCS[\"MG");
+        "PROJCS[\"PSAD56 / UTM zone 21S\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "l_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARA");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",5500000],PARAMETER[\"false_north");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31275\"]]");
-    p = add_epsg_def (filter, first, last, 31276, "epsg", 31276,
-        "MGI / Balkans zone 6 (deprecated)");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24881\"]]");
+    p = add_epsg_def (filter, first, last, 24882, "epsg", 24882,
+        "PSAD56 / UTM zone 22S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y");
+        "+proj=utm +zone=22 +south +ellps=intl +towgs84=-288,175,");
     add_proj4text (p, 1,
-        "_0=0 +datum=hermannskogel +units=m +no_defs");
+        "-376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Balkans zone 6 (deprecated)\",GEOGCS[\"MG");
+        "PROJCS[\"PSAD56 / UTM zone 22S\",GEOGCS[\"PSAD56\",DATUM");
     add_srs_wkt (p, 1,
-        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+        "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+        "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+        "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal");
     add_srs_wkt (p, 9,
-        "l_meridian\",18],PARAMETER[\"scale_factor\",0.9999],PARA");
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",6500000],PARAMETER[\"false_north");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31276\"]]");
-    p = add_epsg_def (filter, first, last, 31277, "epsg", 31277,
-        "MGI / Balkans zone 7 (deprecated)");
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24882\"]]");
+    p = add_epsg_def (filter, first, last, 24891, "epsg", 24891,
+        "PSAD56 / Peru west zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y");
+        "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=22");
     add_proj4text (p, 1,
-        "_0=0 +datum=hermannskogel +units=m +no_defs");
+        "2000 +y_0=1426834.743 +ellps=intl +towgs84=-288,175,-376");
+    add_proj4text (p, 2,
+        ",0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Balkans zone 7 (deprecated)\",GEOGCS[\"MG");
+        "PROJCS[\"PSAD56 / Peru west zone\",GEOGCS[\"PSAD56\",DAT");
     add_srs_wkt (p, 1,
-        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+        "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+        "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+        ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "in\",-6],PARAMETER[\"central_meridian\",-80.5],PARAMETER");
     add_srs_wkt (p, 9,
-        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA");
+        "[\"scale_factor\",0.99983008],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",7500000],PARAMETER[\"false_north");
+        ",222000],PARAMETER[\"false_northing\",1426834.743],UNIT[");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
     add_srs_wkt (p, 12,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31277\"]]");
-    p = add_epsg_def (filter, first, last, 31278, "epsg", 31278,
-        "MGI / Balkans zone 8 (deprecated)");
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24891\"]]");
+    p = add_epsg_def (filter, first, last, 24892, "epsg", 24892,
+        "PSAD56 / Peru central zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y");
+        "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=72");
     add_proj4text (p, 1,
-        "_0=0 +datum=hermannskogel +units=m +no_defs");
+        "0000 +y_0=1039979.159 +ellps=intl +towgs84=-288,175,-376");
+    add_proj4text (p, 2,
+        ",0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG");
+        "PROJCS[\"PSAD56 / Peru central zone\",GEOGCS[\"PSAD56\",");
     add_srs_wkt (p, 1,
-        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+        "DATUM[\"Provisional_South_American_Datum_1956\",SPHEROID");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+        "7022\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 4,
-        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+        "\",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 5,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[");
     add_srs_wkt (p, 6,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJEC");
     add_srs_wkt (p, 7,
-        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "igin\",-9.5],PARAMETER[\"central_meridian\",-76],PARAMET");
     add_srs_wkt (p, 9,
-        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA");
+        "ER[\"scale_factor\",0.99932994],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",7500000],PARAMETER[\"false_north");
+        "g\",720000],PARAMETER[\"false_northing\",1039979.159],UN");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
     add_srs_wkt (p, 12,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31278\"]]");
-    p = add_epsg_def (filter, first, last, 31279, "epsg", 31279,
-        "MGI / Balkans zone 8 (deprecated)");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24892\"]]");
+    p = add_epsg_def (filter, first, last, 24893, "epsg", 24893,
+        "PSAD56 / Peru east zone");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y");
+        "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0=");
     add_proj4text (p, 1,
-        "_0=0 +datum=hermannskogel +units=m +no_defs");
+        "1324000 +y_0=1040084.558 +ellps=intl +towgs84=-288,175,-");
+    add_proj4text (p, 2,
+        "376,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG");
+        "PROJCS[\"PSAD56 / Peru east zone\",GEOGCS[\"PSAD56\",DAT");
     add_srs_wkt (p, 1,
-        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+        "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+        "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+        ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "in\",-9.5],PARAMETER[\"central_meridian\",-70.5],PARAMET");
     add_srs_wkt (p, 9,
-        "l_meridian\",24],PARAMETER[\"scale_factor\",0.9999],PARA");
+        "ER[\"scale_factor\",0.99952992],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",8500000],PARAMETER[\"false_north");
+        "g\",1324000],PARAMETER[\"false_northing\",1040084.558],U");
     add_srs_wkt (p, 11,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
     add_srs_wkt (p, 12,
-        "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31279\"]]");
-    p = add_epsg_def (filter, first, last, 31281, "epsg", 31281,
-        "MGI (Ferro) / Austria West Zone");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24893\"]]");
+    p = add_epsg_def (filter, first, last, 25000, "epsg", 25000,
+        "Leigon / Ghana Metre Grid");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps");
+        "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997");
     add_proj4text (p, 1,
-        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+        "5 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,3");
     add_proj4text (p, 2,
-        " +no_defs");
+        "64,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria West Zone\",GEOGCS[\"MGI ");
+        "PROJCS[\"Leigon / Ghana Metre Grid\",GEOGCS[\"Leigon\",D");
     add_srs_wkt (p, 1,
-        "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\"");
+        "ATUM[\"Leigon\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.1");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
+        "45,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-130,29");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU");
+        ",364,0,0,0,0],AUTHORITY[\"EPSG\",\"6250\"]],PRIMEM[\"Gre");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666");
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "ITY[\"EPSG\",\"4250\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "\"],PARAMETER[\"latitude_of_origin\",4.666666666666667],");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "PARAMETER[\"central_meridian\",-1],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMETER[");
+        "tor\",0.99975],PARAMETER[\"false_easting\",274319.51],PA");
     add_srs_wkt (p, 10,
-        "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31281\"]]");
-    p = add_epsg_def (filter, first, last, 31282, "epsg", 31282,
-        "MGI (Ferro) / Austria Central Zone");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"25000\"]]");
+    p = add_epsg_def (filter, first, last, 25231, "epsg", 25231,
+        "Lome / UTM zone 31N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps");
+        "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_");
     add_proj4text (p, 1,
-        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
-    add_proj4text (p, 2,
-        " +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria Central Zone\",GEOGCS[\"M");
+        "PROJCS[\"Lome / UTM zone 31N\",GEOGCS[\"Lome\",DATUM[\"L");
     add_srs_wkt (p, 1,
-        "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr");
+        "ome\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602");
     add_srs_wkt (p, 2,
-        "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+        "12936265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]");
+        ",\"6252\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\"");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4252\"]],PROJECTI");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator");
+        "in\",0],PARAMETER[\"central_meridian\",3],PARAMETER[\"sc");
     add_srs_wkt (p, 8,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 9,
-        "ral_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMET");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 10,
-        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
-    add_srs_wkt (p, 12,
-        ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31282\"]]");
-    p = add_epsg_def (filter, first, last, 31283, "epsg", 31283,
-        "MGI (Ferro) / Austria East Zone");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"25231\"]]");
+    p = add_epsg_def (filter, first, last, 25391, "epsg", 25391,
+        "Luzon 1911 / Philippines zone I");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +");
     add_proj4text (p, 1,
-        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
     add_proj4text (p, 2,
-        " +no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria East Zone\",GEOGCS[\"MGI ");
+        "PROJCS[\"Luzon 1911 / Philippines zone I\",GEOGCS[\"Luzo");
     add_srs_wkt (p, 1,
-        "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\"");
+        "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU");
+        ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMETER[");
+        "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31283\"]]");
-    p = add_epsg_def (filter, first, last, 31284, "epsg", 31284,
-        "MGI / Austria M28");
+        "UTHORITY[\"EPSG\",\"25391\"]]");
+    p = add_epsg_def (filter, first, last, 25392, "epsg", 25392,
+        "Luzon 1911 / Philippines zone II");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +");
     add_proj4text (p, 1,
-        "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria M28\",GEOGCS[\"MGI\",DATUM[\"Mili");
+        "PROJCS[\"Luzon 1911 / Philippines zone II\",GEOGCS[\"Luz");
     add_srs_wkt (p, 1,
-        "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6");
+        "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU");
+        "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "],PARAMETER[\"central_meridian\",119],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",150000],PARAMETER[\"false_northing\"");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31284");
-    add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 31285, "epsg", 31285,
-        "MGI / Austria M31");
+        "AUTHORITY[\"EPSG\",\"25392\"]]");
+    p = add_epsg_def (filter, first, last, 25393, "epsg", 25393,
+        "Luzon 1911 / Philippines zone III");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +");
     add_proj4text (p, 1,
-        "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria M31\",GEOGCS[\"MGI\",DATUM[\"Mili");
+        "PROJCS[\"Luzon 1911 / Philippines zone III\",GEOGCS[\"Lu");
     add_srs_wkt (p, 1,
-        "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6");
+        "zon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU");
+        "]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "53\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "],PARAMETER[\"central_meridian\",121],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",450000],PARAMETER[\"false_northing\"");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
-    add_srs_wkt (p, 12,
-        "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31285");
-    add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 31286, "epsg", 31286,
-        "MGI / Austria M34");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"25393\"]]");
+    p = add_epsg_def (filter, first, last, 25394, "epsg", 25394,
+        "Luzon 1911 / Philippines zone IV");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +");
     add_proj4text (p, 1,
-        "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria M34\",GEOGCS[\"MGI\",DATUM[\"Mili");
+        "PROJCS[\"Luzon 1911 / Philippines zone IV\",GEOGCS[\"Luz");
     add_srs_wkt (p, 1,
-        "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6");
+        "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU");
+        "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+        "],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+        "factor\",0.99995],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",750000],PARAMETER[\"false_northing\"");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31286");
-    add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 31287, "epsg", 31287,
-        "MGI / Austria Lambert");
+        "AUTHORITY[\"EPSG\",\"25394\"]]");
+    p = add_epsg_def (filter, first, last, 25395, "epsg", 25395,
+        "Luzon 1911 / Philippines zone V");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333");
+        "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +");
     add_proj4text (p, 1,
-        "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel ");
+        "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units");
     add_proj4text (p, 2,
-        "+units=m +no_defs");
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria Lambert\",GEOGCS[\"MGI\",DATUM[\"");
+        "PROJCS[\"Luzon 1911 / Philippines zone V\",GEOGCS[\"Luzo");
     add_srs_wkt (p, 1,
-        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+        "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+        ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
-        ",\"4312\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"standa");
+        ",PARAMETER[\"central_meridian\",125],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",47.");
+        "actor\",0.99995],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        "5],PARAMETER[\"central_meridian\",13.33333333333333],PAR");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_easting\",400000],PARAMETER[\"false_north");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 12,
-        "ing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
-    add_srs_wkt (p, 13,
-        "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 14,
-        "\",\"31287\"]]");
-    p = add_epsg_def (filter, first, last, 31288, "epsg", 31288,
-        "MGI (Ferro) / M28");
+        "UTHORITY[\"EPSG\",\"25395\"]]");
+    p = add_epsg_def (filter, first, last, 25700, "epsg", 25700,
+        "Makassar (Jakarta) / NEIEZ (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +");
+        "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 ");
     add_proj4text (p, 1,
-        "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un");
+        "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=");
     add_proj4text (p, 2,
-        "its=m +no_defs");
+        "jakarta +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / M28\",GEOGCS[\"MGI (Ferro)\",DATU");
+        "PROJCS[\"Makassar (Jakarta) / NEIEZ (deprecated)\",GEOGC");
     add_srs_wkt (p, 1,
-        "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be");
+        "S[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHE");
     add_srs_wkt (p, 2,
-        "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
+        "ROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],");
     add_srs_wkt (p, 4,
-        ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT");
+        "AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.807");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433");
+        "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ITY[\"EPSG\",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PAR");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",28],");
+        "AMETER[\"central_meridian\",110],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+        "r\",0.997],PARAMETER[\"false_easting\",3900000],PARAMETE");
     add_srs_wkt (p, 10,
-        ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "R[\"false_northing\",900000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"31288\"]]");
-    p = add_epsg_def (filter, first, last, 31289, "epsg", 31289,
-        "MGI (Ferro) / M31");
+        "UTHORITY[\"EPSG\",\"25700\"]]");
+    p = add_epsg_def (filter, first, last, 25828, "epsg", 25828,
+        "ETRS89 / UTM zone 28N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +");
+        "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un");
-    add_proj4text (p, 2,
-        "its=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / M31\",GEOGCS[\"MGI (Ferro)\",DATU");
+        "PROJCS[\"ETRS89 / UTM zone 28N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",31],");
+        "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        ",450000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"31289\"]]");
-    p = add_epsg_def (filter, first, last, 31290, "epsg", 31290,
-        "MGI (Ferro) / M34");
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"25828\"]]");
+    p = add_epsg_def (filter, first, last, 25829, "epsg", 25829,
+        "ETRS89 / UTM zone 29N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +");
+        "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un");
-    add_proj4text (p, 2,
-        "its=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / M34\",GEOGCS[\"MGI (Ferro)\",DATU");
+        "PROJCS[\"ETRS89 / UTM zone 29N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\"");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "itude_of_origin\",0],PARAMETER[\"central_meridian\",34],");
+        "],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        ",750000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "Y\",EAST],AUTHORITY[\"EPSG\",\"31290\"]]");
-    p = add_epsg_def (filter, first, last, 31291, "epsg", 31291,
-        "MGI (Ferro) / Austria West Zone (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25829\"]]");
+    p = add_epsg_def (filter, first, last, 25830, "epsg", 25830,
+        "ETRS89 / UTM zone 30N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps");
+        "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
-    add_proj4text (p, 2,
-        " +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria West Zone (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 30N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\"");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "R[\"central_meridian\",28],PARAMETER[\"scale_factor\",1]");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 13,
-        "1291\"]]");
-    p = add_epsg_def (filter, first, last, 31292, "epsg", 31292,
-        "MGI (Ferro) / Austria Central Zone (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25830\"]]");
+    p = add_epsg_def (filter, first, last, 25831, "epsg", 25831,
+        "ETRS89 / UTM zone 31N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps");
+        "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
-    add_proj4text (p, 2,
-        " +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria Central Zone (deprecated)");
+        "PROJCS[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "\",GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "Institut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,29");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "9.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        ",480,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Fer");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "ro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UN");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "22\"]],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transv");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR");
+        "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 9,
-        "AMETER[\"central_meridian\",31],PARAMETER[\"scale_factor");
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
     add_srs_wkt (p, 10,
-        "\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31292\"]]");
-    p = add_epsg_def (filter, first, last, 31293, "epsg", 31293,
-        "MGI (Ferro) / Austria East Zone (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25831\"]]");
+    p = add_epsg_def (filter, first, last, 25832, "epsg", 25832,
+        "ETRS89 / UTM zone 32N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps");
+        "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
-    add_proj4text (p, 2,
-        " +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI (Ferro) / Austria East Zone (deprecated)\",");
+        "PROJCS[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\"");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+        "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 9,
-        "R[\"central_meridian\",34],PARAMETER[\"scale_factor\",1]");
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 13,
-        "1293\"]]");
-    p = add_epsg_def (filter, first, last, 31294, "epsg", 31294,
-        "MGI / M28 (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25832\"]]");
+    p = add_epsg_def (filter, first, last, 25833, "epsg", 25833,
+        "ETRS89 / UTM zone 33N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / M28 (deprecated)\",GEOGCS[\"MGI\",DATUM[\"");
+        "PROJCS[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",150000],PARAMETER[\"false_northi");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 13,
-        "1294\"]]");
-    p = add_epsg_def (filter, first, last, 31295, "epsg", 31295,
-        "MGI / M31 (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25833\"]]");
+    p = add_epsg_def (filter, first, last, 25834, "epsg", 25834,
+        "ETRS89 / UTM zone 34N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / M31 (deprecated)\",GEOGCS[\"MGI\",DATUM[\"");
+        "PROJCS[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "\",13.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",450000],PARAMETER[\"false_northi");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 13,
-        "1295\"]]");
-    p = add_epsg_def (filter, first, last, 31296, "epsg", 31296,
-        "MGI / M34 (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25834\"]]");
+    p = add_epsg_def (filter, first, last, 25835, "epsg", 25835,
+        "ETRS89 / UTM zone 35N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+        "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / M34 (deprecated)\",GEOGCS[\"MGI\",DATUM[\"");
+        "PROJCS[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "METER[\"false_easting\",750000],PARAMETER[\"false_northi");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 13,
-        "1296\"]]");
-    p = add_epsg_def (filter, first, last, 31297, "epsg", 31297,
-        "MGI / Austria Lambert (deprecated)");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25835\"]]");
+    p = add_epsg_def (filter, first, last, 25836, "epsg", 25836,
+        "ETRS89 / UTM zone 36N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333");
+        "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel ");
-    add_proj4text (p, 2,
-        "+units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"MGI / Austria Lambert (deprecated)\",GEOGCS[\"M");
+        "PROJCS[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "GI\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        ",5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gr");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4312\"]],PROJECTION[\"Lambert_Conformal_C");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAME");
+        "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "origin\",47.5],PARAMETER[\"central_meridian\",13.3333333");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "3333333],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EP");
-    add_srs_wkt (p, 13,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
-    add_srs_wkt (p, 14,
-        "RITY[\"EPSG\",\"31297\"]]");
-    p = add_epsg_def (filter, first, last, 31300, "epsg", 31300,
-        "Belge 1972 / Belge Lambert 72");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25836\"]]");
+    p = add_epsg_def (filter, first, last, 25837, "epsg", 25837,
+        "ETRS89 / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666");
+        "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256");
-    add_proj4text (p, 2,
-        " +y_0=5400088.4378 +ellps=intl +towgs84=-106.869,52.2978");
-    add_proj4text (p, 3,
-        ",-103.724,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Belge 1972 / Belge Lambert 72\",GEOGCS[\"Belge ");
+        "PROJCS[\"ETRS89 / UTM zone 37N\",GEOGCS[\"ETRS89\",DATUM");
     add_srs_wkt (p, 1,
-        "1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"I");
+        "[\"European_Terrestrial_Reference_System_1989\",SPHEROID");
     add_srs_wkt (p, 2,
-        "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702");
+        "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "2\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1.");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gre");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        "onic_2SP_Belgium\"],PARAMETER[\"standard_parallel_1\",49");
+        "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        ".83333333333334],PARAMETER[\"standard_parallel_2\",51.16");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "666666666666],PARAMETER[\"latitude_of_origin\",90],PARAM");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "ETER[\"central_meridian\",4.356939722222222],PARAMETER[\"");
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
     add_srs_wkt (p, 12,
-        "false_easting\",150000.01256],PARAMETER[\"false_northing");
-    add_srs_wkt (p, 13,
-        "\",5400088.4378],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
-    add_srs_wkt (p, 14,
-        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 15,
-        "PSG\",\"31300\"]]");
-    p = add_epsg_def (filter, first, last, 31370, "epsg", 31370,
-        "Belge 1972 / Belgian Lambert 72");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"25837\"]]");
+    p = add_epsg_def (filter, first, last, 25838, "epsg", 25838,
+        "ETRS89 / UTM zone 38N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la");
+        "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
     add_proj4text (p, 1,
-        "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540");
-    add_proj4text (p, 2,
-        "0088.438 +ellps=intl +towgs84=-106.869,52.2978,-103.724,");
-    add_proj4text (p, 3,
-        "0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs");
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\"Belg");
+        "PROJCS[\"ETRS89 / UTM zone 38N (deprecated)\",GEOGCS[\"E");
     add_srs_wkt (p, 1,
-        "e 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"");
+        "TRS89\",DATUM[\"European_Terrestrial_Reference_System_19");
     add_srs_wkt (p, 2,
-        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+        "89\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI");
     add_srs_wkt (p, 3,
-        "22\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1");
+        "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
-        ".8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gr");
+        "\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],");
     add_srs_wkt (p, 7,
-        "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",51.1666672");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM");
     add_srs_wkt (p, 9,
-        "3333333],PARAMETER[\"standard_parallel_2\",49.8333339],P");
+        "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"latitude_of_origin\",90],PARAMETER[\"central_");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "meridian\",4.367486666666666],PARAMETER[\"false_easting\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A");
     add_srs_wkt (p, 12,
-        ",150000.013],PARAMETER[\"false_northing\",5400088.438],U");
-    add_srs_wkt (p, 13,
-        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
-    add_srs_wkt (p, 14,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\"]]");
-    p = add_epsg_def (filter, first, last, 31461, "epsg", 31461,
-        "DHDN / 3-degree Gauss zone 1 (deprecated)");
+        "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"25838\"]]");
+    p = add_epsg_def (filter, first, last, 25884, "epsg", 25884,
+        "ETRS89 / TM Baltic93");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +");
+        "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_");
     add_proj4text (p, 1,
-        "datum=potsdam +units=m +no_defs");
+        "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def");
+    add_proj4text (p, 2,
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss zone 1 (deprecated)\",GEO");
+        "PROJCS[\"ETRS89 / TM Baltic93\",GEOGCS[\"ETRS89\",DATUM[");
     add_srs_wkt (p, 1,
-        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+        "\"European_Terrestrial_Reference_System_1989\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+        "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625");
     add_srs_wkt (p, 4,
-        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+        "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
-        "false_easting\",1500000],PARAMETER[\"false_northing\",0]");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
-    add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31461\"]");
-    add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 31462, "epsg", 31462,
-        "DHDN / 3-degree Gauss zone 2 (deprecated)");
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"25884\"]]");
+    p = add_epsg_def (filter, first, last, 25932, "epsg", 25932,
+        "Malongo 1987 / UTM zone 32S");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +");
+        "+proj=utm +zone=32 +south +ellps=intl +towgs84=-254.1,-5");
     add_proj4text (p, 1,
-        "datum=potsdam +units=m +no_defs");
+        ".36,-100.29,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss zone 2 (deprecated)\",GEO");
+        "PROJCS[\"Malongo 1987 / UTM zone 32S\",GEOGCS[\"Malongo ");
     add_srs_wkt (p, 1,
-        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+        "1987\",DATUM[\"Malongo_1987\",SPHEROID[\"International 1");
     add_srs_wkt (p, 2,
-        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+        "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+        "-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY[\"EPSG\",\"6259\"");
     add_srs_wkt (p, 4,
-        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4259\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "false_easting\",2500000],PARAMETER[\"false_northing\",0]");
+        "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31462\"]");
-    add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 31463, "epsg", 31463,
-        "DHDN / 3-degree Gauss zone 3 (deprecated)");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"25932\"]]");
+    p = add_epsg_def (filter, first, last, 26191, "epsg", 26191,
+        "Merchich / Nord Maroc");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
+        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999");
     add_proj4text (p, 1,
-        "datum=potsdam +units=m +no_defs");
+        "625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +");
+    add_proj4text (p, 2,
+        "towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss zone 3 (deprecated)\",GEO");
+        "PROJCS[\"Merchich / Nord Maroc\",GEOGCS[\"Merchich\",DAT");
     add_srs_wkt (p, 1,
-        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+        "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2");
     add_srs_wkt (p, 2,
-        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+        ",293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+        "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3]");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+        "factor\",0.999625769],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "false_easting\",3500000],PARAMETER[\"false_northing\",0]");
+        "],PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31463\"]");
-    add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 31464, "epsg", 31464,
-        "DHDN / 3-degree Gauss zone 4 (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"26191\"]]");
+    p = add_epsg_def (filter, first, last, 26192, "epsg", 26192,
+        "Merchich / Sud Maroc");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
+        "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.999");
     add_proj4text (p, 1,
-        "+datum=potsdam +units=m +no_defs");
+        "6155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=63");
+    add_proj4text (p, 2,
+        "56515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss zone 4 (deprecated)\",GEO");
+        "PROJCS[\"Merchich / Sud Maroc\",GEOGCS[\"Merchich\",DATU");
     add_srs_wkt (p, 1,
-        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+        "M[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,");
     add_srs_wkt (p, 2,
-        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+        "293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+        "31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "UTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",29.7],");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[");
+        "actor\",0.999615596],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 10,
-        "\"false_easting\",4500000],PARAMETER[\"false_northing\",");
+        ",PARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31464\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 31465, "epsg", 31465,
-        "DHDN / 3-degree Gauss zone 5 (deprecated)");
+        ",NORTH],AUTHORITY[\"EPSG\",\"26192\"]]");
+    p = add_epsg_def (filter, first, last, 26193, "epsg", 26193,
+        "Merchich / Sahara (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
+        "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999");
     add_proj4text (p, 1,
-        "+datum=potsdam +units=m +no_defs");
+        "6 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towg");
+    add_proj4text (p, 2,
+        "s84=31,146,47,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss zone 5 (deprecated)\",GEO");
+        "PROJCS[\"Merchich / Sahara (deprecated)\",GEOGCS[\"Merch");
     add_srs_wkt (p, 1,
-        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+        "ich\",DATUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",");
     add_srs_wkt (p, 2,
-        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+        "6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+        "],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"");
     add_srs_wkt (p, 4,
-        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+        "n\",26.1],PARAMETER[\"central_meridian\",-5.4],PARAMETER");
     add_srs_wkt (p, 9,
-        "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[");
+        "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",12");
     add_srs_wkt (p, 10,
-        "\"false_easting\",5500000],PARAMETER[\"false_northing\",");
+        "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31465\"");
-    add_srs_wkt (p, 13,
-        "]]");
-    p = add_epsg_def (filter, first, last, 31466, "epsg", 31466,
-        "DHDN / 3-degree Gauss-Kruger zone 2");
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26193\"]]");
+    p = add_epsg_def (filter, first, last, 26194, "epsg", 26194,
+        "Merchich / Sahara Nord");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +");
+        "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999");
     add_proj4text (p, 1,
-        "datum=potsdam +units=m +no_defs");
+        "616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 ");
+    add_proj4text (p, 2,
+        "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2\",GEOGCS[\"");
+        "PROJCS[\"Merchich / Sahara Nord\",GEOGCS[\"Merchich\",DA");
     add_srs_wkt (p, 1,
-        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+        "TUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+        "4[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIME");
     add_srs_wkt (p, 4,
-        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        ",AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conf");
     add_srs_wkt (p, 7,
-        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26.1");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+        "],PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false");
+        "_factor\",0.999616304],PARAMETER[\"false_easting\",12000");
     add_srs_wkt (p, 10,
-        "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT");
+        "00],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31466\"]]");
-    p = add_epsg_def (filter, first, last, 31467, "epsg", 31467,
-        "DHDN / 3-degree Gauss-Kruger zone 3");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26194\"]]");
+    p = add_epsg_def (filter, first, last, 26195, "epsg", 26195,
+        "Merchich / Sahara Sud");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
+        "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999");
     add_proj4text (p, 1,
-        "datum=potsdam +units=m +no_defs");
+        "616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 ");
+    add_proj4text (p, 2,
+        "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3\",GEOGCS[\"");
+        "PROJCS[\"Merchich / Sahara Sud\",GEOGCS[\"Merchich\",DAT");
     add_srs_wkt (p, 1,
-        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+        "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        ",293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+        "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 7,
-        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",22.5]");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+        ",PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false");
+        "factor\",0.999616437],PARAMETER[\"false_easting\",150000");
     add_srs_wkt (p, 10,
-        "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT");
+        "0],PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
     add_srs_wkt (p, 12,
-        "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31467\"]]");
-    p = add_epsg_def (filter, first, last, 31468, "epsg", 31468,
-        "DHDN / 3-degree Gauss-Kruger zone 4");
+        "\",NORTH],AUTHORITY[\"EPSG\",\"26195\"]]");
+    p = add_epsg_def (filter, first, last, 26237, "epsg", 26237,
+        "Massawa / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
+        "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0");
     add_proj4text (p, 1,
-        "+datum=potsdam +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4\",GEOGCS[\"");
+        "PROJCS[\"Massawa / UTM zone 37N\",GEOGCS[\"Massawa\",DAT");
     add_srs_wkt (p, 1,
-        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+        "UM[\"Massawa\",SPHEROID[\"Bessel 1841\",6377397.155,299.");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[639,405,60");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6262\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "\"EPSG\",\"4262\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+        "meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAME");
     add_srs_wkt (p, 9,
-        "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+        "TER[\"false_easting\",500000],PARAMETER[\"false_northing");
     add_srs_wkt (p, 10,
-        "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI");
+        "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31468\"]]");
-    p = add_epsg_def (filter, first, last, 31469, "epsg", 31469,
-        "DHDN / 3-degree Gauss-Kruger zone 5");
+        "EPSG\",\"26237\"]]");
+    p = add_epsg_def (filter, first, last, 26331, "epsg", 26331,
+        "Minna / UTM zone 31N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
+        "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-92,-93,122,0,");
     add_proj4text (p, 1,
-        "+datum=potsdam +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5\",GEOGCS[\"");
+        "PROJCS[\"Minna / UTM zone 31N\",GEOGCS[\"Minna\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+        "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
     add_srs_wkt (p, 2,
-        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0");
     add_srs_wkt (p, 3,
-        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+        ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
     add_srs_wkt (p, 7,
-        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
     add_srs_wkt (p, 8,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+        "dian\",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N");
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31469\"]]");
-    p = add_epsg_def (filter, first, last, 31528, "epsg", 31528,
-        "Conakry 1905 / UTM zone 28N");
+        ",\"26331\"]]");
+    p = add_epsg_def (filter, first, last, 26332, "epsg", 26332,
+        "Minna / UTM zone 32N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,");
+        "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-92,-93,122,0,");
     add_proj4text (p, 1,
-        "259,-9,0,0,0,0 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Conakry 1905 / UTM zone 28N\",GEOGCS[\"Conakry ");
+        "PROJCS[\"Minna / UTM zone 32N\",GEOGCS[\"Minna\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG");
+        "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4");
     add_srs_wkt (p, 2,
-        "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70");
+        "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0");
     add_srs_wkt (p, 3,
-        "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION[");
+        "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scal");
+        "dian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "hing\",NORTH],AUTHORITY[\"EPSG\",\"31528\"]]");
-    p = add_epsg_def (filter, first, last, 31529, "epsg", 31529,
-        "Conakry 1905 / UTM zone 29N");
+        ",\"26332\"]]");
+    p = add_epsg_def (filter, first, last, 26391, "epsg", 26391,
+        "Minna / Nigeria West Belt");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,");
+        "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.2");
     add_proj4text (p, 1,
-        "259,-9,0,0,0,0 +units=m +no_defs");
+        "6 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni");
+    add_proj4text (p, 2,
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Conakry 1905 / UTM zone 29N\",GEOGCS[\"Conakry ");
+        "PROJCS[\"Minna / Nigeria West Belt\",GEOGCS[\"Minna\",DA");
     add_srs_wkt (p, 1,
-        "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG");
+        "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145");
     add_srs_wkt (p, 2,
-        "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70");
+        ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1");
     add_srs_wkt (p, 3,
-        "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+        "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION[");
+        "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+        "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale");
+        "l_meridian\",4.5],PARAMETER[\"scale_factor\",0.99975],PA");
     add_srs_wkt (p, 9,
-        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
+        "RAMETER[\"false_easting\",230738.26],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "ing\",NORTH],AUTHORITY[\"EPSG\",\"31529\"]]");
-    p = add_epsg_def (filter, first, last, 31600, "epsg", 31600,
-        "Dealul Piscului 1930 / Stereo 33");
+        "RITY[\"EPSG\",\"26391\"]]");
+    p = add_epsg_def (filter, first, last, 26392, "epsg", 26392,
+        "Minna / Nigeria Mid Belt");
     add_proj4text (p, 0,
-        "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9");
+        "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.9");
     add_proj4text (p, 1,
-        "996667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103.");
+        "8 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni");
     add_proj4text (p, 2,
-        "25,-100.4,-307.19,0,0,0,0 +units=m +no_defs");
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Dealul Piscului 1930 / Stereo 33\",GEOGCS[\"Dea");
+        "PROJCS[\"Minna / Nigeria Mid Belt\",GEOGCS[\"Minna\",DAT");
     add_srs_wkt (p, 1,
-        "lul Piscului 1930\",DATUM[\"Dealul_Piscului_1930\",SPHER");
+        "UM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,");
     add_srs_wkt (p, 2,
-        "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\"");
+        "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,12");
     add_srs_wkt (p, 3,
-        ",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHO");
+        "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 5,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4316");
+        "[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"]");
     add_srs_wkt (p, 7,
-        "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l");
+        ",PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        "atitude_of_origin\",45.9],PARAMETER[\"central_meridian\"");
+        "_meridian\",8.5],PARAMETER[\"scale_factor\",0.99975],PAR");
     add_srs_wkt (p, 9,
-        ",25.39246588888889],PARAMETER[\"scale_factor\",0.9996667");
+        "AMETER[\"false_easting\",670553.98],PARAMETER[\"false_no");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
-    add_srs_wkt (p, 13,
-        "EPSG\",\"31600\"]]");
-    p = add_epsg_def (filter, first, last, 31700, "epsg", 31700,
-        "Dealul Piscului 1970/ Stereo 70 (deprecated)");
+        "RITY[\"EPSG\",\"26392\"]]");
+    p = add_epsg_def (filter, first, last, 26393, "epsg", 26393,
+        "Minna / Nigeria East Belt");
     add_proj4text (p, 0,
-        "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 ");
+        "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369");
     add_proj4text (p, 1,
-        "+y_0=500000 +ellps=krass +towgs84=28,-121,-77,0,0,0,0 +u");
+        ".7 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +un");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"Dealul Piscului 1970/ Stereo 70 (deprecated)\",");
+        "PROJCS[\"Minna / Nigeria East Belt\",GEOGCS[\"Minna\",DA");
     add_srs_wkt (p, 1,
-        "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_");
+        "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145");
     add_srs_wkt (p, 2,
-        "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
+        ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1");
     add_srs_wkt (p, 3,
-        "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT");
+        "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43");
+        "Y[\"EPSG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "17\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"");
+        "],PARAMETER[\"latitude_of_origin\",4],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "latitude_of_origin\",46],PARAMETER[\"central_meridian\",");
+        "l_meridian\",12.5],PARAMETER[\"scale_factor\",0.99975],P");
     add_srs_wkt (p, 9,
-        "25],PARAMETER[\"scale_factor\",0.99975],PARAMETER[\"fals");
+        "ARAMETER[\"false_easting\",1110369.7],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "e_easting\",500000],PARAMETER[\"false_northing\",500000]");
+        "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
     add_srs_wkt (p, 11,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+        "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31700\"]");
-    add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 31838, "epsg", 31838,
-        "NGN / UTM zone 38N");
+        "HORITY[\"EPSG\",\"26393\"]]");
+    p = add_epsg_def (filter, first, last, 26432, "epsg", 26432,
+        "Mhast / UTM zone 32S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0");
+        "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "4.11,-96.38,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGN / UTM zone 38N\",GEOGCS[\"NGN\",DATUM[\"Nat");
+        "PROJCS[\"Mhast / UTM zone 32S (deprecated)\",GEOGCS[\"Mh");
     add_srs_wkt (p, 1,
-        "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298");
+        "ast\",DATUM[\"Mhast\",SPHEROID[\"International 1924\",63");
     add_srs_wkt (p, 2,
-        ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5");
+        "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-252.95,");
     add_srs_wkt (p, 3,
-        ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G");
+        "-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"6264\"]],PRIM");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat");
+        "],AUTHORITY[\"EPSG\",\"4264\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],");
+        "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no");
+        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"31838\"]]");
-    p = add_epsg_def (filter, first, last, 31839, "epsg", 31839,
-        "NGN / UTM zone 39N");
+        "NORTH],AUTHORITY[\"EPSG\",\"26432\"]]");
+    p = add_epsg_def (filter, first, last, 26591, "epsg", 26591,
+        "Monte Mario (Rome) / Italy zone 1 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0");
+        "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 ");
     add_proj4text (p, 1,
-        ",0,0,0 +units=m +no_defs");
+        "+x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9");
+    add_proj4text (p, 2,
+        ".9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NGN / UTM zone 39N\",GEOGCS[\"NGN\",DATUM[\"Nat");
+        "PROJCS[\"Monte Mario (Rome) / Italy zone 1 (deprecated)\"");
     add_srs_wkt (p, 1,
-        "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298");
+        ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\"");
     add_srs_wkt (p, 2,
-        ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5");
+        ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G");
+        "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+        "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no");
+        "METER[\"central_meridian\",-3.45233333333333],PARAMETER[");
     add_srs_wkt (p, 10,
-        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",150");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"31839\"]]");
-    p = add_epsg_def (filter, first, last, 31900, "epsg", 31900,
-        "KUDAMS / KTM (deprecated)");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"26591\"]]");
+    p = add_epsg_def (filter, first, last, 26592, "epsg", 26592,
+        "Monte Mario (Rome) / Italy zone 2 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_");
+        "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +");
     add_proj4text (p, 1,
-        "0=0 +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=");
+        "x_0=2520000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.");
     add_proj4text (p, 2,
-        "m +no_defs");
+        "9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"KUDAMS / KTM (deprecated)\",GEOGCS[\"KUDAMS\",D");
+        "PROJCS[\"Monte Mario (Rome) / Italy zone 2 (deprecated)\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"Kuwait_Utility\",SPHEROID[\"GRS 1980\",6378137,29");
+        ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\"");
     add_srs_wkt (p, 2,
-        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,");
+        ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"");
+        "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4319\"]],PROJECTION[\"Transverse_Merca");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+        "2\"]],AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transve");
     add_srs_wkt (p, 8,
-        "entral_meridian\",48],PARAMETER[\"scale_factor\",0.9996]");
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+        "METER[\"central_meridian\",2.54766666666666],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",25200");
     add_srs_wkt (p, 11,
-        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"31900\"]]");
-    p = add_epsg_def (filter, first, last, 31901, "epsg", 31901,
-        "KUDAMS / KTM");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+    add_srs_wkt (p, 13,
+        "ORTH],AUTHORITY[\"EPSG\",\"26592\"]]");
+    p = add_epsg_def (filter, first, last, 26632, "epsg", 26632,
+        "M'poraloko / UTM zone 32N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +");
+        "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-74,");
     add_proj4text (p, 1,
-        "ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=m +no");
-    add_proj4text (p, 2,
-        "_defs");
+        "-130,42,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"KUDAMS / KTM\",GEOGCS[\"KUDAMS\",DATUM[\"Kuwait");
+        "PROJCS[\"M'poraloko / UTM zone 32N\",GEOGCS[\"M'poraloko");
     add_srs_wkt (p, 1,
-        "_Utility\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
+        "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6");
     add_srs_wkt (p, 2,
-        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,11.3,2.4,0,0,");
+        "378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]]");
     add_srs_wkt (p, 3,
-        "0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"Greenwich\",");
+        ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\"");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "G\",\"4319\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        "ian\",48],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+        "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
     add_srs_wkt (p, 12,
-        "31901\"]]");
-    p = add_epsg_def (filter, first, last, 31965, "epsg", 31965,
-        "SIRGAS 2000 / UTM zone 11N");
+        "NORTH],AUTHORITY[\"EPSG\",\"26632\"]]");
+    p = add_epsg_def (filter, first, last, 26692, "epsg", 26692,
+        "M'poraloko / UTM zone 32S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "84=-74,-130,42,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 11N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"M'poraloko / UTM zone 32S\",GEOGCS[\"M'poraloko");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]]");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\"");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ARAMETER[\"central_meridian\",9],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 9,
-        ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
     add_srs_wkt (p, 10,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
     add_srs_wkt (p, 12,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31965\"]]");
-    p = add_epsg_def (filter, first, last, 31966, "epsg", 31966,
-        "SIRGAS 2000 / UTM zone 12N");
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"26692\"]]");
+    p = add_epsg_def (filter, first, last, 26701, "epsg", 26701,
+        "NAD27 / UTM zone 1N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=1 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 12N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 1N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31966\"]]");
-    p = add_epsg_def (filter, first, last, 31967, "epsg", 31967,
-        "SIRGAS 2000 / UTM zone 13N");
+        "26701\"]]");
+    p = add_epsg_def (filter, first, last, 26702, "epsg", 26702,
+        "NAD27 / UTM zone 2N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=2 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 13N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 2N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 13,
-        "\"31967\"]]");
-    p = add_epsg_def (filter, first, last, 31968, "epsg", 31968,
-        "SIRGAS 2000 / UTM zone 14N");
+        "26702\"]]");
+    p = add_epsg_def (filter, first, last, 26703, "epsg", 26703,
+        "NAD27 / UTM zone 3N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=3 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 14N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 3N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31968\"]]");
-    p = add_epsg_def (filter, first, last, 31969, "epsg", 31969,
-        "SIRGAS 2000 / UTM zone 15N");
+        "26703\"]]");
+    p = add_epsg_def (filter, first, last, 26704, "epsg", 26704,
+        "NAD27 / UTM zone 4N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=4 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 15N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 4N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31969\"]]");
-    p = add_epsg_def (filter, first, last, 31970, "epsg", 31970,
-        "SIRGAS 2000 / UTM zone 16N");
+        "26704\"]]");
+    p = add_epsg_def (filter, first, last, 26705, "epsg", 26705,
+        "NAD27 / UTM zone 5N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=5 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 16N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 5N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31970\"]]");
-    p = add_epsg_def (filter, first, last, 31971, "epsg", 31971,
-        "SIRGAS 2000 / UTM zone 17N");
+        "26705\"]]");
+    p = add_epsg_def (filter, first, last, 26706, "epsg", 26706,
+        "NAD27 / UTM zone 6N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=6 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 17N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 6N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31971\"]]");
-    p = add_epsg_def (filter, first, last, 31972, "epsg", 31972,
-        "SIRGAS 2000 / UTM zone 18N");
+        "26706\"]]");
+    p = add_epsg_def (filter, first, last, 26707, "epsg", 26707,
+        "NAD27 / UTM zone 7N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=7 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 18N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 7N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31972\"]]");
-    p = add_epsg_def (filter, first, last, 31973, "epsg", 31973,
-        "SIRGAS 2000 / UTM zone 19N");
+        "26707\"]]");
+    p = add_epsg_def (filter, first, last, 26708, "epsg", 26708,
+        "NAD27 / UTM zone 8N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=8 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 19N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 8N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31973\"]]");
-    p = add_epsg_def (filter, first, last, 31974, "epsg", 31974,
-        "SIRGAS 2000 / UTM zone 20N");
+        "26708\"]]");
+    p = add_epsg_def (filter, first, last, 26709, "epsg", 26709,
+        "NAD27 / UTM zone 9N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=9 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 20N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 9N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31974\"]]");
-    p = add_epsg_def (filter, first, last, 31975, "epsg", 31975,
-        "SIRGAS 2000 / UTM zone 21N");
+        "26709\"]]");
+    p = add_epsg_def (filter, first, last, 26710, "epsg", 26710,
+        "NAD27 / UTM zone 10N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=10 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 21N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 10N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31975\"]]");
-    p = add_epsg_def (filter, first, last, 31976, "epsg", 31976,
-        "SIRGAS 2000 / UTM zone 22N");
+        "26710\"]]");
+    p = add_epsg_def (filter, first, last, 26711, "epsg", 26711,
+        "NAD27 / UTM zone 11N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=11 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 22N\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 11N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 13,
-        "31976\"]]");
-    p = add_epsg_def (filter, first, last, 31977, "epsg", 31977,
-        "SIRGAS 2000 / UTM zone 17S");
+        "26711\"]]");
+    p = add_epsg_def (filter, first, last, 26712, "epsg", 26712,
+        "NAD27 / UTM zone 12N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=12 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 17S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 12N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31977\"]]");
-    p = add_epsg_def (filter, first, last, 31978, "epsg", 31978,
-        "SIRGAS 2000 / UTM zone 18S");
+        "26712\"]]");
+    p = add_epsg_def (filter, first, last, 26713, "epsg", 26713,
+        "NAD27 / UTM zone 13N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=13 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 18S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 13N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
     add_srs_wkt (p, 9,
-        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31978\"]]");
-    p = add_epsg_def (filter, first, last, 31979, "epsg", 31979,
-        "SIRGAS 2000 / UTM zone 19S");
+        "26713\"]]");
+    p = add_epsg_def (filter, first, last, 26714, "epsg", 26714,
+        "NAD27 / UTM zone 14N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=14 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 19S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 14N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31979\"]]");
-    p = add_epsg_def (filter, first, last, 31980, "epsg", 31980,
-        "SIRGAS 2000 / UTM zone 20S");
+        "6714\"]]");
+    p = add_epsg_def (filter, first, last, 26715, "epsg", 26715,
+        "NAD27 / UTM zone 15N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=15 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 20S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 15N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31980\"]]");
-    p = add_epsg_def (filter, first, last, 31981, "epsg", 31981,
-        "SIRGAS 2000 / UTM zone 21S");
+        "6715\"]]");
+    p = add_epsg_def (filter, first, last, 26716, "epsg", 26716,
+        "NAD27 / UTM zone 16N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=16 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 21S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 16N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31981\"]]");
-    p = add_epsg_def (filter, first, last, 31982, "epsg", 31982,
-        "SIRGAS 2000 / UTM zone 22S");
+        "6716\"]]");
+    p = add_epsg_def (filter, first, last, 26717, "epsg", 26717,
+        "NAD27 / UTM zone 17N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 22S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 17N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31982\"]]");
-    p = add_epsg_def (filter, first, last, 31983, "epsg", 31983,
-        "SIRGAS 2000 / UTM zone 23S");
+        "6717\"]]");
+    p = add_epsg_def (filter, first, last, 26718, "epsg", 26718,
+        "NAD27 / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=18 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 23S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 18N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31983\"]]");
-    p = add_epsg_def (filter, first, last, 31984, "epsg", 31984,
-        "SIRGAS 2000 / UTM zone 24S");
+        "6718\"]]");
+    p = add_epsg_def (filter, first, last, 26719, "epsg", 26719,
+        "NAD27 / UTM zone 19N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=19 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 24S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 19N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31984\"]]");
-    p = add_epsg_def (filter, first, last, 31985, "epsg", 31985,
-        "SIRGAS 2000 / UTM zone 25S");
+        "6719\"]]");
+    p = add_epsg_def (filter, first, last, 26720, "epsg", 26720,
+        "NAD27 / UTM zone 20N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,");
-    add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "+proj=utm +zone=20 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 2000 / UTM zone 25S\",GEOGCS[\"SIRGAS 20");
+        "PROJCS[\"NAD27 / UTM zone 20N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
-    add_srs_wkt (p, 13,
-        "PSG\",\"31985\"]]");
+        "6720\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_36.c b/src/srsinit/epsg_inlined_36.c
index 30b96c1..ff68c40 100644
--- a/src/srsinit/epsg_inlined_36.c
+++ b/src/srsinit/epsg_inlined_36.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,712 +52,742 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 31986, "epsg", 31986,
-        "SIRGAS 1995 / UTM zone 17N");
+    p = add_epsg_def (filter, first, last, 26721, "epsg", 26721,
+        "NAD27 / UTM zone 21N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=21 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 17N\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / UTM zone 21N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31986\"]]");
-    p = add_epsg_def (filter, first, last, 31987, "epsg", 31987,
-        "SIRGAS 1995 / UTM zone 18N");
+        "6721\"]]");
+    p = add_epsg_def (filter, first, last, 26722, "epsg", 26722,
+        "NAD27 / UTM zone 22N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
-    add_proj4text (p, 1,
-        "units=m +no_defs");
+        "+proj=utm +zone=22 +datum=NAD27 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 18N\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / UTM zone 22N\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
     add_srs_wkt (p, 9,
-        "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 12,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31987\"]]");
-    p = add_epsg_def (filter, first, last, 31988, "epsg", 31988,
-        "SIRGAS 1995 / UTM zone 19N");
+        "6722\"]]");
+    p = add_epsg_def (filter, first, last, 26729, "epsg", 26729,
+        "NAD27 / Alabama East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "9996 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 19N\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alabama East\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "latitude_of_origin\",30.5],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        ",-85.83333333333333],PARAMETER[\"scale_factor\",0.99996]");
     add_srs_wkt (p, 9,
-        "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31988\"]]");
-    p = add_epsg_def (filter, first, last, 31989, "epsg", 31989,
-        "SIRGAS 1995 / UTM zone 20N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"26729\"]]");
+    p = add_epsg_def (filter, first, last, 26730, "epsg", 26730,
+        "NAD27 / Alabama West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=1");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "52400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 20N\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alabama West\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "latitude_of_origin\",30],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "-87.5],PARAMETER[\"scale_factor\",0.999933333],PARAMETER");
     add_srs_wkt (p, 9,
-        "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 12,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31989\"]]");
-    p = add_epsg_def (filter, first, last, 31990, "epsg", 31990,
-        "SIRGAS 1995 / UTM zone 21N");
+        "UTHORITY[\"EPSG\",\"26730\"]]");
+    p = add_epsg_def (filter, first, last, 26731, "epsg", 26731,
+        "NAD27 / Alaska zone 1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "3.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5");
+    add_proj4text (p, 2,
+        "000000.001016002 +no_uoff +gamma=323.1301023611111 +datu");
+    add_proj4text (p, 3,
+        "m=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 21N\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 1\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAM");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "ETER[\"latitude_of_center\",57],PARAMETER[\"longitude_of");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "_center\",-133.6666666666667],PARAMETER[\"azimuth\",323.");
     add_srs_wkt (p, 9,
-        "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "1301023611111],PARAMETER[\"rectified_grid_angle\",323.13");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        "01023611111],PARAMETER[\"scale_factor\",0.9999],PARAMETE");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "R[\"false_easting\",16404166.67],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+        "ing\",-16404166.67],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 13,
-        ",\"31990\"]]");
-    p = add_epsg_def (filter, first, last, 31991, "epsg", 31991,
-        "SIRGAS 1995 / UTM zone 22N");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 14,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26731\"]]");
+    p = add_epsg_def (filter, first, last, 26732, "epsg", 26732,
+        "NAD27 / Alaska zone 2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+        "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400.");
     add_proj4text (p, 1,
-        "units=m +no_defs");
+        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 22N\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 2\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-142],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
+    add_srs_wkt (p, 11,
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 12,
+        "ORITY[\"EPSG\",\"26732\"]]");
+    p = add_epsg_def (filter, first, last, 26733, "epsg", 26733,
+        "NAD27 / Alaska zone 3");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400.");
+    add_proj4text (p, 1,
+        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Alaska zone 3\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-146],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
+    add_srs_wkt (p, 9,
         "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 10,
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"31991\"]]");
-    p = add_epsg_def (filter, first, last, 31992, "epsg", 31992,
-        "SIRGAS 1995 / UTM zone 17S");
+        "ORITY[\"EPSG\",\"26733\"]]");
+    p = add_epsg_def (filter, first, last, 26734, "epsg", 26734,
+        "NAD27 / Alaska zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400.");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 17S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 4\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-150],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"31992\"]]");
-    p = add_epsg_def (filter, first, last, 31993, "epsg", 31993,
-        "SIRGAS 1995 / UTM zone 18S");
+        "ORITY[\"EPSG\",\"26734\"]]");
+    p = add_epsg_def (filter, first, last, 26735, "epsg", 26735,
+        "NAD27 / Alaska zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400.");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 18S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 5\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-154],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"31993\"]]");
-    p = add_epsg_def (filter, first, last, 31994, "epsg", 31994,
-        "SIRGAS 1995 / UTM zone 19S");
+        "ORITY[\"EPSG\",\"26735\"]]");
+    p = add_epsg_def (filter, first, last, 26736, "epsg", 26736,
+        "NAD27 / Alaska zone 6");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400.");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 19S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 6\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-158],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"31994\"]]");
-    p = add_epsg_def (filter, first, last, 31995, "epsg", 31995,
-        "SIRGAS 1995 / UTM zone 20S");
+        "ORITY[\"EPSG\",\"26736\"]]");
+    p = add_epsg_def (filter, first, last, 26737, "epsg", 26737,
+        "NAD27 / Alaska zone 7");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360.");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "4267208534 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 20S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 7\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-162],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",700000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"31995\"]]");
-    p = add_epsg_def (filter, first, last, 31996, "epsg", 31996,
-        "SIRGAS 1995 / UTM zone 21S");
+        "ORITY[\"EPSG\",\"26737\"]]");
+    p = add_epsg_def (filter, first, last, 26738, "epsg", 26738,
+        "NAD27 / Alaska zone 8");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400.");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 21S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 8\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-166],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"31996\"]]");
-    p = add_epsg_def (filter, first, last, 31997, "epsg", 31997,
-        "SIRGAS 1995 / UTM zone 22S");
+        "ORITY[\"EPSG\",\"26738\"]]");
+    p = add_epsg_def (filter, first, last, 26739, "epsg", 26739,
+        "NAD27 / Alaska zone 9");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880.");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "3657607315 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 22S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 9\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "[\"latitude_of_origin\",54],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "\",-170],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "false_easting\",600000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
-    add_srs_wkt (p, 13,
-        "\"EPSG\",\"31997\"]]");
-    p = add_epsg_def (filter, first, last, 31998, "epsg", 31998,
-        "SIRGAS 1995 / UTM zone 23S");
+        "ORITY[\"EPSG\",\"26739\"]]");
+    p = add_epsg_def (filter, first, last, 26740, "epsg", 26740,
+        "NAD27 / Alaska zone 10");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 ");
+    add_proj4text (p, 2,
+        "+datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 23S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / Alaska zone 10\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "PARAMETER[\"standard_parallel_1\",53.83333333333334],PAR");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "AMETER[\"standard_parallel_2\",51.83333333333334],PARAME");
     add_srs_wkt (p, 9,
-        "an\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "TER[\"latitude_of_origin\",51],PARAMETER[\"central_merid");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "ian\",-176],PARAMETER[\"false_easting\",3000000],PARAMET");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+        "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS");
     add_srs_wkt (p, 13,
-        "\"EPSG\",\"31998\"]]");
-    p = add_epsg_def (filter, first, last, 31999, "epsg", 31999,
-        "SIRGAS 1995 / UTM zone 24S");
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26740\"]]");
+    p = add_epsg_def (filter, first, last, 26741, "epsg", 26741,
+        "NAD27 / California zone I");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "3333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 ");
+    add_proj4text (p, 2,
+        "+datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 24S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / California zone I\",GEOGCS[\"NAD27\",DA");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "],PARAMETER[\"standard_parallel_1\",41.66666666666666],P");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        "ARAMETER[\"standard_parallel_2\",40],PARAMETER[\"latitud");
     add_srs_wkt (p, 9,
-        "an\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "e_of_origin\",39.33333333333334],PARAMETER[\"central_mer");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "idian\",-122],PARAMETER[\"false_easting\",2000000],PARAM");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
     add_srs_wkt (p, 13,
-        "\"EPSG\",\"31999\"]]");
-    p = add_epsg_def (filter, first, last, 32000, "epsg", 32000,
-        "SIRGAS 1995 / UTM zone 25S");
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26741\"]]");
+    p = add_epsg_def (filter, first, last, 26742, "epsg", 26742,
+        "NAD27 / California zone II");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+        "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333");
     add_proj4text (p, 1,
-        "0,0,0 +units=m +no_defs");
+        "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.219");
+    add_proj4text (p, 2,
+        "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"SIRGAS 1995 / UTM zone 25S\",GEOGCS[\"SIRGAS 19");
+        "PROJCS[\"NAD27 / California zone II\",GEOGCS[\"NAD27\",D");
     add_srs_wkt (p, 1,
-        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
     add_srs_wkt (p, 2,
-        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
-        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 7,
-        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+        "\"],PARAMETER[\"standard_parallel_1\",39.83333333333334]");
     add_srs_wkt (p, 8,
-        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+        ",PARAMETER[\"standard_parallel_2\",38.33333333333334],PA");
     add_srs_wkt (p, 9,
-        "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+        "RAMETER[\"latitude_of_origin\",37.66666666666666],PARAME");
     add_srs_wkt (p, 10,
-        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+        "TER[\"central_meridian\",-122],PARAMETER[\"false_easting");
     add_srs_wkt (p, 11,
-        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su");
     add_srs_wkt (p, 12,
-        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
     add_srs_wkt (p, 13,
-        "\"EPSG\",\"32000\"]]");
-    p = add_epsg_def (filter, first, last, 32001, "epsg", 32001,
-        "NAD27 / Montana North");
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"26742\"]]");
+    p = add_epsg_def (filter, first, last, 26743, "epsg", 26743,
+        "NAD27 / California zone III");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=4");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666");
     add_proj4text (p, 1,
-        "7 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD");
+        "667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_");
     add_proj4text (p, 2,
-        "27 +units=us-ft +no_defs");
+        "0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Montana North\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD27 / California zone III\",GEOGCS[\"NAD27\",");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 7,
-        "ARAMETER[\"standard_parallel_1\",48.71666666666667],PARA");
+        "\"],PARAMETER[\"standard_parallel_1\",38.43333333333333]");
     add_srs_wkt (p, 8,
-        "METER[\"standard_parallel_2\",47.85],PARAMETER[\"latitud");
+        ",PARAMETER[\"standard_parallel_2\",37.06666666666667],PA");
     add_srs_wkt (p, 9,
-        "e_of_origin\",47],PARAMETER[\"central_meridian\",-109.5]");
+        "RAMETER[\"latitude_of_origin\",36.5],PARAMETER[\"central");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_");
+        "_meridian\",-120.5],PARAMETER[\"false_easting\",2000000]");
     add_srs_wkt (p, 11,
-        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
     add_srs_wkt (p, 13,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32001\"]]");
-    p = add_epsg_def (filter, first, last, 32002, "epsg", 32002,
-        "NAD27 / Montana Central");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26743\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 26744, "epsg", 26744,
+        "NAD27 / California zone IV");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=4");
+        "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333");
     add_proj4text (p, 1,
-        "5.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y");
+        "4 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +datum=NAD27");
     add_proj4text (p, 2,
-        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Montana Central\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD27 / California zone IV\",GEOGCS[\"NAD27\",D");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",47.88333333333333],PAR");
+        "\"],PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",46.45],PARAMETER[\"latitu");
+        "standard_parallel_2\",36],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 9,
-        "de_of_origin\",45.83333333333334],PARAMETER[\"central_me");
+        "\",35.33333333333334],PARAMETER[\"central_meridian\",-11");
     add_srs_wkt (p, 10,
-        "ridian\",-109.5],PARAMETER[\"false_easting\",2000000],PA");
+        "9],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
     add_srs_wkt (p, 12,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32002\"]]");
-    p = add_epsg_def (filter, first, last, 32003, "epsg", 32003,
-        "NAD27 / Montana South");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26744\"]]");
+    p = add_epsg_def (filter, first, last, 26745, "epsg", 26745,
+        "NAD27 / California zone V");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44");
+        "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333");
     add_proj4text (p, 1,
-        " +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2");
+        "333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=");
     add_proj4text (p, 2,
-        "7 +units=us-ft +no_defs");
+        "0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Montana South\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD27 / California zone V\",GEOGCS[\"NAD27\",DA");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 7,
-        "ARAMETER[\"standard_parallel_1\",46.4],PARAMETER[\"stand");
+        "],PARAMETER[\"standard_parallel_1\",35.46666666666667],P");
     add_srs_wkt (p, 8,
-        "ard_parallel_2\",44.86666666666667],PARAMETER[\"latitude");
+        "ARAMETER[\"standard_parallel_2\",34.03333333333333],PARA");
     add_srs_wkt (p, 9,
-        "_of_origin\",44],PARAMETER[\"central_meridian\",-109.5],");
+        "METER[\"latitude_of_origin\",33.5],PARAMETER[\"central_m");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n");
+        "eridian\",-118],PARAMETER[\"false_easting\",2000000],PAR");
     add_srs_wkt (p, 11,
-        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
+        "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32003\"]]");
-    p = add_epsg_def (filter, first, last, 32005, "epsg", 32005,
-        "NAD27 / Nebraska North");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26745\"]]");
+    p = add_epsg_def (filter, first, last, 26746, "epsg", 26746,
+        "NAD27 / California zone VI");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=4");
+        "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333");
     add_proj4text (p, 1,
-        "1.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0");
+        "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        "2192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Nebraska North\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / California zone VI\",GEOGCS[\"NAD27\",D");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",41.85],PARAMETER[\"sta");
+        "\"],PARAMETER[\"standard_parallel_1\",33.88333333333333]");
     add_srs_wkt (p, 8,
-        "ndard_parallel_2\",42.81666666666667],PARAMETER[\"latitu");
+        ",PARAMETER[\"standard_parallel_2\",32.78333333333333],PA");
     add_srs_wkt (p, 9,
-        "de_of_origin\",41.33333333333334],PARAMETER[\"central_me");
+        "RAMETER[\"latitude_of_origin\",32.16666666666666],PARAME");
     add_srs_wkt (p, 10,
-        "ridian\",-100],PARAMETER[\"false_easting\",2000000],PARA");
+        "TER[\"central_meridian\",-116.25],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+        "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US");
     add_srs_wkt (p, 12,
-        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+        " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32005\"]]");
-    p = add_epsg_def (filter, first, last, 32006, "epsg", 32006,
-        "NAD27 / Nebraska South");
+        "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 14,
+        "PSG\",\"26746\"]]");
+    p = add_epsg_def (filter, first, last, 26747, "epsg", 26747,
+        "NAD27 / California zone VII (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666");
+        "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666");
     add_proj4text (p, 1,
-        "667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.21");
+        "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "x_0=1276106.450596901 +y_0=127079.524511049 +datum=NAD27");
+    add_proj4text (p, 3,
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Nebraska South\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / California zone VII (deprecated)\",GEOG");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "CS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROI");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "D[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",40.28333333333333],PAR");
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.4");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",41.71666666666667],PARAME");
+        "1666666666666],PARAMETER[\"standard_parallel_2\",33.8666");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",39.66666666666666],PARAMETER[");
+        "6666666667],PARAMETER[\"latitude_of_origin\",34.13333333");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-99.5],PARAMETER[\"false_easting\",");
+        "333333],PARAMETER[\"central_meridian\",-118.333333333333");
     add_srs_wkt (p, 11,
-        "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
+        "3],PARAMETER[\"false_easting\",4186692.58],PARAMETER[\"f");
     add_srs_wkt (p, 12,
-        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+        "alse_northing\",416926.74],UNIT[\"US survey foot\",0.304");
     add_srs_wkt (p, 13,
-        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
     add_srs_wkt (p, 14,
-        "\"32006\"]]");
-    p = add_epsg_def (filter, first, last, 32007, "epsg", 32007,
-        "NAD27 / Nevada East");
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26747\"]]");
+    p = add_epsg_def (filter, first, last, 26748, "epsg", 26748,
+        "NAD27 / Arizona East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
+        "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
     add_proj4text (p, 2,
-        "s-ft +no_defs");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Nevada East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Arizona East\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -767,65 +797,65 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",34.75],PARAMETER[\"central_meridian");
+        "latitude_of_origin\",31],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 8,
-        "\",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999");
+        "-110.1666666666667],PARAMETER[\"scale_factor\",0.9999],P");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 10,
-        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32007\"]]");
-    p = add_epsg_def (filter, first, last, 32008, "epsg", 32008,
-        "NAD27 / Nevada Central");
+        "NORTH],AUTHORITY[\"EPSG\",\"26748\"]]");
+    p = add_epsg_def (filter, first, last, 26749, "epsg", 26749,
+        "NAD27 / Arizona Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
+        "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999");
     add_proj4text (p, 1,
-        "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
     add_proj4text (p, 2,
-        "s-ft +no_defs");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Nevada Central\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / Arizona Central\",GEOGCS[\"NAD27\",DATU");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
         ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri");
+        "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 8,
-        "dian\",-116.6666666666667],PARAMETER[\"scale_factor\",0.");
+        "n\",-111.9166666666667],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
+        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
     add_srs_wkt (p, 11,
-        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32008\"]]");
-    p = add_epsg_def (filter, first, last, 32009, "epsg", 32009,
-        "NAD27 / Nevada West");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26749\"]]");
+    p = add_epsg_def (filter, first, last, 26750, "epsg", 26750,
+        "NAD27 / Arizona West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
+        "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0");
     add_proj4text (p, 1,
-        "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+        "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_");
     add_proj4text (p, 2,
-        "s-ft +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Nevada West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Arizona West\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -835,451 +865,459 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",34.75],PARAMETER[\"central_meridian");
+        "latitude_of_origin\",31],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 8,
-        "\",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999");
+        "-113.75],PARAMETER[\"scale_factor\",0.999933333],PARAMET");
     add_srs_wkt (p, 9,
-        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+        "ER[\"false_easting\",500000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 10,
-        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
     add_srs_wkt (p, 11,
-        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32009\"]]");
-    p = add_epsg_def (filter, first, last, 32010, "epsg", 32010,
-        "NAD27 / New Hampshire");
+        "AUTHORITY[\"EPSG\",\"26750\"]]");
+    p = add_epsg_def (filter, first, last, 26751, "epsg", 26751,
+        "NAD27 / Arkansas North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9");
+        "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333");
     add_proj4text (p, 1,
-        "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+        "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192");
     add_proj4text (p, 2,
-        "ts=us-ft +no_defs");
+        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New Hampshire\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD27 / Arkansas North\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",42.5],PARAMETER[\"central_meridi");
+        "PARAMETER[\"standard_parallel_1\",36.23333333333333],PAR");
     add_srs_wkt (p, 8,
-        "an\",-71.66666666666667],PARAMETER[\"scale_factor\",0.99");
+        "AMETER[\"standard_parallel_2\",34.93333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "9966667],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "TER[\"latitude_of_origin\",34.33333333333334],PARAMETER[");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "\"central_meridian\",-92],PARAMETER[\"false_easting\",20");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey ");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32010\"]]");
-    p = add_epsg_def (filter, first, last, 32011, "epsg", 32011,
-        "NAD27 / New Jersey");
-    add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666");
-    add_proj4text (p, 1,
-        "666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0");
+        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "26751\"]]");
+    p = add_epsg_def (filter, first, last, 26752, "epsg", 26752,
+        "NAD27 / Arkansas South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32");
+    add_proj4text (p, 1,
+        ".66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        " +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New Jersey\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD27 / Arkansas South\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent");
+        "PARAMETER[\"standard_parallel_1\",34.76666666666667],PAR");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-74.66666666666667],PARAMETER[\"scale_fac");
+        "AMETER[\"standard_parallel_2\",33.3],PARAMETER[\"latitud");
     add_srs_wkt (p, 9,
-        "tor\",0.999975],PARAMETER[\"false_easting\",2000000],PAR");
+        "e_of_origin\",32.66666666666666],PARAMETER[\"central_mer");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3");
+        "idian\",-92],PARAMETER[\"false_easting\",2000000],PARAME");
     add_srs_wkt (p, 11,
-        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048");
     add_srs_wkt (p, 12,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32011\"]]");
-    p = add_epsg_def (filter, first, last, 32012, "epsg", 32012,
-        "NAD27 / New Mexico East");
+        "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA");
+    add_srs_wkt (p, 13,
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26752\"]]");
+    p = add_epsg_def (filter, first, last, 26753, "epsg", 26753,
+        "NAD27 / Colorado North");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999");
+        "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333");
     add_proj4text (p, 1,
-        "909091 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+        "333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2");
     add_proj4text (p, 2,
-        "=us-ft +no_defs");
+        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New Mexico East\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD27 / Colorado North\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia");
+        "PARAMETER[\"standard_parallel_1\",39.71666666666667],PAR");
     add_srs_wkt (p, 8,
-        "n\",-104.3333333333333],PARAMETER[\"scale_factor\",0.999");
+        "AMETER[\"standard_parallel_2\",40.78333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "909091],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "TER[\"latitude_of_origin\",39.33333333333334],PARAMETER[");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "\"central_meridian\",-105.5],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32012\"]]");
-    p = add_epsg_def (filter, first, last, 32013, "epsg", 32013,
-        "NAD27 / New Mexico Central");
+        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 14,
+        ",\"26753\"]]");
+    p = add_epsg_def (filter, first, last, 26754, "epsg", 26754,
+        "NAD27 / Colorado Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=1524");
+        "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333");
     add_proj4text (p, 1,
-        "00.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "3334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +datum=");
+    add_proj4text (p, 2,
+        "NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New Mexico Central\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD27 / Colorado Central\",GEOGCS[\"NAD27\",DAT");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer");
+        "PARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"sta");
     add_srs_wkt (p, 8,
-        "idian\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARA");
+        "ndard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin");
     add_srs_wkt (p, 9,
-        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+        "\",37.83333333333334],PARAMETER[\"central_meridian\",-10");
     add_srs_wkt (p, 10,
-        "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
+        "5.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"32013\"]]");
-    p = add_epsg_def (filter, first, last, 32014, "epsg", 32014,
-        "NAD27 / New Mexico West");
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26754\"]]");
+    p = add_epsg_def (filter, first, last, 26755, "epsg", 26755,
+        "NAD27 / Colorado South");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333");
     add_proj4text (p, 1,
-        "916667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+        "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2");
     add_proj4text (p, 2,
-        "=us-ft +no_defs");
+        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New Mexico West\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD27 / Colorado South\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia");
+        "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR");
     add_srs_wkt (p, 8,
-        "n\",-107.8333333333333],PARAMETER[\"scale_factor\",0.999");
+        "AMETER[\"standard_parallel_2\",37.23333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "916667],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "TER[\"latitude_of_origin\",36.66666666666666],PARAMETER[");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+        "\"central_meridian\",-105.5],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32014\"]]");
-    p = add_epsg_def (filter, first, last, 32015, "epsg", 32015,
-        "NAD27 / New York East");
+        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 14,
+        ",\"26755\"]]");
+    p = add_epsg_def (filter, first, last, 26756, "epsg", 26756,
+        "NAD27 / Connecticut");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999");
+        "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40");
     add_proj4text (p, 1,
-        "966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+        ".83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_");
     add_proj4text (p, 2,
-        "=us-ft +no_defs");
+        "0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New York East\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD27 / Connecticut\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian");
+        "AMETER[\"standard_parallel_1\",41.86666666666667],PARAME");
     add_srs_wkt (p, 8,
-        "\",-74.33333333333333],PARAMETER[\"scale_factor\",0.9999");
+        "TER[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_o");
     add_srs_wkt (p, 9,
-        "66667],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+        "f_origin\",40.83333333333334],PARAMETER[\"central_meridi");
     add_srs_wkt (p, 10,
-        "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960");
+        "an\",-72.75],PARAMETER[\"false_easting\",600000],PARAMET");
     add_srs_wkt (p, 11,
-        "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI");
+        "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480");
     add_srs_wkt (p, 12,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32015\"]]");
-    p = add_epsg_def (filter, first, last, 32016, "epsg", 32016,
-        "NAD27 / New York Central");
+        "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS");
+    add_srs_wkt (p, 13,
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26756\"]]");
+    p = add_epsg_def (filter, first, last, 26757, "epsg", 26757,
+        "NAD27 / Delaware");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999");
+        "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+        "995 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us");
     add_proj4text (p, 2,
-        "s-ft +no_defs");
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New York Central\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD27 / Delaware\",GEOGCS[\"NAD27\",DATUM[\"Nor");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTH");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",40],PARAMETER[\"central_meridia");
+        "titude_of_origin\",38],PARAMETER[\"central_meridian\",-7");
     add_srs_wkt (p, 8,
-        "n\",-76.58333333333333],PARAMETER[\"scale_factor\",0.999");
+        "5.41666666666667],PARAMETER[\"scale_factor\",0.999995],P");
     add_srs_wkt (p, 9,
-        "9375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 10,
-        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
+        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
     add_srs_wkt (p, 11,
-        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32016\"]]");
-    p = add_epsg_def (filter, first, last, 32017, "epsg", 32017,
-        "NAD27 / New York West");
+        "NORTH],AUTHORITY[\"EPSG\",\"26757\"]]");
+    p = add_epsg_def (filter, first, last, 26758, "epsg", 26758,
+        "NAD27 / Florida East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999");
     add_proj4text (p, 1,
-        "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+        "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
     add_proj4text (p, 2,
-        "s-ft +no_defs");
+        "=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New York West\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD27 / Florida East\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian");
+        "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "\",-78.58333333333333],PARAMETER[\"scale_factor\",0.9999");
+        "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9999411");
     add_srs_wkt (p, 9,
-        "375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32017\"]]");
-    p = add_epsg_def (filter, first, last, 32018, "epsg", 32018,
-        "NAD27 / New York Long Island (deprecated)");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26758\"]]");
+    p = add_epsg_def (filter, first, last, 26759, "epsg", 26759,
+        "NAD27 / Florida West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999");
     add_proj4text (p, 1,
-        "666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0");
+        "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
     add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / New York Long Island (deprecated)\",GEO");
+        "PROJCS[\"NAD27 / Florida West\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "GCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHERO");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIME");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conf");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.");
+        "latitude_of_origin\",24.33333333333333],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "03333333333333],PARAMETER[\"standard_parallel_2\",40.666");
+        "ral_meridian\",-82],PARAMETER[\"scale_factor\",0.9999411");
     add_srs_wkt (p, 9,
-        "66666666666],PARAMETER[\"latitude_of_origin\",40.5],PARA");
+        "77],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "METER[\"central_meridian\",-74],PARAMETER[\"false_eastin");
+        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
     add_srs_wkt (p, 11,
-        "g\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
-    add_srs_wkt (p, 13,
-        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 14,
-        "G\",\"32018\"]]");
-    p = add_epsg_def (filter, first, last, 32019, "epsg", 32019,
-        "NAD27 / North Carolina");
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26759\"]]");
+    p = add_epsg_def (filter, first, last, 26760, "epsg", 26760,
+        "NAD27 / Florida North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666");
+        "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2");
     add_proj4text (p, 1,
-        "666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=");
+        "9 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2");
     add_proj4text (p, 2,
-        "0 +datum=NAD27 +units=us-ft +no_defs");
+        "7 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / North Carolina\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / Florida North\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",34.33333333333334],PAR");
+        "ARAMETER[\"standard_parallel_1\",30.75],PARAMETER[\"stan");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",36.16666666666666],PARAME");
+        "dard_parallel_2\",29.58333333333333],PARAMETER[\"latitud");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",33.75],PARAMETER[\"central_me");
+        "e_of_origin\",29],PARAMETER[\"central_meridian\",-84.5],");
     add_srs_wkt (p, 10,
-        "ridian\",-79],PARAMETER[\"false_easting\",2000000],PARAM");
+        "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
+        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
     add_srs_wkt (p, 12,
-        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 13,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32019\"]]");
-    p = add_epsg_def (filter, first, last, 32020, "epsg", 32020,
-        "NAD27 / North Dakota North");
+        ",NORTH],AUTHORITY[\"EPSG\",\"26760\"]]");
+    p = add_epsg_def (filter, first, last, 26766, "epsg", 26766,
+        "NAD27 / Georgia East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333");
+        "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=");
+        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
     add_proj4text (p, 2,
-        "0 +datum=NAD27 +units=us-ft +no_defs");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / North Dakota North\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD27 / Georgia East\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",47.43333333333333]");
+        "latitude_of_origin\",30],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",48.73333333333333],PA");
+        "-82.16666666666667],PARAMETER[\"scale_factor\",0.9999],P");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_m");
+        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 10,
-        "eridian\",-100.5],PARAMETER[\"false_easting\",2000000],P");
+        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
     add_srs_wkt (p, 11,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
-    add_srs_wkt (p, 13,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32020\"]");
-    add_srs_wkt (p, 14,
-        "]");
-    p = add_epsg_def (filter, first, last, 32021, "epsg", 32021,
-        "NAD27 / North Dakota South");
+        "NORTH],AUTHORITY[\"EPSG\",\"26766\"]]");
+    p = add_epsg_def (filter, first, last, 26767, "epsg", 26767,
+        "NAD27 / Georgia West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333");
+        "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2");
+        "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f");
     add_proj4text (p, 2,
-        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / North Dakota South\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD27 / Georgia West\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",46.18333333333333]");
+        "latitude_of_origin\",30],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",47.48333333333333],PA");
+        "-84.16666666666667],PARAMETER[\"scale_factor\",0.9999],P");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",45.66666666666666],PARAME");
+        "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-100.5],PARAMETER[\"false_easti");
+        "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU");
     add_srs_wkt (p, 11,
-        "ng\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US ");
+        "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90");
-    add_srs_wkt (p, 13,
-        "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
-    add_srs_wkt (p, 14,
-        "SG\",\"32021\"]]");
-    p = add_epsg_def (filter, first, last, 32022, "epsg", 32022,
-        "NAD27 / Ohio North");
+        "NORTH],AUTHORITY[\"EPSG\",\"26767\"]]");
+    p = add_epsg_def (filter, first, last, 26768, "epsg", 26768,
+        "NAD27 / Idaho East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666");
     add_proj4text (p, 1,
-        ".66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0");
+        "666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0");
     add_proj4text (p, 2,
         "=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Ohio North\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD27 / Idaho East\",GEOGCS[\"NAD27\",DATUM[\"N");
     add_srs_wkt (p, 1,
         "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
         "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
@@ -1287,181 +1325,175 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 5,
         "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "METER[\"standard_parallel_1\",40.43333333333333],PARAMET");
+        "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",41.7],PARAMETER[\"latitude_of");
+        "ral_meridian\",-112.1666666666667],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "_origin\",39.66666666666666],PARAMETER[\"central_meridia");
+        "tor\",0.999947368],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "n\",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26768\"]");
     add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32022\"]]");
-    p = add_epsg_def (filter, first, last, 32023, "epsg", 32023,
-        "NAD27 / Ohio South");
+        "]");
+    p = add_epsg_def (filter, first, last, 26769, "epsg", 26769,
+        "NAD27 / Idaho Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99");
     add_proj4text (p, 1,
-        "333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0");
+        "99473679999999 +x_0=152400.3048006096 +y_0=0 +datum=NAD2");
     add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "7 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Ohio South\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD27 / Idaho Central\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "METER[\"standard_parallel_1\",38.73333333333333],PARAMET");
+        "[\"latitude_of_origin\",41.66666666666666],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",40.03333333333333],PARAMETER[");
+        "entral_meridian\",-114],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "\"latitude_of_origin\",38],PARAMETER[\"central_meridian\"");
+        "947368],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        ",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"");
-    add_srs_wkt (p, 11,
         "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
-    add_srs_wkt (p, 12,
+    add_srs_wkt (p, 11,
         "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
-    add_srs_wkt (p, 13,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32023\"]]");
-    p = add_epsg_def (filter, first, last, 32024, "epsg", 32024,
-        "NAD27 / Oklahoma North");
+    add_srs_wkt (p, 12,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26769\"]]");
+    p = add_epsg_def (filter, first, last, 26770, "epsg", 26770,
+        "NAD27 / Idaho West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0");
     add_proj4text (p, 1,
-        "667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +");
+        ".999933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u");
     add_proj4text (p, 2,
-        "datum=NAD27 +units=us-ft +no_defs");
+        "nits=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Oklahoma North\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / Idaho West\",GEOGCS[\"NAD27\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",35.56666666666667],PAR");
+        "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",36.76666666666667],PARAME");
+        "ral_meridian\",-115.75],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",35],PARAMETER[\"central_merid");
+        "933333],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ian\",-98],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
-    add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32024\"]]");
-    p = add_epsg_def (filter, first, last, 32025, "epsg", 32025,
-        "NAD27 / Oklahoma South");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26770\"]]");
+    p = add_epsg_def (filter, first, last, 26771, "epsg", 26771,
+        "NAD27 / Illinois East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333");
     add_proj4text (p, 1,
-        "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192");
+        "333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0");
     add_proj4text (p, 2,
-        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Oklahoma South\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / Illinois East\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",33.93333333333333],PAR");
+        "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",35.23333333333333],PARAME");
+        "entral_meridian\",-88.33333333333333],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",33.33333333333334],PARAMETER[");
+        "factor\",0.999975],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-98],PARAMETER[\"false_easting\",20");
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
     add_srs_wkt (p, 11,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey ");
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
     add_srs_wkt (p, 12,
-        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26771\"]");
     add_srs_wkt (p, 13,
-        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 14,
-        "32025\"]]");
-    p = add_epsg_def (filter, first, last, 32026, "epsg", 32026,
-        "NAD27 / Oregon North");
+        "]");
+    p = add_epsg_def (filter, first, last, 26772, "epsg", 26772,
+        "NAD27 / Illinois West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.6");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666");
     add_proj4text (p, 1,
-        "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=");
+        "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
     add_proj4text (p, 2,
-        "0 +datum=NAD27 +units=us-ft +no_defs");
+        "um=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Oregon North\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Illinois West\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",44.33333333333334],PARAME");
+        "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_");
+        "entral_meridian\",-90.16666666666667],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "origin\",43.66666666666666],PARAMETER[\"central_meridian");
+        "factor\",0.999941177],PARAMETER[\"false_easting\",500000");
     add_srs_wkt (p, 10,
-        "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26772\"");
     add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32026\"]]");
-    p = add_epsg_def (filter, first, last, 32027, "epsg", 32027,
-        "NAD27 / Oregon South");
+        "]]");
+    p = add_epsg_def (filter, first, last, 26773, "epsg", 26773,
+        "NAD27 / Indiana East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.6");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=");
+        "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        "0 +datum=NAD27 +units=us-ft +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Oregon South\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Indiana East\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
         "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
         "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
@@ -1469,741 +1501,689 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 5,
         "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",42.33333333333334],PARAME");
+        "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",44],PARAMETER[\"latitude_of_");
+        ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966");
     add_srs_wkt (p, 9,
-        "origin\",41.66666666666666],PARAMETER[\"central_meridian");
+        "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
-    add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32027\"]]");
-    p = add_epsg_def (filter, first, last, 32028, "epsg", 32028,
-        "NAD27 / Pennsylvania North");
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26773\"]]");
+    p = add_epsg_def (filter, first, last, 26774, "epsg", 26774,
+        "NAD27 / Indiana West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=4");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "0.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y");
+        "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Pennsylvania North\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD27 / Indiana West\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",40.88333333333333]");
+        "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",41.95],PARAMETER[\"la");
+        ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966");
     add_srs_wkt (p, 9,
-        "titude_of_origin\",40.16666666666666],PARAMETER[\"centra");
+        "667],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "l_meridian\",-77.75],PARAMETER[\"false_easting\",2000000");
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
     add_srs_wkt (p, 11,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
     add_srs_wkt (p, 12,
-        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32028\"");
-    add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32029, "epsg", 32029,
-        "NAD27 / Pennsylvania South (deprecated)");
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26774\"]]");
+    p = add_epsg_def (filter, first, last, 26775, "epsg", 26775,
+        "NAD27 / Iowa North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39");
+        "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
-        ".33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_");
+        "667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0");
     add_proj4text (p, 2,
-        "0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Pennsylvania South (deprecated)\",GEOGC");
+        "PROJCS[\"NAD27 / Iowa North\",GEOGCS[\"NAD27\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "S[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID");
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
-        "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"");
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conforma");
+        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.9333");
+        "METER[\"standard_parallel_1\",43.26666666666667],PARAMET");
     add_srs_wkt (p, 8,
-        "3333333333],PARAMETER[\"standard_parallel_2\",40.8],PARA");
+        "ER[\"standard_parallel_2\",42.06666666666667],PARAMETER[");
     add_srs_wkt (p, 9,
-        "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE");
+        "\"latitude_of_origin\",41.5],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 10,
-        "R[\"central_meridian\",-77.75],PARAMETER[\"false_easting");
+        "n\",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
     add_srs_wkt (p, 11,
-        "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su");
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
     add_srs_wkt (p, 12,
-        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
     add_srs_wkt (p, 13,
-        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
-    add_srs_wkt (p, 14,
-        "\",\"32029\"]]");
-    p = add_epsg_def (filter, first, last, 32030, "epsg", 32030,
-        "NAD27 / Rhode Island");
-    add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9");
-    add_proj4text (p, 1,
-        "999938 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
-    add_proj4text (p, 2,
-        "=us-ft +no_defs");
-    add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Rhode Island\",GEOGCS[\"NAD27\",DATUM[\"");
-    add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
-    add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
-    add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
-    add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
-    add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
-    add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
-    add_srs_wkt (p, 7,
-        "latitude_of_origin\",41.08333333333334],PARAMETER[\"cent");
-    add_srs_wkt (p, 8,
-        "ral_meridian\",-71.5],PARAMETER[\"scale_factor\",0.99999");
-    add_srs_wkt (p, 9,
-        "38],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
-    add_srs_wkt (p, 10,
-        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
-    add_srs_wkt (p, 11,
-        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32030\"]]");
-    p = add_epsg_def (filter, first, last, 32031, "epsg", 32031,
-        "NAD27 / South Carolina North");
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26775\"]]");
+    p = add_epsg_def (filter, first, last, 26776, "epsg", 26776,
+        "NAD27 / Iowa South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666");
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
-        "667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +");
+        "667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0");
     add_proj4text (p, 2,
-        "datum=NAD27 +units=us-ft +no_defs");
+        " +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / South Carolina North\",GEOGCS[\"NAD27\"");
+        "PROJCS[\"NAD27 / Iowa South\",GEOGCS[\"NAD27\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
-        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
     add_srs_wkt (p, 7,
-        "SP\"],PARAMETER[\"standard_parallel_1\",33.7666666666666");
+        "METER[\"standard_parallel_1\",41.78333333333333],PARAMET");
     add_srs_wkt (p, 8,
-        "7],PARAMETER[\"standard_parallel_2\",34.96666666666667],");
+        "ER[\"standard_parallel_2\",40.61666666666667],PARAMETER[");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"central");
+        "\"latitude_of_origin\",40],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 10,
-        "_meridian\",-81],PARAMETER[\"false_easting\",2000000],PA");
+        ",-93.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 12,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32031\"]]");
-    p = add_epsg_def (filter, first, last, 32033, "epsg", 32033,
-        "NAD27 / South Carolina South");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26776\"]]");
+    p = add_epsg_def (filter, first, last, 26777, "epsg", 26777,
+        "NAD27 / Kansas North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666");
+        "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
-        "666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192");
+        "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192");
     add_proj4text (p, 2,
         "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / South Carolina South\",GEOGCS[\"NAD27\"");
+        "PROJCS[\"NAD27 / Kansas North\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
     add_srs_wkt (p, 7,
-        "SP\"],PARAMETER[\"standard_parallel_1\",32.3333333333333");
+        "AMETER[\"standard_parallel_1\",39.78333333333333],PARAME");
     add_srs_wkt (p, 8,
-        "4],PARAMETER[\"standard_parallel_2\",33.66666666666666],");
+        "TER[\"standard_parallel_2\",38.71666666666667],PARAMETER");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"latitude_of_origin\",31.83333333333333],PARA");
+        "[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"c");
     add_srs_wkt (p, 10,
-        "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin");
+        "entral_meridian\",-98],PARAMETER[\"false_easting\",20000");
     add_srs_wkt (p, 11,
-        "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo");
     add_srs_wkt (p, 12,
-        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
     add_srs_wkt (p, 13,
-        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267");
     add_srs_wkt (p, 14,
-        "G\",\"32033\"]]");
-    p = add_epsg_def (filter, first, last, 32034, "epsg", 32034,
-        "NAD27 / South Dakota North");
+        "77\"]]");
+    p = add_epsg_def (filter, first, last, 26778, "epsg", 26778,
+        "NAD27 / Kansas South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333");
+        "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
-        "333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.219");
+        "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.21");
     add_proj4text (p, 2,
-        "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / South Dakota North\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD27 / Kansas South\",GEOGCS[\"NAD27\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",44.41666666666666]");
+        "AMETER[\"standard_parallel_1\",38.56666666666667],PARAME");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",45.68333333333333],PA");
+        "TER[\"standard_parallel_2\",37.26666666666667],PARAMETER");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",43.83333333333334],PARAME");
+        "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-100],PARAMETER[\"false_easting");
+        "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200");
     add_srs_wkt (p, 11,
-        "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f");
     add_srs_wkt (p, 12,
-        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
+        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
     add_srs_wkt (p, 13,
-        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2");
     add_srs_wkt (p, 14,
-        "\",\"32034\"]]");
-    p = add_epsg_def (filter, first, last, 32035, "epsg", 32035,
-        "NAD27 / South Dakota South");
+        "6778\"]]");
+    p = add_epsg_def (filter, first, last, 26779, "epsg", 26779,
+        "NAD27 / Kentucky North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42");
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666");
     add_proj4text (p, 1,
-        ".33333333333334 +lon_0=-100.3333333333333 +x_0=609601.21");
+        "667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / South Dakota South\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD27 / Kentucky North\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",42.83333333333334]");
+        "PARAMETER[\"standard_parallel_1\",37.96666666666667],PAR");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",44.4],PARAMETER[\"lat");
+        "AMETER[\"standard_parallel_2\",38.96666666666667],PARAME");
     add_srs_wkt (p, 9,
-        "itude_of_origin\",42.33333333333334],PARAMETER[\"central");
+        "TER[\"latitude_of_origin\",37.5],PARAMETER[\"central_mer");
     add_srs_wkt (p, 10,
-        "_meridian\",-100.3333333333333],PARAMETER[\"false_eastin");
+        "idian\",-84.25],PARAMETER[\"false_easting\",2000000],PAR");
     add_srs_wkt (p, 11,
-        "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+        "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3");
     add_srs_wkt (p, 12,
-        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
     add_srs_wkt (p, 13,
-        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 14,
-        "G\",\"32035\"]]");
-    p = add_epsg_def (filter, first, last, 32036, "epsg", 32036,
-        "NAD27 / Tennessee (deprecated)");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26779\"]]");
+    p = add_epsg_def (filter, first, last, 26780, "epsg", 26780,
+        "NAD27 / Kentucky South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3");
+        "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333");
     add_proj4text (p, 1,
-        "4.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=");
+        "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2");
     add_proj4text (p, 2,
-        "0 +datum=NAD27 +units=us-ft +no_defs");
+        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Tennessee (deprecated)\",GEOGCS[\"NAD27");
+        "PROJCS[\"NAD27 / Kentucky South\",GEOGCS[\"NAD27\",DATUM");
     add_srs_wkt (p, 1,
-        "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke");
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
     add_srs_wkt (p, 2,
-        " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"");
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
     add_srs_wkt (p, 3,
-        "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic");
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 4,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 5,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "SP\"],PARAMETER[\"standard_parallel_1\",35.25],PARAMETER");
+        "PARAMETER[\"standard_parallel_1\",36.73333333333333],PAR");
     add_srs_wkt (p, 8,
-        "[\"standard_parallel_2\",36.41666666666666],PARAMETER[\"");
+        "AMETER[\"standard_parallel_2\",37.93333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "latitude_of_origin\",34.66666666666666],PARAMETER[\"cent");
+        "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ral_meridian\",-86],PARAMETER[\"false_easting\",100000],");
+        "\"central_meridian\",-85.75],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",");
+        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
     add_srs_wkt (p, 12,
-        "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32036\"");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32037, "epsg", 32037,
-        "NAD27 / Texas North");
+        ",\"26780\"]]");
+    p = add_epsg_def (filter, first, last, 26781, "epsg", 26781,
+        "NAD27 / Louisiana North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3");
+        "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666");
     add_proj4text (p, 1,
-        "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD");
+        "666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.21");
     add_proj4text (p, 2,
-        "27 +units=us-ft +no_defs");
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Louisiana North\",GEOGCS[\"NAD27\",DATU");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",34.65],PARAMETER[\"standa");
+        "PARAMETER[\"standard_parallel_1\",31.16666666666667],PAR");
     add_srs_wkt (p, 8,
-        "rd_parallel_2\",36.18333333333333],PARAMETER[\"latitude_");
+        "AMETER[\"standard_parallel_2\",32.66666666666666],PARAME");
     add_srs_wkt (p, 9,
-        "of_origin\",34],PARAMETER[\"central_meridian\",-101.5],P");
+        "TER[\"latitude_of_origin\",30.66666666666667],PARAMETER[");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no");
+        "\"central_meridian\",-92.5],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 11,
-        "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A");
+        "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32037\"]]");
-    p = add_epsg_def (filter, first, last, 32038, "epsg", 32038,
-        "NAD27 / Texas North Central");
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"26781\"]]");
+    p = add_epsg_def (filter, first, last, 26782, "epsg", 26782,
+        "NAD27 / Louisiana South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666");
+        "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.666666666666");
     add_proj4text (p, 1,
-        "667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.21");
+        "67 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Texas North Central\",GEOGCS[\"NAD27\",");
+        "PROJCS[\"NAD27 / Louisiana South\",GEOGCS[\"NAD27\",DATU");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",32.13333333333333]");
+        "PARAMETER[\"standard_parallel_1\",29.3],PARAMETER[\"stan");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",33.96666666666667],PA");
+        "dard_parallel_2\",30.7],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",31.66666666666667],PARAME");
+        ",28.66666666666667],PARAMETER[\"central_meridian\",-91.3");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-97.5],PARAMETER[\"false_eastin");
+        "3333333333333],PARAMETER[\"false_easting\",2000000],PARA");
     add_srs_wkt (p, 11,
-        "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
     add_srs_wkt (p, 12,
-        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
     add_srs_wkt (p, 13,
-        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 14,
-        "G\",\"32038\"]]");
-    p = add_epsg_def (filter, first, last, 32039, "epsg", 32039,
-        "NAD27 / Texas Central");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26782\"]]");
+    p = add_epsg_def (filter, first, last, 26783, "epsg", 26783,
+        "NAD27 / Maine East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333");
+        "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +");
+        "999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us");
     add_proj4text (p, 2,
-        "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +");
-    add_proj4text (p, 3,
-        "no_defs");
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Texas Central\",GEOGCS[\"NAD27\",DATUM[");
+        "PROJCS[\"NAD27 / Maine East\",GEOGCS[\"NAD27\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 6,
-        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "ARAMETER[\"standard_parallel_1\",30.11666666666667],PARA");
+        "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        "METER[\"standard_parallel_2\",31.88333333333333],PARAMET");
+        "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "ER[\"latitude_of_origin\",29.66666666666667],PARAMETER[\"");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "central_meridian\",-100.3333333333333],PARAMETER[\"false");
+        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
     add_srs_wkt (p, 11,
-        "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT");
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 12,
-        "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 13,
-        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
-    add_srs_wkt (p, 14,
-        "[\"EPSG\",\"32039\"]]");
-    p = add_epsg_def (filter, first, last, 32040, "epsg", 32040,
-        "NAD27 / Texas South Central");
+        ",NORTH],AUTHORITY[\"EPSG\",\"26783\"]]");
+    p = add_epsg_def (filter, first, last, 26784, "epsg", 26784,
+        "NAD27 / Maine West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192");
+        "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +dat");
     add_proj4text (p, 2,
-        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "um=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Texas South Central\",GEOGCS[\"NAD27\",");
+        "PROJCS[\"NAD27 / Maine West\",GEOGCS[\"NAD27\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
     add_srs_wkt (p, 2,
-        "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70");
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
     add_srs_wkt (p, 3,
-        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",28.38333333333333]");
+        "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",30.28333333333333],PA");
+        "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",27.83333333333333],PARAME");
+        "tor\",0.999966667],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-99],PARAMETER[\"false_easting\"");
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
     add_srs_wkt (p, 11,
-        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
     add_srs_wkt (p, 12,
-        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26784\"]");
     add_srs_wkt (p, 13,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 14,
-        ",\"32040\"]]");
-    p = add_epsg_def (filter, first, last, 32041, "epsg", 32041,
-        "NAD27 / Texas South");
+        "]");
+    p = add_epsg_def (filter, first, last, 26785, "epsg", 26785,
+        "NAD27 / Maryland");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333");
+        "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.21");
+        "334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +datum=NAD2");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "7 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Texas South\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Maryland\",GEOGCS[\"NAD27\",DATUM[\"Nor");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "6.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTH");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"426");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",26.16666666666667],PARAME");
+        "TER[\"standard_parallel_1\",38.3],PARAMETER[\"standard_p");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",27.83333333333333],PARAMETER");
+        "arallel_2\",39.45],PARAMETER[\"latitude_of_origin\",37.8");
     add_srs_wkt (p, 9,
-        "[\"latitude_of_origin\",25.66666666666667],PARAMETER[\"c");
+        "3333333333334],PARAMETER[\"central_meridian\",-77],PARAM");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200");
+        "ETER[\"false_easting\",800000.0000000002],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f");
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
     add_srs_wkt (p, 12,
-        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
     add_srs_wkt (p, 13,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 14,
-        "2041\"]]");
-    p = add_epsg_def (filter, first, last, 32042, "epsg", 32042,
-        "NAD27 / Utah North");
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26785\"]]");
+    p = add_epsg_def (filter, first, last, 26786, "epsg", 26786,
+        "NAD27 / Massachusetts Mainland");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333");
+        "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2");
+        "333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0");
     add_proj4text (p, 2,
-        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        " +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Utah North\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD27 / Massachusetts Mainland\",GEOGCS[\"NAD27");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        " 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 7,
-        "METER[\"standard_parallel_1\",40.71666666666667],PARAMET");
+        "SP\"],PARAMETER[\"standard_parallel_1\",41.7166666666666");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",41.78333333333333],PARAMETER[");
+        "7],PARAMETER[\"standard_parallel_2\",42.68333333333333],");
     add_srs_wkt (p, 9,
-        "\"latitude_of_origin\",40.33333333333334],PARAMETER[\"ce");
+        "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central");
     add_srs_wkt (p, 10,
-        "ntral_meridian\",-111.5],PARAMETER[\"false_easting\",200");
+        "_meridian\",-71.5],PARAMETER[\"false_easting\",600000],P");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f");
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
     add_srs_wkt (p, 12,
-        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
     add_srs_wkt (p, 13,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26786\"]");
     add_srs_wkt (p, 14,
-        "2042\"]]");
-    p = add_epsg_def (filter, first, last, 32043, "epsg", 32043,
-        "NAD27 / Utah Central");
+        "]");
+    p = add_epsg_def (filter, first, last, 26787, "epsg", 26787,
+        "NAD27 / Massachusetts Island");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=3");
+        "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333");
     add_proj4text (p, 1,
-        "8.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y");
+        "333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0");
     add_proj4text (p, 2,
-        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        " +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Utah Central\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD27 / Massachusetts Island\",GEOGCS[\"NAD27\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 7,
-        "AMETER[\"standard_parallel_1\",39.01666666666667],PARAME");
+        "SP\"],PARAMETER[\"standard_parallel_1\",41.2833333333333");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",40.65],PARAMETER[\"latitude_");
+        "3],PARAMETER[\"standard_parallel_2\",41.48333333333333],");
     add_srs_wkt (p, 9,
-        "of_origin\",38.33333333333334],PARAMETER[\"central_merid");
+        "PARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central");
     add_srs_wkt (p, 10,
-        "ian\",-111.5],PARAMETER[\"false_easting\",2000000],PARAM");
+        "_meridian\",-70.5],PARAMETER[\"false_easting\",200000],P");
     add_srs_wkt (p, 11,
-        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
     add_srs_wkt (p, 12,
-        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
     add_srs_wkt (p, 13,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32043\"]]");
-    p = add_epsg_def (filter, first, last, 32044, "epsg", 32044,
-        "NAD27 / Utah South");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26787\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 26791, "epsg", 26791,
+        "NAD27 / Minnesota North");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=3");
+        "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333");
     add_proj4text (p, 1,
-        "6.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.21");
     add_proj4text (p, 2,
-        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Utah South\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD27 / Minnesota North\",GEOGCS[\"NAD27\",DATU");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "METER[\"standard_parallel_1\",37.21666666666667],PARAMET");
+        "PARAMETER[\"standard_parallel_1\",47.03333333333333],PAR");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",38.35],PARAMETER[\"latitude_o");
+        "AMETER[\"standard_parallel_2\",48.63333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "f_origin\",36.66666666666666],PARAMETER[\"central_meridi");
+        "TER[\"latitude_of_origin\",46.5],PARAMETER[\"central_mer");
     add_srs_wkt (p, 10,
-        "an\",-111.5],PARAMETER[\"false_easting\",2000000],PARAME");
+        "idian\",-93.1],PARAMETER[\"false_easting\",2000000],PARA");
     add_srs_wkt (p, 11,
-        "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048");
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
     add_srs_wkt (p, 12,
-        "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA");
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
     add_srs_wkt (p, 13,
-        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32044\"]]");
-    p = add_epsg_def (filter, first, last, 32045, "epsg", 32045,
-        "NAD27 / Vermont");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26791\"]]");
+    p = add_epsg_def (filter, first, last, 26792, "epsg", 26792,
+        "NAD27 / Minnesota Central");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
+        "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=4");
     add_proj4text (p, 1,
-        "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_");
+        "5 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +datum=NAD");
     add_proj4text (p, 2,
-        "defs");
+        "27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Vermont\",GEOGCS[\"NAD27\",DATUM[\"Nort");
+        "PROJCS[\"NAD27 / Minnesota Central\",GEOGCS[\"NAD27\",DA");
     add_srs_wkt (p, 1,
-        "h_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206");
+        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
     add_srs_wkt (p, 2,
-        ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHO");
+        "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008");
     add_srs_wkt (p, 3,
-        "RITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 4,
-        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 5,
-        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4267");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 7,
-        "itude_of_origin\",42.5],PARAMETER[\"central_meridian\",-");
+        "],PARAMETER[\"standard_parallel_1\",45.61666666666667],P");
     add_srs_wkt (p, 8,
-        "72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETER[");
+        "ARAMETER[\"standard_parallel_2\",47.05],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
+        "tude_of_origin\",45],PARAMETER[\"central_meridian\",-94.");
     add_srs_wkt (p, 10,
-        "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"");
+        "25],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fal");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"32045\"]]");
-    p = add_epsg_def (filter, first, last, 32046, "epsg", 32046,
-        "NAD27 / Virginia North");
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 13,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26792\"]]");
+    p = add_epsg_def (filter, first, last, 26793, "epsg", 26793,
+        "NAD27 / Minnesota South");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37");
+        "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666");
     add_proj4text (p, 1,
-        ".66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0");
+        "667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +");
     add_proj4text (p, 2,
-        "=0 +datum=NAD27 +units=us-ft +no_defs");
+        "datum=NAD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Virginia North\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / Minnesota South\",GEOGCS[\"NAD27\",DATU");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
         ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",38.03333333333333],PAR");
+        "PARAMETER[\"standard_parallel_1\",43.78333333333333],PAR");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",39.2],PARAMETER[\"latitud");
+        "AMETER[\"standard_parallel_2\",45.21666666666667],PARAME");
     add_srs_wkt (p, 9,
-        "e_of_origin\",37.66666666666666],PARAMETER[\"central_mer");
+        "TER[\"latitude_of_origin\",43],PARAMETER[\"central_merid");
     add_srs_wkt (p, 10,
-        "idian\",-78.5],PARAMETER[\"false_easting\",2000000],PARA");
+        "ian\",-94],PARAMETER[\"false_easting\",2000000],PARAMETE");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
     add_srs_wkt (p, 12,
-        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
     add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32046\"]]");
-    p = add_epsg_def (filter, first, last, 32047, "epsg", 32047,
-        "NAD27 / Virginia South");
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26793\"]]");
+    p = add_epsg_def (filter, first, last, 26794, "epsg", 26794,
+        "NAD27 / Mississippi East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666");
+        "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333");
     add_proj4text (p, 1,
-        "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.21");
+        "333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +datum=N");
     add_proj4text (p, 2,
-        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "AD27 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Virginia South\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD27 / Mississippi East\",GEOGCS[\"NAD27\",DAT");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",36.76666666666667],PAR");
+        "R[\"latitude_of_origin\",29.66666666666667],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",37.96666666666667],PARAME");
+        "central_meridian\",-88.83333333333333],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER[");
+        "_factor\",0.99996],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-78.5],PARAMETER[\"false_easting\",");
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
     add_srs_wkt (p, 11,
-        "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
     add_srs_wkt (p, 12,
-        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26794\"]");
     add_srs_wkt (p, 13,
-        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
-    add_srs_wkt (p, 14,
-        "\"32047\"]]");
-    p = add_epsg_def (filter, first, last, 32048, "epsg", 32048,
-        "NAD27 / Washington North");
+        "]");
+    p = add_epsg_def (filter, first, last, 26795, "epsg", 26795,
+        "NAD27 / Mississippi West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47");
+        "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.9");
     add_proj4text (p, 1,
-        " +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0");
+        "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        " +datum=NAD27 +units=us-ft +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Washington North\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD27 / Mississippi West\",GEOGCS[\"NAD27\",DAT");
     add_srs_wkt (p, 1,
         "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
         "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
@@ -2211,1371 +2191,1519 @@ initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 5,
         "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",47.5],PARAMETER[\"stan");
+        "R[\"latitude_of_origin\",30.5],PARAMETER[\"central_merid");
     add_srs_wkt (p, 8,
-        "dard_parallel_2\",48.73333333333333],PARAMETER[\"latitud");
+        "ian\",-90.33333333333333],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "e_of_origin\",47],PARAMETER[\"central_meridian\",-120.83");
+        "99941177],PARAMETER[\"false_easting\",500000],PARAMETER[");
     add_srs_wkt (p, 10,
-        "33333333333],PARAMETER[\"false_easting\",2000000],PARAME");
+        "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060");
     add_srs_wkt (p, 11,
-        "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048");
+        "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],");
     add_srs_wkt (p, 12,
-        "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA");
-    add_srs_wkt (p, 13,
-        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32048\"]]");
-    p = add_epsg_def (filter, first, last, 32049, "epsg", 32049,
-        "NAD27 / Washington South");
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26795\"]]");
+    p = add_epsg_def (filter, first, last, 26796, "epsg", 26796,
+        "NAD27 / Missouri East");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333");
+        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9");
     add_proj4text (p, 1,
-        "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2");
+        "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Washington South\",GEOGCS[\"NAD27\",DAT");
+        "PROJCS[\"NAD27 / Missouri East\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",45.83333333333334],PAR");
+        "[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",47.33333333333334],PARAME");
+        "entral_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",45.33333333333334],PARAMETER[");
+        "9933333],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-120.5],PARAMETER[\"false_easting\"");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 11,
-        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
-    add_srs_wkt (p, 13,
-        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
-    add_srs_wkt (p, 14,
-        ",\"32049\"]]");
-    p = add_epsg_def (filter, first, last, 32050, "epsg", 32050,
-        "NAD27 / West Virginia North");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26796\"]]");
+    p = add_epsg_def (filter, first, last, 26797, "epsg", 26797,
+        "NAD27 / Missouri Central");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.");
+        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9");
     add_proj4text (p, 1,
-        "5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-f");
+        "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        "t +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / West Virginia North\",GEOGCS[\"NAD27\",");
+        "PROJCS[\"NAD27 / Missouri Central\",GEOGCS[\"NAD27\",DAT");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
     add_srs_wkt (p, 2,
-        "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70");
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
     add_srs_wkt (p, 3,
-        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",39],PARAMETER[\"st");
+        "R[\"latitude_of_origin\",35.83333333333334],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "andard_parallel_2\",40.25],PARAMETER[\"latitude_of_origi");
+        "central_meridian\",-92.5],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "n\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETE");
+        "99933333],PARAMETER[\"false_easting\",500000],PARAMETER[");
     add_srs_wkt (p, 10,
-        "R[\"false_easting\",2000000],PARAMETER[\"false_northing\"");
+        "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+        "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 13,
-        "AUTHORITY[\"EPSG\",\"32050\"]]");
-    p = add_epsg_def (filter, first, last, 32051, "epsg", 32051,
-        "NAD27 / West Virginia South");
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26797\"]]");
+    p = add_epsg_def (filter, first, last, 26798, "epsg", 26798,
+        "NAD27 / Missouri West");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333");
+        "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9");
     add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +");
+        "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
     add_proj4text (p, 2,
-        "datum=NAD27 +units=us-ft +no_defs");
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / West Virginia South\",GEOGCS[\"NAD27\",");
+        "PROJCS[\"NAD27 / Missouri West\",GEOGCS[\"NAD27\",DATUM[");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
     add_srs_wkt (p, 2,
-        "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70");
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
     add_srs_wkt (p, 3,
-        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",37.48333333333333]");
+        "[\"latitude_of_origin\",36.16666666666666],PARAMETER[\"c");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",38.88333333333333],PA");
+        "entral_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",37],PARAMETER[\"central_m");
+        "9941177],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "eridian\",-81],PARAMETER[\"false_easting\",2000000],PARA");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
     add_srs_wkt (p, 11,
-        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
     add_srs_wkt (p, 12,
-        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
-    add_srs_wkt (p, 13,
-        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32051\"]]");
-    p = add_epsg_def (filter, first, last, 32052, "epsg", 32052,
-        "NAD27 / Wisconsin North");
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26798\"]]");
+    p = add_epsg_def (filter, first, last, 26799, "epsg", 26799,
+        "NAD27 / California zone VII");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666");
+        "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666");
     add_proj4text (p, 1,
-        "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192");
+        "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +");
     add_proj4text (p, 2,
-        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "x_0=1276106.450596901 +y_0=1268253.006858014 +datum=NAD2");
+    add_proj4text (p, 3,
+        "7 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wisconsin North\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD27 / California zone VII\",GEOGCS[\"NAD27\",");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",45.56666666666667],PAR");
+        "\"],PARAMETER[\"standard_parallel_1\",34.41666666666666]");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",46.76666666666667],PARAME");
+        ",PARAMETER[\"standard_parallel_2\",33.86666666666667],PA");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",45.16666666666666],PARAMETER[");
+        "RAMETER[\"latitude_of_origin\",34.13333333333333],PARAME");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-90],PARAMETER[\"false_easting\",20");
+        "TER[\"central_meridian\",-118.3333333333333],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey ");
+        "false_easting\",4186692.58],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
+        ",4160926.74],UNIT[\"US survey foot\",0.3048006096012192,");
     add_srs_wkt (p, 13,
-        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 14,
-        "32052\"]]");
-    p = add_epsg_def (filter, first, last, 32053, "epsg", 32053,
-        "NAD27 / Wisconsin Central");
+        ",NORTH],AUTHORITY[\"EPSG\",\"26799\"]]");
+    p = add_epsg_def (filter, first, last, 26801, "epsg", 26801,
+        "NAD Michigan / Michigan East (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333");
+        "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +datum=NAD2");
+        "99942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548");
     add_proj4text (p, 2,
-        "7 +units=us-ft +no_defs");
+        "896 +b=6356826.621488444 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wisconsin Central\",GEOGCS[\"NAD27\",DA");
+        "PROJCS[\"NAD Michigan / Michigan East (deprecated)\",GEO");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
+        "GCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID");
     add_srs_wkt (p, 2,
-        "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008");
+        "[\"Clarke 1866 Michigan\",6378450.047548896,294.97869716");
     add_srs_wkt (p, 3,
-        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
+        "46739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+        "6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"standard_parallel_1\",44.25],PARAMETER[\"s");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "tandard_parallel_2\",45.5],PARAMETER[\"latitude_of_origi");
+        ",41.5],PARAMETER[\"central_meridian\",-83.66666666666667");
     add_srs_wkt (p, 9,
-        "n\",43.83333333333334],PARAMETER[\"central_meridian\",-9");
+        "],PARAMETER[\"scale_factor\",0.999942857],PARAMETER[\"fa");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals");
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 11,
-        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
+        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
     add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32053\"]]");
-    p = add_epsg_def (filter, first, last, 32054, "epsg", 32054,
-        "NAD27 / Wisconsin South");
+        "ITY[\"EPSG\",\"26801\"]]");
+    p = add_epsg_def (filter, first, last, 26802, "epsg", 26802,
+        "NAD Michigan / Michigan Old Central (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666");
+        "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_");
     add_proj4text (p, 1,
-        "667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +");
+        "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568");
     add_proj4text (p, 2,
-        "datum=NAD27 +units=us-ft +no_defs");
+        "26.621488444 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wisconsin South\",GEOGCS[\"NAD27\",DATU");
+        "PROJCS[\"NAD Michigan / Michigan Old Central (deprecated");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+        ")\",GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",S");
     add_srs_wkt (p, 2,
-        ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"");
+        "PHEROID[\"Clarke 1866 Michigan\",6378450.047548896,294.9");
     add_srs_wkt (p, 3,
-        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+        "786971646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 4,
-        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+        "PSG\",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 5,
-        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        "TY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PRO");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",42.73333333333333],PAR");
+        "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 8,
-        "AMETER[\"standard_parallel_2\",44.06666666666667],PARAME");
+        "_origin\",41.5],PARAMETER[\"central_meridian\",-85.75],P");
     add_srs_wkt (p, 9,
-        "TER[\"latitude_of_origin\",42],PARAMETER[\"central_merid");
+        "ARAMETER[\"scale_factor\",0.999909091],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ian\",-90],PARAMETER[\"false_easting\",2000000],PARAMETE");
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 11,
-        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
     add_srs_wkt (p, 13,
-        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32054\"]]");
-    p = add_epsg_def (filter, first, last, 32055, "epsg", 32055,
-        "NAD27 / Wyoming East");
+        "[\"EPSG\",\"26802\"]]");
+    p = add_epsg_def (filter, first, last, 26803, "epsg", 26803,
+        "NAD Michigan / Michigan West (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666");
+        "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_");
     add_proj4text (p, 1,
-        "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+        "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568");
     add_proj4text (p, 2,
-        "um=NAD27 +units=us-ft +no_defs");
+        "26.621488444 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wyoming East\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD Michigan / Michigan West (deprecated)\",GEO");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "GCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "[\"Clarke 1866 Michigan\",6378450.047548896,294.97869716");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "46739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-105.1666666666667],PARAMETER[\"scale_fac");
+        ",41.5],PARAMETER[\"central_meridian\",-88.75],PARAMETER[");
     add_srs_wkt (p, 9,
-        "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P");
+        "\"scale_factor\",0.999909091],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        ",500000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
     add_srs_wkt (p, 11,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32055\"]");
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 32056, "epsg", 32056,
-        "NAD27 / Wyoming East Central");
+        "\"26803\"]]");
+    p = add_epsg_def (filter, first, last, 26811, "epsg", 26811,
+        "NAD Michigan / Michigan North (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333");
+        "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333");
     add_proj4text (p, 1,
-        "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+        "334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192");
     add_proj4text (p, 2,
-        "um=NAD27 +units=us-ft +no_defs");
+        "024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 ");
+    add_proj4text (p, 3,
+        "+units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wyoming East Central\",GEOGCS[\"NAD27\"");
+        "PROJCS[\"NAD Michigan / Michigan North (deprecated)\",GE");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+        "OGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROI");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "D[\"Clarke 1866 Michigan\",6378450.047548896,294.9786971");
     add_srs_wkt (p, 3,
-        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+        "646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        "\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "TER[\"central_meridian\",-107.3333333333333],PARAMETER[\"");
+        "parallel_1\",45.48333333333333],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "scale_factor\",0.999941177],PARAMETER[\"false_easting\",");
+        "allel_2\",47.08333333333334],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"US survey");
+        "gin\",44.78333333333333],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 11,
-        " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]");
+        "-87],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
     add_srs_wkt (p, 13,
-        "32056\"]]");
-    p = add_epsg_def (filter, first, last, 32057, "epsg", 32057,
-        "NAD27 / Wyoming West Central");
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26811\"]]");
+    p = add_epsg_def (filter, first, last, 26812, "epsg", 26812,
+        "NAD Michigan / Michigan Central (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0");
+        "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43");
     add_proj4text (p, 1,
-        ".999941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u");
+        ".31666666666667 +lon_0=-84.33333333333333 +x_0=609601.21");
     add_proj4text (p, 2,
-        "nits=us-ft +no_defs");
+        "92024384 +y_0=0 +a=6378450.047548896 +b=6356826.62148844");
+    add_proj4text (p, 3,
+        "4 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wyoming West Central\",GEOGCS[\"NAD27\"");
+        "PROJCS[\"NAD Michigan / Michigan Central (deprecated)\",");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+        "GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHER");
     add_srs_wkt (p, 2,
-        "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7");
+        "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869");
     add_srs_wkt (p, 3,
-        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+        "71646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+        ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 8,
-        "TER[\"central_meridian\",-108.75],PARAMETER[\"scale_fact");
+        "_parallel_1\",44.18333333333333],PARAMETER[\"standard_pa");
     add_srs_wkt (p, 9,
-        "or\",0.999941177],PARAMETER[\"false_easting\",500000],PA");
+        "rallel_2\",45.7],PARAMETER[\"latitude_of_origin\",43.316");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+        "66666666667],PARAMETER[\"central_meridian\",-84.33333333");
     add_srs_wkt (p, 11,
-        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+        "333333],PARAMETER[\"false_easting\",2000000],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32057\"]]");
-    p = add_epsg_def (filter, first, last, 32058, "epsg", 32058,
-        "NAD27 / Wyoming West");
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+    add_srs_wkt (p, 13,
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 14,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26812\"]]");
+    p = add_epsg_def (filter, first, last, 26813, "epsg", 26813,
+        "NAD Michigan / Michigan South (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333");
+        "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41");
     add_proj4text (p, 1,
-        "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+        ".5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0");
     add_proj4text (p, 2,
-        "um=NAD27 +units=us-ft +no_defs");
+        "=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-f");
+    add_proj4text (p, 3,
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Wyoming West\",GEOGCS[\"NAD27\",DATUM[\"");
+        "PROJCS[\"NAD Michigan / Michigan South (deprecated)\",GE");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+        "OGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROI");
     add_srs_wkt (p, 2,
-        "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A");
+        "D[\"Clarke 1866 Michigan\",6378450.047548896,294.9786971");
     add_srs_wkt (p, 3,
-        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+        "646739,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+        "\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-110.0833333333333],PARAMETER[\"scale_fac");
+        "parallel_1\",42.1],PARAMETER[\"standard_parallel_2\",43.");
     add_srs_wkt (p, 9,
-        "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P");
+        "66666666666666],PARAMETER[\"latitude_of_origin\",41.5],P");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+        "ARAMETER[\"central_meridian\",-84.33333333333333],PARAME");
     add_srs_wkt (p, 11,
-        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+        "TER[\"false_easting\",2000000],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32058\"]");
+        "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR");
     add_srs_wkt (p, 13,
-        "]");
-    p = add_epsg_def (filter, first, last, 32061, "epsg", 32061,
-        "NAD27 / Guatemala Norte (deprecated)");
+        "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+    add_srs_wkt (p, 14,
+        "H],AUTHORITY[\"EPSG\",\"26813\"]]");
+    p = add_epsg_def (filter, first, last, 26814, "epsg", 26814,
+        "NAD83 / Maine East (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000");
-    add_proj4text (p, 2,
-        "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs");
+        "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Guatemala Norte (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"NAD83 / Maine East (ftUS) (deprecated)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+        "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",16.81666666");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
     add_srs_wkt (p, 8,
-        "666667],PARAMETER[\"central_meridian\",-90.3333333333333");
+        "3.66666666666666],PARAMETER[\"central_meridian\",-68.5],");
     add_srs_wkt (p, 9,
-        "3],PARAMETER[\"scale_factor\",0.99992226],PARAMETER[\"fa");
+        "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",29220");
+        "ting\",300000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "9.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
     add_srs_wkt (p, 12,
-        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32");
-    add_srs_wkt (p, 13,
-        "061\"]]");
-    p = add_epsg_def (filter, first, last, 32062, "epsg", 32062,
-        "NAD27 / Guatemala Sur (deprecated)");
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26814\"]]");
+    p = add_epsg_def (filter, first, last, 26815, "epsg", 26815,
+        "NAD83 / Maine West (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +datum=N");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u");
     add_proj4text (p, 2,
-        "AD27 +units=m +no_defs");
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Guatemala Sur (deprecated)\",GEOGCS[\"N");
+        "PROJCS[\"NAD83 / Maine West (ftUS) (deprecated)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "AD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Cl");
+        "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG");
+        "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gre");
+        "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626");
     add_srs_wkt (p, 4,
-        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",14.9],PARAM");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-90.33333333333333],PARAMETER[");
+        "2.83333333333334],PARAMETER[\"central_meridian\",-70.166");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.99989906],PARAMETER[\"false_easting\"");
+        "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR");
     add_srs_wkt (p, 10,
-        ",500000],PARAMETER[\"false_northing\",325992.681],UNIT[\"");
+        "AMETER[\"false_easting\",900000],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 12,
-        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32062\"]]");
-    p = add_epsg_def (filter, first, last, 32064, "epsg", 32064,
-        "NAD27 / BLM 14N (ftUS)");
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "26815\"]]");
+    p = add_epsg_def (filter, first, last, 26819, "epsg", 26819,
+        "NAD83 / Minnesota North (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+    add_proj4text (p, 2,
+        "00101601 +y_0=99999.99998984 +datum=NAD83 +units=m +no_d");
+    add_proj4text (p, 3,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 14N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83 / Minnesota North (ftUS) (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "parallel_1\",48.63333333333333],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+        "allel_2\",47.03333333333333],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+        "gin\",46.5],PARAMETER[\"central_meridian\",-93.1],PARAME");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "TER[\"false_easting\",800000.0000101601],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"32064\"]]");
-    p = add_epsg_def (filter, first, last, 32065, "epsg", 32065,
-        "NAD27 / BLM 15N (ftUS)");
+        "se_northing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"26819\"]]");
+    p = add_epsg_def (filter, first, last, 26820, "epsg", 26820,
+        "NAD83 / Minnesota Central (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989");
+    add_proj4text (p, 2,
+        "84 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 15N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83 / Minnesota Central (ftUS) (deprecated)\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard");
     add_srs_wkt (p, 8,
-        "\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "_parallel_1\",47.05],PARAMETER[\"standard_parallel_2\",4");
     add_srs_wkt (p, 9,
-        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+        "5.61666666666667],PARAMETER[\"latitude_of_origin\",45],P");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+        "ARAMETER[\"central_meridian\",-94.25],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "easting\",800000.0000101601],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"32065\"]]");
-    p = add_epsg_def (filter, first, last, 32066, "epsg", 32066,
-        "NAD27 / BLM 16N (ftUS)");
+        ",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+    add_srs_wkt (p, 13,
+        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 14,
+        "PSG\",\"26820\"]]");
+    p = add_epsg_def (filter, first, last, 26821, "epsg", 26821,
+        "NAD83 / Minnesota South (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999");
+    add_proj4text (p, 2,
+        "99.99998984 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 16N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83 / Minnesota South (ftUS) (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTIO");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_");
     add_srs_wkt (p, 8,
-        "\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "parallel_1\",45.21666666666667],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+        "allel_2\",43.78333333333333],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+        "gin\",43],PARAMETER[\"central_meridian\",-94],PARAMETER[");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "\"false_easting\",800000.0000101601],PARAMETER[\"false_n");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"32066\"]]");
-    p = add_epsg_def (filter, first, last, 32067, "epsg", 32067,
-        "NAD27 / BLM 17N (ftUS)");
+        "orthing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 14,
+        "ORITY[\"EPSG\",\"26821\"]]");
+    p = add_epsg_def (filter, first, last, 26822, "epsg", 26822,
+        "NAD83 / Nebraska (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +datum=NAD83 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 17N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83 / Nebraska (ftUS) (deprecated)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        "\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+        "_1\",43],PARAMETER[\"standard_parallel_2\",40],PARAMETER");
     add_srs_wkt (p, 9,
-        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+        "[\"latitude_of_origin\",39.83333333333334],PARAMETER[\"c");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+        "entral_meridian\",-100],PARAMETER[\"false_easting\",5000");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "00.0000101601],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"32067\"]]");
-    p = add_epsg_def (filter, first, last, 32074, "epsg", 32074,
-        "NAD27 / BLM 14N (feet) (deprecated)");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26822\"]]");
+    p = add_epsg_def (filter, first, last, 26823, "epsg", 26823,
+        "NAD83 / West Virginia North (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "5 +x_0=1968500 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 14N (feet) (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"NAD83 / West Virginia North (ftUS) (deprecated)");
     add_srs_wkt (p, 1,
-        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+        "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],P");
+        "ard_parallel_1\",40.25],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+        ",39],PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+        "central_meridian\",-79.5],PARAMETER[\"false_easting\",19");
     add_srs_wkt (p, 11,
-        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "68500],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32074\"]]");
-    p = add_epsg_def (filter, first, last, 32075, "epsg", 32075,
-        "NAD27 / BLM 15N (feet) (deprecated)");
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"26823\"]]");
+    p = add_epsg_def (filter, first, last, 26824, "epsg", 26824,
+        "NAD83 / West Virginia South (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +datum=NAD8");
+    add_proj4text (p, 2,
+        "3 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 15N (feet) (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"NAD83 / West Virginia South (ftUS) (deprecated)");
     add_srs_wkt (p, 1,
-        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+        "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJE");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],P");
+        "ard_parallel_1\",38.88333333333333],PARAMETER[\"standard");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+        "_parallel_2\",37.48333333333333],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+        "_origin\",37],PARAMETER[\"central_meridian\",-81],PARAME");
     add_srs_wkt (p, 11,
-        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "TER[\"false_easting\",1968500],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32075\"]]");
-    p = add_epsg_def (filter, first, last, 32076, "epsg", 32076,
-        "NAD27 / BLM 16N (feet) (deprecated)");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26");
+    add_srs_wkt (p, 14,
+        "824\"]]");
+    p = add_epsg_def (filter, first, last, 26825, "epsg", 26825,
+        "NAD83(HARN) / Maine East (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0");
+    add_proj4text (p, 2,
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 16N (feet) (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(HARN) / Maine East (ftUS) (deprecated)\",");
     add_srs_wkt (p, 1,
-        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+        "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],P");
+        "latitude_of_origin\",43.66666666666666],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+        "ral_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+        ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32076\"]]");
-    p = add_epsg_def (filter, first, last, 32077, "epsg", 32077,
-        "NAD27 / BLM 17N (feet) (deprecated)");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"26825\"]]");
+    p = add_epsg_def (filter, first, last, 26826, "epsg", 26826,
+        "NAD83(HARN) / Maine West (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
+    add_proj4text (p, 2,
+        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / BLM 17N (feet) (deprecated)\",GEOGCS[\"");
+        "PROJCS[\"NAD83(HARN) / Maine West (ftUS) (deprecated)\",");
     add_srs_wkt (p, 1,
-        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+        "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer");
     add_srs_wkt (p, 2,
-        "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS");
+        "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+        "4152\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],P");
+        "latitude_of_origin\",42.83333333333334],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+        "ral_meridian\",-70.16666666666667],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+        "tor\",0.999966667],PARAMETER[\"false_easting\",900000],P");
     add_srs_wkt (p, 11,
-        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 12,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32077\"]]");
-    p = add_epsg_def (filter, first, last, 32081, "epsg", 32081,
-        "NAD27 / MTM zone 1");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"26826\"]]");
+    p = add_epsg_def (filter, first, last, 26830, "epsg", 26830,
+        "NAD83(HARN) / Minnesota North (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD27 +units=m +no_defs");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+    add_proj4text (p, 2,
+        "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0");
+    add_proj4text (p, 3,
+        ",0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / MTM zone 1\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS) (deprecate");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 8,
-        "53],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false");
+        "],PARAMETER[\"standard_parallel_1\",48.63333333333333],P");
     add_srs_wkt (p, 9,
-        "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT[");
+        "ARAMETER[\"standard_parallel_2\",47.03333333333333],PARA");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "METER[\"latitude_of_origin\",46.5],PARAMETER[\"central_m");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+        "eridian\",-93.1],PARAMETER[\"false_easting\",800000.0000");
     add_srs_wkt (p, 12,
-        "2081\"]]");
-    p = add_epsg_def (filter, first, last, 32082, "epsg", 32082,
-        "NAD27 / MTM zone 2");
+        "101601],PARAMETER[\"false_northing\",99999.99998984],UNI");
+    add_srs_wkt (p, 13,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 14,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26830\"]]");
+    p = add_epsg_def (filter, first, last, 26831, "epsg", 26831,
+        "NAD83(HARN) / Minnesota Central (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD27 +units=m +no_defs");
+        "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989");
+    add_proj4text (p, 2,
+        "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / MTM zone 2\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS) (depreca");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "ted)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accurac");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "y_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "SG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "56],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false");
+        "\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT[");
+        "standard_parallel_2\",45.61666666666667],PARAMETER[\"lat");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "itude_of_origin\",45],PARAMETER[\"central_meridian\",-94");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+        ".25],PARAMETER[\"false_easting\",800000.0000101601],PARA");
     add_srs_wkt (p, 12,
-        "2082\"]]");
-    p = add_epsg_def (filter, first, last, 32083, "epsg", 32083,
-        "NAD27 / MTM zone 3");
+        "METER[\"false_northing\",99999.99998984],UNIT[\"metre\",");
+    add_srs_wkt (p, 13,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26831\"]]");
+    p = add_epsg_def (filter, first, last, 26832, "epsg", 26832,
+        "NAD83(HARN) / Minnesota South (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 ");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999");
+    add_proj4text (p, 2,
+        "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / MTM zone 3\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS) (deprecate");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "G\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
     add_srs_wkt (p, 8,
-        "58.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+        "],PARAMETER[\"standard_parallel_1\",45.21666666666667],P");
     add_srs_wkt (p, 9,
-        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+        "ARAMETER[\"standard_parallel_2\",43.78333333333333],PARA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "METER[\"latitude_of_origin\",43],PARAMETER[\"central_mer");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "idian\",-94],PARAMETER[\"false_easting\",800000.00001016");
     add_srs_wkt (p, 12,
-        "32083\"]]");
-    p = add_epsg_def (filter, first, last, 32084, "epsg", 32084,
-        "NAD27 / MTM zone 4");
+        "01],PARAMETER[\"false_northing\",99999.99998984],UNIT[\"");
+    add_srs_wkt (p, 13,
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 14,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26832\"]]");
+    p = add_epsg_def (filter, first, last, 26833, "epsg", 26833,
+        "NAD83(HARN) / Nebraska (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 ");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+        "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t");
+    add_proj4text (p, 2,
+        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / MTM zone 4\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / Nebraska (ftUS) (deprecated)\",GE");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "OGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referen");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "ce_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "THORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
     add_srs_wkt (p, 8,
-        "61.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+        "METER[\"standard_parallel_1\",43],PARAMETER[\"standard_p");
     add_srs_wkt (p, 9,
-        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+        "arallel_2\",40],PARAMETER[\"latitude_of_origin\",39.8333");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "3333333334],PARAMETER[\"central_meridian\",-100],PARAMET");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ER[\"false_easting\",500000.0000101601],PARAMETER[\"fals");
     add_srs_wkt (p, 12,
-        "32084\"]]");
-    p = add_epsg_def (filter, first, last, 32085, "epsg", 32085,
-        "NAD27 / MTM zone 5");
+        "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90");
+    add_srs_wkt (p, 13,
+        "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
+    add_srs_wkt (p, 14,
+        "SG\",\"26833\"]]");
+    p = add_epsg_def (filter, first, last, 26834, "epsg", 26834,
+        "NAD83(HARN) / West Virginia North (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 ");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+        "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,");
+    add_proj4text (p, 2,
+        "0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / MTM zone 5\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS) (depre");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 8,
-        "64.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+        "SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER");
     add_srs_wkt (p, 9,
-        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+        "[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "gin\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAME");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "TER[\"false_easting\",1968500],PARAMETER[\"false_northin");
     add_srs_wkt (p, 12,
-        "32085\"]]");
-    p = add_epsg_def (filter, first, last, 32086, "epsg", 32086,
-        "NAD27 / MTM zone 6");
+        "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26");
+    add_srs_wkt (p, 14,
+        "834\"]]");
+    p = add_epsg_def (filter, first, last, 26835, "epsg", 26835,
+        "NAD83(HARN) / West Virginia South (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 ");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+        "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8");
+    add_proj4text (p, 2,
+        "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / MTM zone 6\",GEOGCS[\"NAD27\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS) (depre");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+        "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur");
     add_srs_wkt (p, 2,
-        "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+        "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29");
     add_srs_wkt (p, 3,
-        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
     add_srs_wkt (p, 4,
-        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 5,
-        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 6,
-        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 8,
-        "67.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+        "SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333333");
     add_srs_wkt (p, 9,
-        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+        "3],PARAMETER[\"standard_parallel_2\",37.48333333333333],");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "_meridian\",-81],PARAMETER[\"false_easting\",1968500],PA");
     add_srs_wkt (p, 12,
-        "32086\"]]");
-    p = add_epsg_def (filter, first, last, 32098, "epsg", 32098,
-        "NAD27 / Quebec Lambert");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"26835\"]]");
+    p = add_epsg_def (filter, first, last, 26836, "epsg", 26836,
+        "NAD83(NSRS2007) / Maine East (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "0=0 +y_0=0 +datum=NAD27 +units=m +no_defs");
+        "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0");
+    add_proj4text (p, 2,
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Quebec Lambert\",GEOGCS[\"NAD27\",DATUM");
+        "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS) (deprecated");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+        ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp");
     add_srs_wkt (p, 2,
-        "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]");
+        "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 3,
-        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 4,
-        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 5,
-        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 6,
-        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 7,
-        "PARAMETER[\"standard_parallel_1\",60],PARAMETER[\"standa");
+        "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 8,
-        "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",44]");
+        "\"],PARAMETER[\"latitude_of_origin\",43.66666666666666],");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"false");
+        "PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met");
+        "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR");
     add_srs_wkt (p, 11,
-        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32098\"]]");
-    p = add_epsg_def (filter, first, last, 32099, "epsg", 32099,
-        "NAD27 / Louisiana Offshore");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"26836\"]]");
+    p = add_epsg_def (filter, first, last, 26837, "epsg", 26837,
+        "NAD83(NSRS2007) / Maine West (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
     add_proj4text (p, 2,
-        "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +");
-    add_proj4text (p, 3,
-        "no_defs");
+        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD27 / Louisiana Offshore\",GEOGCS[\"NAD27\",D");
+        "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS) (deprecated");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+        ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp");
     add_srs_wkt (p, 2,
-        "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700");
+        "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 3,
-        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 4,
-        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 5,
-        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 6,
-        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"standard_parallel_1\",27.83333333333333]");
+        "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",26.16666666666667],PA");
+        "\"],PARAMETER[\"latitude_of_origin\",42.83333333333334],");
     add_srs_wkt (p, 9,
-        "RAMETER[\"latitude_of_origin\",25.66666666666667],PARAME");
+        "PARAMETER[\"central_meridian\",-70.16666666666667],PARAM");
     add_srs_wkt (p, 10,
-        "TER[\"central_meridian\",-91.33333333333333],PARAMETER[\"");
+        "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas");
     add_srs_wkt (p, 11,
-        "false_easting\",2000000],PARAMETER[\"false_northing\",0]");
+        "ting\",900000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 12,
-        ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
     add_srs_wkt (p, 13,
-        "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
-    add_srs_wkt (p, 14,
-        "HORITY[\"EPSG\",\"32099\"]]");
-    p = add_epsg_def (filter, first, last, 32100, "epsg", 32100,
-        "NAD83 / Montana");
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26837\"]]");
+    p = add_epsg_def (filter, first, last, 26841, "epsg", 26841,
+        "NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        " +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+    add_proj4text (p, 2,
+        "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0");
+    add_proj4text (p, 3,
+        ",0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Montana\",GEOGCS[\"NAD83\",DATUM[\"Nort");
+        "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS) (depre");
     add_srs_wkt (p, 1,
-        "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29");
+        "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation");
     add_srs_wkt (p, 2,
-        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+        "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 3,
-        "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 4,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM");
     add_srs_wkt (p, 5,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 7,
-        "SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"");
+        "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 8,
-        "standard_parallel_2\",45],PARAMETER[\"latitude_of_origin");
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6");
     add_srs_wkt (p, 9,
-        "\",44.25],PARAMETER[\"central_meridian\",-109.5],PARAMET");
+        "3333333333333],PARAMETER[\"standard_parallel_2\",47.0333");
     add_srs_wkt (p, 10,
-        "ER[\"false_easting\",600000],PARAMETER[\"false_northing\"");
+        "3333333333],PARAMETER[\"latitude_of_origin\",46.5],PARAM");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "ETER[\"central_meridian\",-93.1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 12,
-        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32100");
+        "ng\",800000.0000101601],PARAMETER[\"false_northing\",999");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 32104, "epsg", 32104,
-        "NAD83 / Nebraska");
+        "99.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 14,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 15,
+        ",\"26841\"]]");
+    p = add_epsg_def (filter, first, last, 26842, "epsg", 26842,
+        "NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "lon_0=-100 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_");
+        "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989");
     add_proj4text (p, 2,
-        "defs");
+        "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nebraska\",GEOGCS[\"NAD83\",DATUM[\"Nor");
+        "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS) (dep");
     add_srs_wkt (p, 1,
-        "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2");
+        "recated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nati");
     add_srs_wkt (p, 2,
-        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
+        "onal_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 3,
-        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 4,
-        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIM");
     add_srs_wkt (p, 5,
-        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 6,
-        "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 7,
-        "_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER[");
+        "],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 8,
-        "\"standard_parallel_2\",40],PARAMETER[\"latitude_of_orig");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47");
     add_srs_wkt (p, 9,
-        "in\",39.83333333333334],PARAMETER[\"central_meridian\",-");
+        ".05],PARAMETER[\"standard_parallel_2\",45.61666666666667");
     add_srs_wkt (p, 10,
-        "100],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+        "],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"centr");
     add_srs_wkt (p, 11,
-        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+        "al_meridian\",-94.25],PARAMETER[\"false_easting\",800000");
     add_srs_wkt (p, 12,
-        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+        ".0000101601],PARAMETER[\"false_northing\",99999.99998984");
     add_srs_wkt (p, 13,
-        "PSG\",\"32104\"]]");
-    p = add_epsg_def (filter, first, last, 32107, "epsg", 32107,
-        "NAD83 / Nevada East");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26842\"");
+    add_srs_wkt (p, 15,
+        "]]");
+    p = add_epsg_def (filter, first, last, 26843, "epsg", 26843,
+        "NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "9999 +x_0=200000 +y_0=8000000 +datum=NAD83 +units=m +no_");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999");
     add_proj4text (p, 2,
-        "defs");
+        "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m");
+    add_proj4text (p, 3,
+        " +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nevada East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS) (depre");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\"");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce");
+        "AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",-115.5833333333333],PARAMETER[\"scale_f");
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2");
     add_srs_wkt (p, 9,
-        "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA");
+        "1666666666667],PARAMETER[\"standard_parallel_2\",43.7833");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",8000000],UNIT[\"metre\",1,AUTHO");
+        "3333333333],PARAMETER[\"latitude_of_origin\",43],PARAMET");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "ER[\"central_meridian\",-94],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"32107\"]]");
-    p = add_epsg_def (filter, first, last, 32108, "epsg", 32108,
-        "NAD83 / Nevada Central");
+        ",800000.0000101601],PARAMETER[\"false_northing\",99999.9");
+    add_srs_wkt (p, 13,
+        "9998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 14,
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 15,
+        "26843\"]]");
+    p = add_epsg_def (filter, first, last, 26844, "epsg", 26844,
+        "NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
     add_proj4text (p, 1,
-        "9999 +x_0=500000 +y_0=6000000 +datum=NAD83 +units=m +no_");
+        "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t");
     add_proj4text (p, 2,
-        "defs");
+        "owgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nevada Central\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[");
+        "Y[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Con");
     add_srs_wkt (p, 8,
-        "\"central_meridian\",-116.6666666666667],PARAMETER[\"sca");
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETE");
     add_srs_wkt (p, 9,
-        "le_factor\",0.9999],PARAMETER[\"false_easting\",500000],");
+        "R[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_or");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",1,A");
+        "igin\",39.83333333333334],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 11,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        ",-100],PARAMETER[\"false_easting\",500000.0000101601],PA");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32108\"]]");
-    p = add_epsg_def (filter, first, last, 32109, "epsg", 32109,
-        "NAD83 / Nevada West");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"26844\"]]");
+    p = add_epsg_def (filter, first, last, 26845, "epsg", 26845,
+        "NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "9999 +x_0=800000 +y_0=4000000 +datum=NAD83 +units=m +no_");
+        "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,");
     add_proj4text (p, 2,
-        "defs");
+        "0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Nevada West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS) (d");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce");
+        "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",-118.5833333333333],PARAMETER[\"scale_f");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 9,
-        "actor\",0.9999],PARAMETER[\"false_easting\",800000],PARA");
+        "0.25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHO");
+        "latitude_of_origin\",38.5],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        ",-79.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"32109\"]]");
-    p = add_epsg_def (filter, first, last, 32110, "epsg", 32110,
-        "NAD83 / New Hampshire");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 14,
+        "\"EPSG\",\"26845\"]]");
+    p = add_epsg_def (filter, first, last, 26846, "epsg", 26846,
+        "NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "99966667 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_de");
+        "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8");
     add_proj4text (p, 2,
-        "fs");
+        "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New Hampshire\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS) (d");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"c");
+        "]],AUTHORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 8,
-        "entral_meridian\",-71.66666666666667],PARAMETER[\"scale_");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3");
     add_srs_wkt (p, 9,
-        "factor\",0.999966667],PARAMETER[\"false_easting\",300000");
+        "8.88333333333333],PARAMETER[\"standard_parallel_2\",37.4");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+        "8333333333333],PARAMETER[\"latitude_of_origin\",37],PARA");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+        "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 12,
-        "TH],AUTHORITY[\"EPSG\",\"32110\"]]");
-    p = add_epsg_def (filter, first, last, 32111, "epsg", 32111,
-        "NAD83 / New Jersey");
+        "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"metr");
+    add_srs_wkt (p, 13,
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 14,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26846\"]]");
+    p = add_epsg_def (filter, first, last, 26847, "epsg", 26847,
+        "NAD83 / Maine East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "999 +x_0=300000.0000000001 +y_0=0 +datum=NAD83 +units=us");
+    add_proj4text (p, 2,
+        "-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New Jersey\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / Maine East (ftUS)\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",38.83333333333334],PA");
+        "cator\"],PARAMETER[\"latitude_of_origin\",43.66666666666");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fa");
+        "666],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"s");
     add_srs_wkt (p, 9,
-        "ctor\",0.9999],PARAMETER[\"false_easting\",150000],PARAM");
+        "cale_factor\",0.9999],PARAMETER[\"false_easting\",984250");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        ".0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US s");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"32111\"]]");
-    p = add_epsg_def (filter, first, last, 32112, "epsg", 32112,
-        "NAD83 / New Mexico East");
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"26847\"]]");
+    p = add_epsg_def (filter, first, last, 26848, "epsg", 26848,
+        "NAD83 / Maine West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "909091 +x_0=165000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u");
+    add_proj4text (p, 2,
+        "nits=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New Mexico East\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"NAD83 / Maine West (ftUS)\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"");
+        "cator\"],PARAMETER[\"latitude_of_origin\",42.83333333333");
     add_srs_wkt (p, 8,
-        "central_meridian\",-104.3333333333333],PARAMETER[\"scale");
+        "334],PARAMETER[\"central_meridian\",-70.16666666666667],");
     add_srs_wkt (p, 9,
-        "_factor\",0.999909091],PARAMETER[\"false_easting\",16500");
+        "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "e_easting\",2952750],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "RTH],AUTHORITY[\"EPSG\",\"32112\"]]");
-    p = add_epsg_def (filter, first, last, 32113, "epsg", 32113,
-        "NAD83 / New Mexico Central");
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 13,
+        "TY[\"EPSG\",\"26848\"]]");
+    p = add_epsg_def (filter, first, last, 26849, "epsg", 26849,
+        "NAD83 / Minnesota North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "00 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
+    add_proj4text (p, 2,
+        "00101599 +y_0=99999.99998983997 +datum=NAD83 +units=us-f");
+    add_proj4text (p, 3,
+        "t +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New Mexico Central\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83 / Minnesota North (ftUS)\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me");
+        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "rcator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        "[\"central_meridian\",-106.25],PARAMETER[\"scale_factor\"");
+        "8.63333333333333],PARAMETER[\"standard_parallel_2\",47.0");
     add_srs_wkt (p, 9,
-        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+        "3333333333333],PARAMETER[\"latitude_of_origin\",46.5],PA");
     add_srs_wkt (p, 10,
-        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+        "RAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_ea");
     add_srs_wkt (p, 11,
-        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+        "sting\",2624666.6667],PARAMETER[\"false_northing\",32808");
     add_srs_wkt (p, 12,
-        "\"EPSG\",\"32113\"]]");
-    p = add_epsg_def (filter, first, last, 32114, "epsg", 32114,
-        "NAD83 / New Mexico West");
+        "3.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 14,
+        "TH],AUTHORITY[\"EPSG\",\"26849\"]]");
+    p = add_epsg_def (filter, first, last, 26850, "epsg", 26850,
+        "NAD83 / Minnesota Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "916667 +x_0=830000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
+    add_proj4text (p, 2,
+        "83997 +datum=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New Mexico West\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"NAD83 / Minnesota Central (ftUS)\",GEOGCS[\"NAD");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS ");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"");
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
     add_srs_wkt (p, 8,
-        "central_meridian\",-107.8333333333333],PARAMETER[\"scale");
+        ",47.05],PARAMETER[\"standard_parallel_2\",45.61666666666");
     add_srs_wkt (p, 9,
-        "_factor\",0.999916667],PARAMETER[\"false_easting\",83000");
+        "667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"ce");
     add_srs_wkt (p, 10,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "ntral_meridian\",-94.25],PARAMETER[\"false_easting\",262");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+        "4666.6667],PARAMETER[\"false_northing\",328083.3333],UNI");
     add_srs_wkt (p, 12,
-        "RTH],AUTHORITY[\"EPSG\",\"32114\"]]");
-    p = add_epsg_def (filter, first, last, 32115, "epsg", 32115,
-        "NAD83 / New York East");
+        "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 13,
+        "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI");
+    add_srs_wkt (p, 14,
+        "TY[\"EPSG\",\"26850\"]]");
+    p = add_epsg_def (filter, first, last, 26851, "epsg", 26851,
+        "NAD83 / Minnesota South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
+    add_proj4text (p, 2,
+        "99.99998983997 +datum=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New York East\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"NAD83 / Minnesota South (ftUS)\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",38.83333333333334],");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        "PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_");
+        "5.21666666666667],PARAMETER[\"standard_parallel_2\",43.7");
     add_srs_wkt (p, 9,
-        "factor\",0.9999],PARAMETER[\"false_easting\",150000],PAR");
+        "8333333333333],PARAMETER[\"latitude_of_origin\",43],PARA");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "METER[\"central_meridian\",-94],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        "g\",2624666.6667],PARAMETER[\"false_northing\",328083.33");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"32115\"]]");
-    p = add_epsg_def (filter, first, last, 32116, "epsg", 32116,
-        "NAD83 / New York Central");
+        "33],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 14,
+        "AUTHORITY[\"EPSG\",\"26851\"]]");
+    p = add_epsg_def (filter, first, last, 26852, "epsg", 26852,
+        "NAD83 / Nebraska (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
     add_proj4text (p, 1,
-        "9375 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +uni");
+    add_proj4text (p, 2,
+        "ts=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New York Central\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"NAD83 / Nebraska (ftUS)\",GEOGCS[\"NAD83\",DATU");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
         "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
         "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "tor\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR");
     add_srs_wkt (p, 8,
-        "central_meridian\",-76.58333333333333],PARAMETER[\"scale");
+        "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_");
     add_srs_wkt (p, 9,
-        "_factor\",0.9999375],PARAMETER[\"false_easting\",250000]");
+        "of_origin\",39.83333333333334],PARAMETER[\"central_merid");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+        "ian\",-100],PARAMETER[\"false_easting\",1640416.6667],PA");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
     add_srs_wkt (p, 12,
-        "H],AUTHORITY[\"EPSG\",\"32116\"]]");
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26852\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_37.c b/src/srsinit/epsg_inlined_37.c
index 2bac4ec..e5b52b3 100644
--- a/src/srsinit/epsg_inlined_37.c
+++ b/src/srsinit/epsg_inlined_37.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,1318 +52,1282 @@ initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 32117, "epsg", 32117,
-        "NAD83 / New York West");
+    p = add_epsg_def (filter, first, last, 26853, "epsg", 26853,
+        "NAD83 / West Virginia North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "9375 +x_0=350000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New York West\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"NAD83 / West Virginia North (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+        "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-78.58333333333333],PARAMETER[\"scale_fa");
+        "1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAMET");
     add_srs_wkt (p, 9,
-        "ctor\",0.9999375],PARAMETER[\"false_easting\",350000],PA");
+        "ER[\"latitude_of_origin\",38.5],PARAMETER[\"central_meri");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "dian\",-79.5],PARAMETER[\"false_easting\",1968500],PARAM");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"32117\"]]");
-    p = add_epsg_def (filter, first, last, 32118, "epsg", 32118,
-        "NAD83 / New York Long Island");
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 13,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26853\"]]");
+    p = add_epsg_def (filter, first, last, 26854, "epsg", 26854,
+        "NAD83 / West Virginia South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0");
+        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83");
     add_proj4text (p, 2,
-        "=0 +datum=NAD83 +units=m +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / New York Long Island\",GEOGCS[\"NAD83\"");
+        "PROJCS[\"NAD83 / West Virginia South (ftUS)\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+        "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+        "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con");
+        "122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambe");
     add_srs_wkt (p, 7,
-        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41");
+        "rt_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_");
     add_srs_wkt (p, 8,
-        ".03333333333333],PARAMETER[\"standard_parallel_2\",40.66");
+        "1\",38.88333333333333],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "666666666666],PARAMETER[\"latitude_of_origin\",40.166666");
+        ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]");
     add_srs_wkt (p, 10,
-        "66666666],PARAMETER[\"central_meridian\",-74],PARAMETER[");
+        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "\"false_easting\",300000],PARAMETER[\"false_northing\",0");
+        "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32118\"");
+        "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32119, "epsg", 32119,
-        "NAD83 / North Carolina");
+        "EPSG\",\"26854\"]]");
+    p = add_epsg_def (filter, first, last, 26855, "epsg", 26855,
+        "NAD83(HARN) / Maine East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +datum");
+        "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=");
     add_proj4text (p, 2,
-        "=NAD83 +units=m +no_defs");
+        "0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / North Carolina\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83(HARN) / Maine East (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666");
+        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
     add_srs_wkt (p, 8,
-        "666666666],PARAMETER[\"standard_parallel_2\",34.33333333");
+        "rigin\",43.66666666666666],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETE");
+        ",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "R[\"central_meridian\",-79],PARAMETER[\"false_easting\",");
+        "alse_easting\",984250.0000000002],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+        "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT");
     add_srs_wkt (p, 12,
-        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+        "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
     add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32119\"]]");
-    p = add_epsg_def (filter, first, last, 32120, "epsg", 32120,
-        "NAD83 / North Dakota North");
+        "ORTH],AUTHORITY[\"EPSG\",\"26855\"]]");
+    p = add_epsg_def (filter, first, last, 26856, "epsg", 26856,
+        "NAD83(HARN) / Maine West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +datum=NA");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
     add_proj4text (p, 2,
-        "D83 +units=m +no_defs");
+        "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / North Dakota North\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83(HARN) / Maine West (ftUS)\",GEOGCS[\"NAD8");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\"");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7");
+        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
     add_srs_wkt (p, 8,
-        "3333333333333],PARAMETER[\"standard_parallel_2\",47.4333");
+        "rigin\",42.83333333333334],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "3333333333],PARAMETER[\"latitude_of_origin\",47],PARAMET");
+        ",-70.16666666666667],PARAMETER[\"scale_factor\",0.999966");
     add_srs_wkt (p, 10,
-        "ER[\"central_meridian\",-100.5],PARAMETER[\"false_eastin");
+        "667],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
     add_srs_wkt (p, 12,
-        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
     add_srs_wkt (p, 13,
-        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32120\"]]");
-    p = add_epsg_def (filter, first, last, 32121, "epsg", 32121,
-        "NAD83 / North Dakota South");
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26856\"]]");
+    p = add_epsg_def (filter, first, last, 26857, "epsg", 26857,
+        "NAD83(HARN) / Minnesota North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
     add_proj4text (p, 2,
-        "y_0=0 +datum=NAD83 +units=m +no_defs");
+        "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,");
+    add_proj4text (p, 3,
+        "0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / North Dakota South\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.4");
+        ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "8333333333333],PARAMETER[\"standard_parallel_2\",46.1833");
+        "standard_parallel_1\",48.63333333333333],PARAMETER[\"sta");
     add_srs_wkt (p, 9,
-        "3333333333],PARAMETER[\"latitude_of_origin\",45.66666666");
+        "ndard_parallel_2\",47.03333333333333],PARAMETER[\"latitu");
     add_srs_wkt (p, 10,
-        "666666],PARAMETER[\"central_meridian\",-100.5],PARAMETER");
+        "de_of_origin\",46.5],PARAMETER[\"central_meridian\",-93.");
     add_srs_wkt (p, 11,
-        "[\"false_easting\",600000],PARAMETER[\"false_northing\",");
+        "1],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"");
     add_srs_wkt (p, 12,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "false_northing\",328083.3333],UNIT[\"US survey foot\",0.");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32121\"");
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
     add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32122, "epsg", 32122,
-        "NAD83 / Ohio North");
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26857\"]]");
+    p = add_epsg_def (filter, first, last, 26858, "epsg", 26858,
+        "NAD83(HARN) / Minnesota Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=N");
+        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
     add_proj4text (p, 2,
-        "AD83 +units=m +no_defs");
+        "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Ohio North\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"");
     add_srs_wkt (p, 7,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAME");
+        "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "TER[\"standard_parallel_2\",40.43333333333333],PARAMETER");
+        "[\"standard_parallel_1\",47.05],PARAMETER[\"standard_par");
     add_srs_wkt (p, 9,
-        "[\"latitude_of_origin\",39.66666666666666],PARAMETER[\"c");
+        "allel_2\",45.61666666666667],PARAMETER[\"latitude_of_ori");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-82.5],PARAMETER[\"false_easting\",600");
+        "gin\",45],PARAMETER[\"central_meridian\",-94.25],PARAMET");
     add_srs_wkt (p, 11,
-        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+        "ER[\"false_easting\",2624666.6667],PARAMETER[\"false_nor");
     add_srs_wkt (p, 12,
-        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+        "thing\",328083.3333],UNIT[\"US survey foot\",0.304800609");
     add_srs_wkt (p, 13,
-        "NORTH],AUTHORITY[\"EPSG\",\"32122\"]]");
-    p = add_epsg_def (filter, first, last, 32123, "epsg", 32123,
-        "NAD83 / Ohio South");
+        "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 14,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26858\"]]");
+    p = add_epsg_def (filter, first, last, 26859, "epsg", 26859,
+        "NAD83(HARN) / Minnesota South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=NAD");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
     add_proj4text (p, 2,
-        "83 +units=m +no_defs");
+        "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit");
+    add_proj4text (p, 3,
+        "s=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Ohio South\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]]");
     add_srs_wkt (p, 7,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",40.033333333");
+        ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "33333],PARAMETER[\"standard_parallel_2\",38.733333333333");
+        "standard_parallel_1\",45.21666666666667],PARAMETER[\"sta");
     add_srs_wkt (p, 9,
-        "33],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen");
+        "ndard_parallel_2\",43.78333333333333],PARAMETER[\"latitu");
     add_srs_wkt (p, 10,
-        "tral_meridian\",-82.5],PARAMETER[\"false_easting\",60000");
+        "de_of_origin\",43],PARAMETER[\"central_meridian\",-94],P");
     add_srs_wkt (p, 11,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "ARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+        "se_northing\",328083.3333],UNIT[\"US survey foot\",0.304");
     add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"32123\"]]");
-    p = add_epsg_def (filter, first, last, 32124, "epsg", 32124,
-        "NAD83 / Oklahoma North");
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 14,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26859\"]]");
+    p = add_epsg_def (filter, first, last, 26860, "epsg", 26860,
+        "NAD83(HARN) / Nebraska (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
     add_proj4text (p, 1,
-        "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +datum=NAD83");
+        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow");
     add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Oklahoma North\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83(HARN) / Nebraska (ftUS)\",GEOGCS[\"NAD83(");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJE");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666");
+        "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand");
     add_srs_wkt (p, 8,
-        "666666667],PARAMETER[\"standard_parallel_2\",35.56666666");
+        "ard_parallel_1\",43],PARAMETER[\"standard_parallel_2\",4");
     add_srs_wkt (p, 9,
-        "666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\"");
+        "0],PARAMETER[\"latitude_of_origin\",39.83333333333334],P");
     add_srs_wkt (p, 10,
-        "central_meridian\",-98],PARAMETER[\"false_easting\",6000");
+        "ARAMETER[\"central_meridian\",-100],PARAMETER[\"false_ea");
     add_srs_wkt (p, 11,
-        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
+        "sting\",1640416.6667],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 12,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+        "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS");
     add_srs_wkt (p, 13,
-        "ORTH],AUTHORITY[\"EPSG\",\"32124\"]]");
-    p = add_epsg_def (filter, first, last, 32125, "epsg", 32125,
-        "NAD83 / Oklahoma South");
+        "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 14,
+        "ITY[\"EPSG\",\"26860\"]]");
+    p = add_epsg_def (filter, first, last, 26861, "epsg", 26861,
+        "NAD83(HARN) / West Virginia North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0");
+        "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0");
     add_proj4text (p, 2,
-        "=0 +datum=NAD83 +units=m +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Oklahoma South\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333");
+        "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
     add_srs_wkt (p, 8,
-        "333333333],PARAMETER[\"standard_parallel_2\",33.93333333");
+        "TER[\"standard_parallel_1\",40.25],PARAMETER[\"standard_");
     add_srs_wkt (p, 9,
-        "333333],PARAMETER[\"latitude_of_origin\",33.333333333333");
+        "parallel_2\",39],PARAMETER[\"latitude_of_origin\",38.5],");
     add_srs_wkt (p, 10,
-        "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals");
+        "PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT");
+        "easting\",1968500],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 12,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
+        "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 13,
-        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32125\"]]");
-    p = add_epsg_def (filter, first, last, 32126, "epsg", 32126,
-        "NAD83 / Oregon North");
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 14,
+        "[\"EPSG\",\"26861\"]]");
+    p = add_epsg_def (filter, first, last, 26862, "epsg", 26862,
+        "NAD83(HARN) / West Virginia South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +datum=N");
+        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "AD83 +units=m +no_defs");
+        " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Oregon North\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"415");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARAMET");
+        "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",44.33333333333334],PARAMETER[");
+        "TER[\"standard_parallel_1\",38.88333333333333],PARAMETER");
     add_srs_wkt (p, 9,
-        "\"latitude_of_origin\",43.66666666666666],PARAMETER[\"ce");
+        "[\"standard_parallel_2\",37.48333333333333],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",250");
+        "latitude_of_origin\",37],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "-81],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fa");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32126\"]]");
-    p = add_epsg_def (filter, first, last, 32127, "epsg", 32127,
-        "NAD83 / Oregon South");
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26862\"]]");
+    p = add_epsg_def (filter, first, last, 26863, "epsg", 26863,
+        "NAD83(NSRS2007) / Maine East (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +datum=N");
+        "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=");
     add_proj4text (p, 2,
-        "AD83 +units=m +no_defs");
+        "0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Oregon South\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARAMET");
+        ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        "ER[\"standard_parallel_2\",42.33333333333334],PARAMETER[");
+        "R[\"latitude_of_origin\",43.66666666666666],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "\"latitude_of_origin\",41.66666666666666],PARAMETER[\"ce");
+        "central_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 10,
-        "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",150");
+        "999],PARAMETER[\"false_easting\",984250.0000000002],PARA");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32127\"]]");
-    p = add_epsg_def (filter, first, last, 32128, "epsg", 32128,
-        "NAD83 / Pennsylvania North");
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26863\"]]");
+    p = add_epsg_def (filter, first, last, 26864, "epsg", 26864,
+        "NAD83(NSRS2007) / Maine West (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +datum");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t");
     add_proj4text (p, 2,
-        "=NAD83 +units=m +no_defs");
+        "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Pennsylvania North\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.9");
+        ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        "5],PARAMETER[\"standard_parallel_2\",40.88333333333333],");
+        "R[\"latitude_of_origin\",42.83333333333334],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "PARAMETER[\"latitude_of_origin\",40.16666666666666],PARA");
+        "central_meridian\",-70.16666666666667],PARAMETER[\"scale");
     add_srs_wkt (p, 10,
-        "METER[\"central_meridian\",-77.75],PARAMETER[\"false_eas");
+        "_factor\",0.999966667],PARAMETER[\"false_easting\",29527");
     add_srs_wkt (p, 11,
-        "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+        "50],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo");
     add_srs_wkt (p, 12,
-        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
     add_srs_wkt (p, 13,
-        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32128\"]]");
-    p = add_epsg_def (filter, first, last, 32129, "epsg", 32129,
-        "NAD83 / Pennsylvania South");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268");
+    add_srs_wkt (p, 14,
+        "64\"]]");
+    p = add_epsg_def (filter, first, last, 26865, "epsg", 26865,
+        "NAD83(NSRS2007) / Minnesota North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00");
     add_proj4text (p, 2,
-        "y_0=0 +datum=NAD83 +units=m +no_defs");
+        "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,");
+    add_proj4text (p, 3,
+        "0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Pennsylvania South\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9");
+        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "6666666666667],PARAMETER[\"standard_parallel_2\",39.9333");
+        "\"],PARAMETER[\"standard_parallel_1\",48.63333333333333]");
     add_srs_wkt (p, 9,
-        "3333333333],PARAMETER[\"latitude_of_origin\",39.33333333");
+        ",PARAMETER[\"standard_parallel_2\",47.03333333333333],PA");
     add_srs_wkt (p, 10,
-        "333334],PARAMETER[\"central_meridian\",-77.75],PARAMETER");
+        "RAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"central");
     add_srs_wkt (p, 11,
-        "[\"false_easting\",600000],PARAMETER[\"false_northing\",");
+        "_meridian\",-93.1],PARAMETER[\"false_easting\",2624666.6");
     add_srs_wkt (p, 12,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"US");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32129\"");
+        " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32130, "epsg", 32130,
-        "NAD83 / Rhode Island");
+        "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 15,
+        "PSG\",\"26865\"]]");
+    p = add_epsg_def (filter, first, last, 26866, "epsg", 26866,
+        "NAD83(NSRS2007) / Minnesota Central (ftUS)");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "9999375 +x_0=100000 +y_0=0 +datum=NAD83 +units=m +no_def");
+        "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989");
     add_proj4text (p, 2,
-        "s");
+        "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Rhode Island\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS)\",GE");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",41.08333333333334],PA");
+        "EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
     add_srs_wkt (p, 8,
-        "RAMETER[\"central_meridian\",-71.5],PARAMETER[\"scale_fa");
+        "SP\"],PARAMETER[\"standard_parallel_1\",47.05],PARAMETER");
     add_srs_wkt (p, 9,
-        "ctor\",0.99999375],PARAMETER[\"false_easting\",100000],P");
+        "[\"standard_parallel_2\",45.61666666666667],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+        "latitude_of_origin\",45],PARAMETER[\"central_meridian\",");
     add_srs_wkt (p, 11,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+        "-94.25],PARAMETER[\"false_easting\",2624666.6667],PARAME");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"32130\"]]");
-    p = add_epsg_def (filter, first, last, 32133, "epsg", 32133,
-        "NAD83 / South Carolina");
+        "TER[\"false_northing\",328083.3333],UNIT[\"US survey foo");
+    add_srs_wkt (p, 13,
+        "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI");
+    add_srs_wkt (p, 14,
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268");
+    add_srs_wkt (p, 15,
+        "66\"]]");
+    p = add_epsg_def (filter, first, last, 26867, "epsg", 26867,
+        "NAD83(NSRS2007) / Minnesota South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +datum=NAD");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999");
     add_proj4text (p, 2,
-        "83 +units=m +no_defs");
+        "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit");
+    add_proj4text (p, 3,
+        "s=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / South Carolina\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS)\",GEOG");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\"");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.83333");
+        "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
     add_srs_wkt (p, 8,
-        "333333334],PARAMETER[\"standard_parallel_2\",32.5],PARAM");
+        "\"],PARAMETER[\"standard_parallel_1\",45.21666666666667]");
     add_srs_wkt (p, 9,
-        "ETER[\"latitude_of_origin\",31.83333333333333],PARAMETER");
+        ",PARAMETER[\"standard_parallel_2\",43.78333333333333],PA");
     add_srs_wkt (p, 10,
-        "[\"central_meridian\",-81],PARAMETER[\"false_easting\",6");
+        "RAMETER[\"latitude_of_origin\",43],PARAMETER[\"central_m");
     add_srs_wkt (p, 11,
-        "09600],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+        "eridian\",-94],PARAMETER[\"false_easting\",2624666.6667]");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+        ",PARAMETER[\"false_northing\",328083.3333],UNIT[\"US sur");
     add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32133\"]]");
-    p = add_epsg_def (filter, first, last, 32134, "epsg", 32134,
-        "NAD83 / South Dakota North");
+        "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+    add_srs_wkt (p, 14,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 15,
+        ",\"26867\"]]");
+    p = add_epsg_def (filter, first, last, 26868, "epsg", 26868,
+        "NAD83(NSRS2007) / Nebraska (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666");
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
     add_proj4text (p, 1,
-        "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_");
+        "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow");
     add_proj4text (p, 2,
-        "0=0 +datum=NAD83 +units=m +no_defs");
+        "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / South Dakota North\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS)\",GEOGCS[\"NA");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6");
+        "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
     add_srs_wkt (p, 8,
-        "8333333333333],PARAMETER[\"standard_parallel_2\",44.4166");
+        "AMETER[\"standard_parallel_1\",43],PARAMETER[\"standard_");
     add_srs_wkt (p, 9,
-        "6666666666],PARAMETER[\"latitude_of_origin\",43.83333333");
+        "parallel_2\",40],PARAMETER[\"latitude_of_origin\",39.833");
     add_srs_wkt (p, 10,
-        "333334],PARAMETER[\"central_meridian\",-100],PARAMETER[\"");
+        "33333333334],PARAMETER[\"central_meridian\",-100],PARAME");
     add_srs_wkt (p, 11,
-        "false_easting\",600000],PARAMETER[\"false_northing\",0],");
+        "TER[\"false_easting\",1640416.6667],PARAMETER[\"false_no");
     add_srs_wkt (p, 12,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+        "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A");
     add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32134\"]]");
-    p = add_epsg_def (filter, first, last, 32135, "epsg", 32135,
-        "NAD83 / South Dakota South");
+        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 14,
+        ",NORTH],AUTHORITY[\"EPSG\",\"26868\"]]");
+    p = add_epsg_def (filter, first, last, 26869, "epsg", 26869,
+        "NAD83(NSRS2007) / West Virginia North (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42");
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
     add_proj4text (p, 1,
-        ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y");
+        "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0");
     add_proj4text (p, 2,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        " +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / South Dakota South\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4");
+        "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni");
     add_srs_wkt (p, 8,
-        "],PARAMETER[\"standard_parallel_2\",42.83333333333334],P");
+        "c_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],PARAME");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"latitude_of_origin\",42.33333333333334],PARAM");
+        "TER[\"standard_parallel_2\",39],PARAMETER[\"latitude_of_");
     add_srs_wkt (p, 10,
-        "ETER[\"central_meridian\",-100.3333333333333],PARAMETER[");
+        "origin\",38.5],PARAMETER[\"central_meridian\",-79.5],PAR");
     add_srs_wkt (p, 11,
-        "\"false_easting\",600000],PARAMETER[\"false_northing\",0");
+        "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort");
     add_srs_wkt (p, 12,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32135\"");
+        "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
     add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32136, "epsg", 32136,
-        "NAD83 / Tennessee");
+        "ORTH],AUTHORITY[\"EPSG\",\"26869\"]]");
+    p = add_epsg_def (filter, first, last, 26870, "epsg", 26870,
+        "NAD83(NSRS2007) / West Virginia South (ftUS)");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3");
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
     add_proj4text (p, 1,
-        "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +datum=NA");
+        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80");
     add_proj4text (p, 2,
-        "D83 +units=m +no_defs");
+        " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Tennessee\",GEOGCS[\"NAD83\",DATUM[\"No");
+        "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS)\",");
     add_srs_wkt (p, 1,
-        "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,");
+        "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia");
     add_srs_wkt (p, 2,
-        "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,");
+        "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw");
+        "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,");
     add_srs_wkt (p, 4,
-        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw");
     add_srs_wkt (p, 5,
-        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
     add_srs_wkt (p, 6,
-        "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni");
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666");
+        "[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Coni");
     add_srs_wkt (p, 8,
-        "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER");
+        "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833333333");
     add_srs_wkt (p, 9,
-        "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c");
+        "3333],PARAMETER[\"standard_parallel_2\",37.4833333333333");
     add_srs_wkt (p, 10,
-        "entral_meridian\",-86],PARAMETER[\"false_easting\",60000");
+        "3],PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"cent");
     add_srs_wkt (p, 11,
-        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+        "ral_meridian\",-81],PARAMETER[\"false_easting\",1968500]");
     add_srs_wkt (p, 12,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
     add_srs_wkt (p, 13,
-        "RTH],AUTHORITY[\"EPSG\",\"32136\"]]");
-    p = add_epsg_def (filter, first, last, 32137, "epsg", 32137,
-        "NAD83 / Texas North");
+        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+    add_srs_wkt (p, 14,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26870\"");
+    add_srs_wkt (p, 15,
+        "]]");
+    p = add_epsg_def (filter, first, last, 26891, "epsg", 26891,
+        "NAD83(CSRS) / MTM zone 11");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3");
+        "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 ");
     add_proj4text (p, 1,
-        "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +datum=NAD83 +u");
+        "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_");
     add_proj4text (p, 2,
-        "nits=m +no_defs");
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Texas North\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 11\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",36.18333333");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "333333],PARAMETER[\"standard_parallel_2\",34.65],PARAMET");
+        "in\",0],PARAMETER[\"central_meridian\",-82.5],PARAMETER[");
     add_srs_wkt (p, 9,
-        "ER[\"latitude_of_origin\",34],PARAMETER[\"central_meridi");
+        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",304");
     add_srs_wkt (p, 10,
-        "an\",-101.5],PARAMETER[\"false_easting\",200000],PARAMET");
+        "800],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
-    add_srs_wkt (p, 13,
-        ",AUTHORITY[\"EPSG\",\"32137\"]]");
-    p = add_epsg_def (filter, first, last, 32138, "epsg", 32138,
-        "NAD83 / Texas North Central");
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26891\"]]");
+    p = add_epsg_def (filter, first, last, 26892, "epsg", 26892,
+        "NAD83(CSRS) / MTM zone 12");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "_0=2000000 +datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Texas North Central\",GEOGCS[\"NAD83\",");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 12\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.9");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "6666666666667],PARAMETER[\"standard_parallel_2\",32.1333");
+        "in\",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "3333333333],PARAMETER[\"latitude_of_origin\",31.66666666");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER[");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "\"false_easting\",600000],PARAMETER[\"false_northing\",2");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
-    add_srs_wkt (p, 13,
-        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
-    add_srs_wkt (p, 14,
-        "2138\"]]");
-    p = add_epsg_def (filter, first, last, 32139, "epsg", 32139,
-        "NAD83 / Texas Central");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26892\"]]");
+    p = add_epsg_def (filter, first, last, 26893, "epsg", 26893,
+        "NAD83(CSRS) / MTM zone 13");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "x_0=700000 +y_0=3000000 +datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Texas Central\",GEOGCS[\"NAD83\",DATUM[");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 13\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",31.8833333");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "3333333],PARAMETER[\"standard_parallel_2\",30.1166666666");
+        "in\",0],PARAMETER[\"central_meridian\",-84],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "6667],PARAMETER[\"latitude_of_origin\",29.66666666666667");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "],PARAMETER[\"central_meridian\",-100.3333333333333],PAR");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "AMETER[\"false_easting\",700000],PARAMETER[\"false_north");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "ing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
-    add_srs_wkt (p, 13,
-        "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
-    add_srs_wkt (p, 14,
-        "G\",\"32139\"]]");
-    p = add_epsg_def (filter, first, last, 32140, "epsg", 32140,
-        "NAD83 / Texas South Central");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26893\"]]");
+    p = add_epsg_def (filter, first, last, 26894, "epsg", 26894,
+        "NAD83(CSRS) / MTM zone 14");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333");
+        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "=4000000 +datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Texas South Central\",GEOGCS[\"NAD83\",");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 14\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.2");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "8333333333333],PARAMETER[\"standard_parallel_2\",28.3833");
+        "in\",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "3333333333],PARAMETER[\"latitude_of_origin\",27.83333333");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "333333],PARAMETER[\"central_meridian\",-99],PARAMETER[\"");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "false_easting\",600000],PARAMETER[\"false_northing\",400");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
-    add_srs_wkt (p, 13,
-        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"321");
-    add_srs_wkt (p, 14,
-        "40\"]]");
-    p = add_epsg_def (filter, first, last, 32141, "epsg", 32141,
-        "NAD83 / Texas South");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26894\"]]");
+    p = add_epsg_def (filter, first, last, 26895, "epsg", 26895,
+        "NAD83(CSRS) / MTM zone 15");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "_0=5000000 +datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Texas South\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 15\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",27.83333333");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "333333],PARAMETER[\"standard_parallel_2\",26.16666666666");
+        "in\",0],PARAMETER[\"central_meridian\",-90],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "667],PARAMETER[\"latitude_of_origin\",25.66666666666667]");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "_easting\",300000],PARAMETER[\"false_northing\",5000000]");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
-    add_srs_wkt (p, 13,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32141\"]");
-    add_srs_wkt (p, 14,
-        "]");
-    p = add_epsg_def (filter, first, last, 32142, "epsg", 32142,
-        "NAD83 / Utah North");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26895\"]]");
+    p = add_epsg_def (filter, first, last, 26896, "epsg", 26896,
+        "NAD83(CSRS) / MTM zone 16");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666");
+        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "y_0=1000000 +datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Utah North\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 16\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "33333],PARAMETER[\"standard_parallel_2\",40.716666666666");
+        "in\",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "67],PARAMETER[\"latitude_of_origin\",40.33333333333334],");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "_easting\",500000],PARAMETER[\"false_northing\",1000000]");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
-    add_srs_wkt (p, 13,
-        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32142\"]");
-    add_srs_wkt (p, 14,
-        "]");
-    p = add_epsg_def (filter, first, last, 32143, "epsg", 32143,
-        "NAD83 / Utah Central");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26896\"]]");
+    p = add_epsg_def (filter, first, last, 26897, "epsg", 26897,
+        "NAD83(CSRS) / MTM zone 17");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3");
+        "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 ");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "+datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Utah Central\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 17\",GEOGCS[\"NAD83(CSRS");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PARA");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "METER[\"standard_parallel_2\",39.01666666666667],PARAMET");
+        "in\",0],PARAMETER[\"central_meridian\",-96],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "ER[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "central_meridian\",-111.5],PARAMETER[\"false_easting\",5");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "00000],PARAMETER[\"false_northing\",2000000],UNIT[\"metr");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
-    add_srs_wkt (p, 13,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32143\"]]");
-    p = add_epsg_def (filter, first, last, 32144, "epsg", 32144,
-        "NAD83 / Utah South");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"26897\"]]");
+    p = add_epsg_def (filter, first, last, 26898, "epsg", 26898,
+        "NAD83(CSRS) / MTM zone 1");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3");
+        "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 ");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
     add_proj4text (p, 2,
-        "+datum=NAD83 +units=m +no_defs");
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Utah South\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 1\",GEOGCS[\"NAD83(CSRS)");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAM");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "ETER[\"standard_parallel_2\",37.21666666666667],PARAMETE");
+        "in\",0],PARAMETER[\"central_meridian\",-53],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "R[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "central_meridian\",-111.5],PARAMETER[\"false_easting\",5");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "00000],PARAMETER[\"false_northing\",3000000],UNIT[\"metr");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y");
     add_srs_wkt (p, 12,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
-    add_srs_wkt (p, 13,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32144\"]]");
-    p = add_epsg_def (filter, first, last, 32145, "epsg", 32145,
-        "NAD83 / Vermont");
+        ")\",NORTH],AUTHORITY[\"EPSG\",\"26898\"]]");
+    p = add_epsg_def (filter, first, last, 26899, "epsg", 26899,
+        "NAD83(CSRS) / MTM zone 2");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
+        "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y");
     add_proj4text (p, 1,
-        "=500000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Vermont\",GEOGCS[\"NAD83\",DATUM[\"Nort");
+        "PROJCS[\"NAD83(CSRS) / MTM zone 2\",GEOGCS[\"NAD83(CSRS)");
     add_srs_wkt (p, 1,
-        "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29");
+        "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH");
     add_srs_wkt (p, 2,
-        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+        "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic");
+        "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+        ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 5,
-        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
     add_srs_wkt (p, 6,
-        "EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTI");
     add_srs_wkt (p, 7,
-        "RAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"central");
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
     add_srs_wkt (p, 8,
-        "_meridian\",-72.5],PARAMETER[\"scale_factor\",0.99996428");
+        "in\",0],PARAMETER[\"central_meridian\",-56],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",30480");
     add_srs_wkt (p, 10,
-        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y");
     add_srs_wkt (p, 12,
-        "G\",\"32145\"]]");
-    p = add_epsg_def (filter, first, last, 32146, "epsg", 32146,
-        "NAD83 / Virginia North");
+        ")\",NORTH],AUTHORITY[\"EPSG\",\"26899\"]]");
+    p = add_epsg_def (filter, first, last, 26901, "epsg", 26901,
+        "NAD83 / UTM zone 1N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37");
-    add_proj4text (p, 1,
-        ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +");
-    add_proj4text (p, 2,
-        "datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=1 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Virginia North\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / UTM zone 1N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PA");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "RAMETER[\"standard_parallel_2\",38.03333333333333],PARAM");
+        "l_meridian\",-177],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "ETER[\"latitude_of_origin\",37.66666666666666],PARAMETER");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "[\"central_meridian\",-78.5],PARAMETER[\"false_easting\"");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",3500000],PARAMETER[\"false_northing\",2000000],UNIT[\"m");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],");
-    add_srs_wkt (p, 13,
-        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32146\"]]");
-    p = add_epsg_def (filter, first, last, 32147, "epsg", 32147,
-        "NAD83 / Virginia South");
+        "TY[\"EPSG\",\"26901\"]]");
+    p = add_epsg_def (filter, first, last, 26902, "epsg", 26902,
+        "NAD83 / UTM zone 2N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666");
-    add_proj4text (p, 1,
-        "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +");
-    add_proj4text (p, 2,
-        "y_0=1000000 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=2 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Virginia South\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / UTM zone 2N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "666666667],PARAMETER[\"standard_parallel_2\",36.76666666");
+        "l_meridian\",-171],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "666667],PARAMETER[\"latitude_of_origin\",36.333333333333");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "34],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"fa");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "lse_easting\",3500000],PARAMETER[\"false_northing\",1000");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
-    add_srs_wkt (p, 13,
-        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3214");
-    add_srs_wkt (p, 14,
-        "7\"]]");
-    p = add_epsg_def (filter, first, last, 32148, "epsg", 32148,
-        "NAD83 / Washington North");
+        "TY[\"EPSG\",\"26902\"]]");
+    p = add_epsg_def (filter, first, last, 26903, "epsg", 26903,
+        "NAD83 / UTM zone 3N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47");
-    add_proj4text (p, 1,
-        " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +datum=NAD");
-    add_proj4text (p, 2,
-        "83 +units=m +no_defs");
+        "+proj=utm +zone=3 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Washington North\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"NAD83 / UTM zone 3N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "3333333333],PARAMETER[\"standard_parallel_2\",47.5],PARA");
+        "l_meridian\",-165],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "METER[\"latitude_of_origin\",47],PARAMETER[\"central_mer");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "idian\",-120.8333333333333],PARAMETER[\"false_easting\",");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
-    add_srs_wkt (p, 13,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32148\"]]");
-    p = add_epsg_def (filter, first, last, 32149, "epsg", 32149,
-        "NAD83 / Washington South");
+        "TY[\"EPSG\",\"26903\"]]");
+    p = add_epsg_def (filter, first, last, 26904, "epsg", 26904,
+        "NAD83 / UTM zone 4N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333");
-    add_proj4text (p, 1,
-        "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +");
-    add_proj4text (p, 2,
-        "y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=4 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Washington South\",GEOGCS[\"NAD83\",DAT");
+        "PROJCS[\"NAD83 / UTM zone 4N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.3333");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "3333333334],PARAMETER[\"standard_parallel_2\",45.8333333");
+        "l_meridian\",-159],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "3333334],PARAMETER[\"latitude_of_origin\",45.33333333333");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "334],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
-    add_srs_wkt (p, 13,
-        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32149\"]]");
-    p = add_epsg_def (filter, first, last, 32150, "epsg", 32150,
-        "NAD83 / West Virginia North");
+        "TY[\"EPSG\",\"26904\"]]");
+    p = add_epsg_def (filter, first, last, 26905, "epsg", 26905,
+        "NAD83 / UTM zone 5N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
-    add_proj4text (p, 1,
-        "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=5 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / West Virginia North\",GEOGCS[\"NAD83\",");
+        "PROJCS[\"NAD83 / UTM zone 5N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.2");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "5],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"lat");
+        "l_meridian\",-153],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "itude_of_origin\",38.5],PARAMETER[\"central_meridian\",-");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "79.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
-    add_srs_wkt (p, 13,
-        "EPSG\",\"32150\"]]");
-    p = add_epsg_def (filter, first, last, 32151, "epsg", 32151,
-        "NAD83 / West Virginia South");
+        "TY[\"EPSG\",\"26905\"]]");
+    p = add_epsg_def (filter, first, last, 26906, "epsg", 26906,
+        "NAD83 / UTM zone 6N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
-    add_proj4text (p, 1,
-        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "+proj=utm +zone=6 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / West Virginia South\",GEOGCS[\"NAD83\",");
+        "PROJCS[\"NAD83 / UTM zone 6N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "8333333333333],PARAMETER[\"standard_parallel_2\",37.4833");
+        "l_meridian\",-147],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "3333333333],PARAMETER[\"latitude_of_origin\",37],PARAMET");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "ER[\"central_meridian\",-81],PARAMETER[\"false_easting\"");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
-    add_srs_wkt (p, 13,
-        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32151\"]]");
-    p = add_epsg_def (filter, first, last, 32152, "epsg", 32152,
-        "NAD83 / Wisconsin North");
+        "TY[\"EPSG\",\"26906\"]]");
+    p = add_epsg_def (filter, first, last, 26907, "epsg", 26907,
+        "NAD83 / UTM zone 7N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666");
-    add_proj4text (p, 1,
-        "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0");
-    add_proj4text (p, 2,
-        "=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=7 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wisconsin North\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"NAD83 / UTM zone 7N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "6666666667],PARAMETER[\"standard_parallel_2\",45.5666666");
+        "l_meridian\",-141],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "6666667],PARAMETER[\"latitude_of_origin\",45.16666666666");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fal");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
-    add_srs_wkt (p, 13,
-        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32152\"]]");
-    p = add_epsg_def (filter, first, last, 32153, "epsg", 32153,
-        "NAD83 / Wisconsin Central");
+        "TY[\"EPSG\",\"26907\"]]");
+    p = add_epsg_def (filter, first, last, 26908, "epsg", 26908,
+        "NAD83 / UTM zone 8N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333");
-    add_proj4text (p, 1,
-        "334 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83 +units=m ");
-    add_proj4text (p, 2,
-        "+no_defs");
+        "+proj=utm +zone=8 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wisconsin Central\",GEOGCS[\"NAD83\",DA");
+        "PROJCS[\"NAD83 / UTM zone 8N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5]");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\"la");
+        "l_meridian\",-135],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "titude_of_origin\",43.83333333333334],PARAMETER[\"centra");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "l_meridian\",-90],PARAMETER[\"false_easting\",600000],PA");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
-    add_srs_wkt (p, 13,
-        "AUTHORITY[\"EPSG\",\"32153\"]]");
-    p = add_epsg_def (filter, first, last, 32154, "epsg", 32154,
-        "NAD83 / Wisconsin South");
+        "TY[\"EPSG\",\"26908\"]]");
+    p = add_epsg_def (filter, first, last, 26909, "epsg", 26909,
+        "NAD83 / UTM zone 9N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333");
-    add_proj4text (p, 1,
-        "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83");
-    add_proj4text (p, 2,
-        " +units=m +no_defs");
+        "+proj=utm +zone=9 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wisconsin South\",GEOGCS[\"NAD83\",DATU");
+        "PROJCS[\"NAD83 / UTM zone 9N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "6666666667],PARAMETER[\"standard_parallel_2\",42.7333333");
+        "l_meridian\",-129],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "3333333],PARAMETER[\"latitude_of_origin\",42],PARAMETER[");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "\"central_meridian\",-90],PARAMETER[\"false_easting\",60");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
-    add_srs_wkt (p, 13,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32154\"]]");
-    p = add_epsg_def (filter, first, last, 32155, "epsg", 32155,
-        "NAD83 / Wyoming East");
+        "TY[\"EPSG\",\"26909\"]]");
+    p = add_epsg_def (filter, first, last, 26910, "epsg", 26910,
+        "NAD83 / UTM zone 10N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9");
-    add_proj4text (p, 1,
-        "999375 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=10 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wyoming East\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / UTM zone 10N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
         "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
@@ -1377,93 +1341,83 @@ initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-105.1666666666667],PARAMETER[\"scale_fa");
+        "l_meridian\",-123],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "ctor\",0.9999375],PARAMETER[\"false_easting\",200000],PA");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "AUTHORITY[\"EPSG\",\"32155\"]]");
-    p = add_epsg_def (filter, first, last, 32156, "epsg", 32156,
-        "NAD83 / Wyoming East Central");
+        "TY[\"EPSG\",\"26910\"]]");
+    p = add_epsg_def (filter, first, last, 26911, "epsg", 26911,
+        "NAD83 / UTM zone 11N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9");
-    add_proj4text (p, 1,
-        "999375 +x_0=400000 +y_0=100000 +datum=NAD83 +units=m +no");
-    add_proj4text (p, 2,
-        "_defs");
+        "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wyoming East Central\",GEOGCS[\"NAD83\"");
+        "PROJCS[\"NAD83 / UTM zone 11N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-107.3333333333333],PARAMETER[");
+        "l_meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\",");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "400000],PARAMETER[\"false_northing\",100000],UNIT[\"metr");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32156\"]]");
-    p = add_epsg_def (filter, first, last, 32157, "epsg", 32157,
-        "NAD83 / Wyoming West Central");
+        "TY[\"EPSG\",\"26911\"]]");
+    p = add_epsg_def (filter, first, last, 26912, "epsg", 26912,
+        "NAD83 / UTM zone 12N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0");
-    add_proj4text (p, 1,
-        "=600000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=12 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wyoming West Central\",GEOGCS[\"NAD83\"");
+        "PROJCS[\"NAD83 / UTM zone 12N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ETER[\"central_meridian\",-108.75],PARAMETER[\"scale_fac");
+        "l_meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "tor\",0.9999375],PARAMETER[\"false_easting\",600000],PAR");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "UTHORITY[\"EPSG\",\"32157\"]]");
-    p = add_epsg_def (filter, first, last, 32158, "epsg", 32158,
-        "NAD83 / Wyoming West");
+        "TY[\"EPSG\",\"26912\"]]");
+    p = add_epsg_def (filter, first, last, 26913, "epsg", 26913,
+        "NAD83 / UTM zone 13N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9");
-    add_proj4text (p, 1,
-        "999375 +x_0=800000 +y_0=100000 +datum=NAD83 +units=m +no");
-    add_proj4text (p, 2,
-        "_defs");
+        "+proj=utm +zone=13 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Wyoming West\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / UTM zone 13N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
         "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
@@ -1477,1983 +1431,2067 @@ initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 6,
         "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "tral_meridian\",-110.0833333333333],PARAMETER[\"scale_fa");
+        "l_meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PA");
     add_srs_wkt (p, 9,
-        "ctor\",0.9999375],PARAMETER[\"false_easting\",800000],PA");
+        "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort");
     add_srs_wkt (p, 10,
-        "RAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTH");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+        ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI");
     add_srs_wkt (p, 12,
-        "RTH],AUTHORITY[\"EPSG\",\"32158\"]]");
-    p = add_epsg_def (filter, first, last, 32161, "epsg", 32161,
-        "NAD83 / Puerto Rico & Virgin Is.");
+        "TY[\"EPSG\",\"26913\"]]");
+    p = add_epsg_def (filter, first, last, 26914, "epsg", 26914,
+        "NAD83 / UTM zone 14N");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333");
-    add_proj4text (p, 1,
-        "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +");
-    add_proj4text (p, 2,
-        "x_0=200000 +y_0=200000 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=14 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Puerto Rico & Virgin Is.\",GEOGCS[\"NAD");
+        "PROJCS[\"NAD83 / UTM zone 14N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS ");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        ",18.43333333333333],PARAMETER[\"standard_parallel_2\",18");
+        "l_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ".03333333333333],PARAMETER[\"latitude_of_origin\",17.833");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "33333333333],PARAMETER[\"central_meridian\",-66.43333333");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "333334],PARAMETER[\"false_easting\",200000],PARAMETER[\"");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP");
-    add_srs_wkt (p, 13,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
-    add_srs_wkt (p, 14,
-        "RITY[\"EPSG\",\"32161\"]]");
-    p = add_epsg_def (filter, first, last, 32164, "epsg", 32164,
-        "NAD83 / BLM 14N (ftUS)");
+        "Y[\"EPSG\",\"26914\"]]");
+    p = add_epsg_def (filter, first, last, 26915, "epsg", 26915,
+        "NAD83 / UTM zone 15N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00");
-    add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+        "+proj=utm +zone=15 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / BLM 14N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / UTM zone 15N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996]");
+        "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32164\"]]");
-    p = add_epsg_def (filter, first, last, 32165, "epsg", 32165,
-        "NAD83 / BLM 15N (ftUS)");
+        "Y[\"EPSG\",\"26915\"]]");
+    p = add_epsg_def (filter, first, last, 26916, "epsg", 26916,
+        "NAD83 / UTM zone 16N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00");
-    add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+        "+proj=utm +zone=16 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / BLM 15N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / UTM zone 16N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996]");
+        "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32165\"]]");
-    p = add_epsg_def (filter, first, last, 32166, "epsg", 32166,
-        "NAD83 / BLM 16N (ftUS)");
+        "Y[\"EPSG\",\"26916\"]]");
+    p = add_epsg_def (filter, first, last, 26917, "epsg", 26917,
+        "NAD83 / UTM zone 17N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00");
-    add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+        "+proj=utm +zone=17 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / BLM 16N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / UTM zone 17N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996]");
+        "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32166\"]]");
-    p = add_epsg_def (filter, first, last, 32167, "epsg", 32167,
-        "NAD83 / BLM 17N (ftUS)");
+        "Y[\"EPSG\",\"26917\"]]");
+    p = add_epsg_def (filter, first, last, 26918, "epsg", 26918,
+        "NAD83 / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00");
-    add_proj4text (p, 1,
-        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+        "+proj=utm +zone=18 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / BLM 17N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / UTM zone 18N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]");
+        "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32167\"]]");
-    p = add_epsg_def (filter, first, last, 32180, "epsg", 32180,
-        "NAD83 / SCoPQ zone 2 (deprecated)");
+        "Y[\"EPSG\",\"26918\"]]");
+    p = add_epsg_def (filter, first, last, 26919, "epsg", 26919,
+        "NAD83 / UTM zone 19N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 ");
-    add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=19 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / SCoPQ zone 2 (deprecated)\",GEOGCS[\"NA");
+        "PROJCS[\"NAD83 / UTM zone 19N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "METER[\"central_meridian\",-55.5],PARAMETER[\"scale_fact");
+        "l_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "or\",0.9999],PARAMETER[\"false_easting\",304800],PARAMET");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "RITY[\"EPSG\",\"32180\"]]");
-    p = add_epsg_def (filter, first, last, 32181, "epsg", 32181,
-        "NAD83 / MTM zone 1");
+        "Y[\"EPSG\",\"26919\"]]");
+    p = add_epsg_def (filter, first, last, 26920, "epsg", 26920,
+        "NAD83 / UTM zone 20N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y");
-    add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=20 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 1\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / UTM zone 20N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-53],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "l_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "G\",\"32181\"]]");
-    p = add_epsg_def (filter, first, last, 32182, "epsg", 32182,
-        "NAD83 / MTM zone 2");
+        "Y[\"EPSG\",\"26920\"]]");
+    p = add_epsg_def (filter, first, last, 26921, "epsg", 26921,
+        "NAD83 / UTM zone 21N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y");
-    add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=21 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 2\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / UTM zone 21N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-56],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "l_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
         "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "G\",\"32182\"]]");
-    p = add_epsg_def (filter, first, last, 32183, "epsg", 32183,
-        "NAD83 / MTM zone 3");
+        "Y[\"EPSG\",\"26921\"]]");
+    p = add_epsg_def (filter, first, last, 26922, "epsg", 26922,
+        "NAD83 / UTM zone 22N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 ");
-    add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=22 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 3\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / UTM zone 22N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-58.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "PSG\",\"32183\"]]");
-    p = add_epsg_def (filter, first, last, 32184, "epsg", 32184,
-        "NAD83 / MTM zone 4");
+        "Y[\"EPSG\",\"26922\"]]");
+    p = add_epsg_def (filter, first, last, 26923, "epsg", 26923,
+        "NAD83 / UTM zone 23N");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 ");
-    add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        "+proj=utm +zone=23 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 4\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / UTM zone 23N\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
         "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        "l_meridian\",-61.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        "AMETER[\"false_easting\",500000],PARAMETER[\"false_north");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
     add_srs_wkt (p, 12,
-        "PSG\",\"32184\"]]");
-    p = add_epsg_def (filter, first, last, 32185, "epsg", 32185,
-        "NAD83 / MTM zone 5");
+        "Y[\"EPSG\",\"26923\"]]");
+    p = add_epsg_def (filter, first, last, 26929, "epsg", 26929,
+        "NAD83 / Alabama East");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        "9996 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 5\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / Alabama East\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-64.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "tral_meridian\",-85.83333333333333],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        "ctor\",0.99996],PARAMETER[\"false_easting\",200000],PARA");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "PSG\",\"32185\"]]");
-    p = add_epsg_def (filter, first, last, 32186, "epsg", 32186,
-        "NAD83 / MTM zone 6");
+        "HORITY[\"EPSG\",\"26929\"]]");
+    p = add_epsg_def (filter, first, last, 26930, "epsg", 26930,
+        "NAD83 / Alabama West");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        "00000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 6\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / Alabama West\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr");
     add_srs_wkt (p, 8,
-        "l_meridian\",-67.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "al_meridian\",-87.5],PARAMETER[\"scale_factor\",0.999933");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        "333],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"32186\"]]");
-    p = add_epsg_def (filter, first, last, 32187, "epsg", 32187,
-        "NAD83 / MTM zone 7");
+        "PSG\",\"26930\"]]");
+    p = add_epsg_def (filter, first, last, 26931, "epsg", 26931,
+        "NAD83 / Alaska zone 1");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 ");
+        "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32");
     add_proj4text (p, 1,
-        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+        "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no");
+    add_proj4text (p, 2,
+        "_uoff +gamma=323.1301023611111 +datum=NAD83 +units=m +no");
+    add_proj4text (p, 3,
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 7\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / Alaska zone 1\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_Oblique_Merc");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "ator\"],PARAMETER[\"latitude_of_center\",57],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "l_meridian\",-70.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "longitude_of_center\",-133.6666666666667],PARAMETER[\"az");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        "imuth\",323.1301023611111],PARAMETER[\"rectified_grid_an");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "gle\",323.1301023611111],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "99],PARAMETER[\"false_easting\",5000000],PARAMETER[\"fal");
     add_srs_wkt (p, 12,
-        "PSG\",\"32187\"]]");
-    p = add_epsg_def (filter, first, last, 32188, "epsg", 32188,
-        "NAD83 / MTM zone 8");
+        "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR");
+    add_srs_wkt (p, 14,
+        "ITY[\"EPSG\",\"26931\"]]");
+    p = add_epsg_def (filter, first, last, 26932, "epsg", 26932,
+        "NAD83 / Alaska zone 2");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
         "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 8\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / Alaska zone 2\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "tral_meridian\",-142],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "PSG\",\"32188\"]]");
-    p = add_epsg_def (filter, first, last, 32189, "epsg", 32189,
-        "NAD83 / MTM zone 9");
+        ",\"26932\"]]");
+    p = add_epsg_def (filter, first, last, 26933, "epsg", 26933,
+        "NAD83 / Alaska zone 3");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
         "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 9\",GEOGCS[\"NAD83\",DATUM[\"N");
+        "PROJCS[\"NAD83 / Alaska zone 3\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "tral_meridian\",-146],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "PSG\",\"32189\"]]");
-    p = add_epsg_def (filter, first, last, 32190, "epsg", 32190,
-        "NAD83 / MTM zone 10");
+        ",\"26933\"]]");
+    p = add_epsg_def (filter, first, last, 26934, "epsg", 26934,
+        "NAD83 / Alaska zone 4");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
         "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 10\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 4\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "tral_meridian\",-150],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "PSG\",\"32190\"]]");
-    p = add_epsg_def (filter, first, last, 32191, "epsg", 32191,
-        "NAD83 / MTM zone 11");
+        ",\"26934\"]]");
+    p = add_epsg_def (filter, first, last, 26935, "epsg", 26935,
+        "NAD83 / Alaska zone 5");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 ");
+        "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
         "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 11\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 5\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-82.5],PARAMETER[\"scale_factor\",0.9999],P");
+        "tral_meridian\",-154],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "ITY[\"EPSG\",\"32191\"]]");
-    p = add_epsg_def (filter, first, last, 32192, "epsg", 32192,
-        "NAD83 / MTM zone 12");
+        ",\"26935\"]]");
+    p = add_epsg_def (filter, first, last, 26936, "epsg", 26936,
+        "NAD83 / Alaska zone 6");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 12\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 6\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "tral_meridian\",-158],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"32192\"]]");
-    p = add_epsg_def (filter, first, last, 32193, "epsg", 32193,
-        "NAD83 / MTM zone 13");
+        ",\"26936\"]]");
+    p = add_epsg_def (filter, first, last, 26937, "epsg", 26937,
+        "NAD83 / Alaska zone 7");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 13\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 7\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-84],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "tral_meridian\",-162],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"32193\"]]");
-    p = add_epsg_def (filter, first, last, 32194, "epsg", 32194,
-        "NAD83 / MTM zone 14");
+        ",\"26937\"]]");
+    p = add_epsg_def (filter, first, last, 26938, "epsg", 26938,
+        "NAD83 / Alaska zone 8");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 14\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 8\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "tral_meridian\",-166],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"32194\"]]");
-    p = add_epsg_def (filter, first, last, 32195, "epsg", 32195,
-        "NAD83 / MTM zone 15");
+        ",\"26938\"]]");
+    p = add_epsg_def (filter, first, last, 26939, "epsg", 26939,
+        "NAD83 / Alaska zone 9");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y");
+        "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 ");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 15\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 9\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        "l_meridian\",-90],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "tral_meridian\",-170],PARAMETER[\"scale_factor\",0.9999]");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"32195\"]]");
-    p = add_epsg_def (filter, first, last, 32196, "epsg", 32196,
-        "NAD83 / MTM zone 16");
+        ",\"26939\"]]");
+    p = add_epsg_def (filter, first, last, 26940, "epsg", 26940,
+        "NAD83 / Alaska zone 10");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y");
+        "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 16\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / Alaska zone 10\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",53.83333");
     add_srs_wkt (p, 8,
-        "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "333333334],PARAMETER[\"standard_parallel_2\",51.83333333");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        "333334],PARAMETER[\"latitude_of_origin\",51],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "central_meridian\",-176],PARAMETER[\"false_easting\",100");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"32196\"]]");
-    p = add_epsg_def (filter, first, last, 32197, "epsg", 32197,
-        "NAD83 / MTM zone 17");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"26940\"]]");
+    p = add_epsg_def (filter, first, last, 26941, "epsg", 26941,
+        "NAD83 / California zone 1");
     add_proj4text (p, 0,
-        "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y");
+        "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3");
     add_proj4text (p, 1,
-        "_0=0 +datum=NAD83 +units=m +no_defs");
+        "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +datu");
+    add_proj4text (p, 2,
+        "m=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / MTM zone 17\",GEOGCS[\"NAD83\",DATUM[\"");
+        "PROJCS[\"NAD83 / California zone 1\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.66");
     add_srs_wkt (p, 8,
-        "l_meridian\",-96],PARAMETER[\"scale_factor\",0.9999],PAR");
+        "666666666666],PARAMETER[\"standard_parallel_2\",40],PARA");
     add_srs_wkt (p, 9,
-        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+        "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE");
     add_srs_wkt (p, 10,
-        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+        "R[\"central_meridian\",-122],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+        ",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"me");
     add_srs_wkt (p, 12,
-        "Y[\"EPSG\",\"32197\"]]");
-    p = add_epsg_def (filter, first, last, 32198, "epsg", 32198,
-        "NAD83 / Quebec Lambert");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26941\"]]");
+    p = add_epsg_def (filter, first, last, 26942, "epsg", 26942,
+        "NAD83 / California zone 2");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
+        "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333");
     add_proj4text (p, 1,
-        "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs");
+        "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y");
+    add_proj4text (p, 2,
+        "_0=500000 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Quebec Lambert\",GEOGCS[\"NAD83\",DATUM");
+        "PROJCS[\"NAD83 / California zone 2\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARA");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.83");
     add_srs_wkt (p, 8,
-        "METER[\"standard_parallel_2\",46],PARAMETER[\"latitude_o");
+        "333333333334],PARAMETER[\"standard_parallel_2\",38.33333");
     add_srs_wkt (p, 9,
-        "f_origin\",44],PARAMETER[\"central_meridian\",-68.5],PAR");
+        "333333334],PARAMETER[\"latitude_of_origin\",37.666666666");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+        "66666],PARAMETER[\"central_meridian\",-122],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "false_easting\",2000000],PARAMETER[\"false_northing\",50");
     add_srs_wkt (p, 12,
-        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32198");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 13,
-        "\"]]");
-    p = add_epsg_def (filter, first, last, 32199, "epsg", 32199,
-        "NAD83 / Louisiana Offshore");
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269");
+    add_srs_wkt (p, 14,
+        "42\"]]");
+    p = add_epsg_def (filter, first, last, 26943, "epsg", 26943,
+        "NAD83 / California zone 3");
     add_proj4text (p, 0,
-        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666");
     add_proj4text (p, 1,
-        "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +");
+        "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +");
     add_proj4text (p, 2,
-        "y_0=0 +datum=NAD83 +units=m +no_defs");
+        "datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"NAD83 / Louisiana Offshore\",GEOGCS[\"NAD83\",D");
+        "PROJCS[\"NAD83 / California zone 3\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43");
     add_srs_wkt (p, 8,
-        "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666");
+        "333333333333],PARAMETER[\"standard_parallel_2\",37.06666");
     add_srs_wkt (p, 9,
-        "6666666667],PARAMETER[\"latitude_of_origin\",25.5],PARAM");
+        "666666667],PARAMETER[\"latitude_of_origin\",36.5],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"central_meridian\",-91.33333333333333],PARAMETER[");
+        "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti");
     add_srs_wkt (p, 11,
-        "\"false_easting\",1000000],PARAMETER[\"false_northing\",");
+        "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT[");
     add_srs_wkt (p, 12,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
     add_srs_wkt (p, 13,
-        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32199\"");
-    add_srs_wkt (p, 14,
-        "]]");
-    p = add_epsg_def (filter, first, last, 32201, "epsg", 32201,
-        "WGS 72 / UTM zone 1N");
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26943\"]]");
+    p = add_epsg_def (filter, first, last, 26944, "epsg", 26944,
+        "NAD83 / California zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +datum=NAD83 +uni");
+    add_proj4text (p, 2,
+        "ts=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 1N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / California zone 4\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.25");
     add_srs_wkt (p, 8,
-        "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"lati");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "tude_of_origin\",35.33333333333334],PARAMETER[\"central_");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "meridian\",-119],PARAMETER[\"false_easting\",2000000],PA");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "RAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "32201\"]]");
-    p = add_epsg_def (filter, first, last, 32202, "epsg", 32202,
-        "WGS 72 / UTM zone 2N");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"26944\"]]");
+    p = add_epsg_def (filter, first, last, 26945, "epsg", 26945,
+        "NAD83 / California zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +da");
+    add_proj4text (p, 2,
+        "tum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 2N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / California zone 5\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.46");
     add_srs_wkt (p, 8,
-        "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "666666666667],PARAMETER[\"standard_parallel_2\",34.03333");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "333333333],PARAMETER[\"latitude_of_origin\",33.5],PARAME");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "TER[\"central_meridian\",-118],PARAMETER[\"false_easting");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "\",2000000],PARAMETER[\"false_northing\",500000],UNIT[\"");
     add_srs_wkt (p, 12,
-        "32202\"]]");
-    p = add_epsg_def (filter, first, last, 32203, "epsg", 32203,
-        "WGS 72 / UTM zone 3N");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26945\"]]");
+    p = add_epsg_def (filter, first, last, 26946, "epsg", 26946,
+        "NAD83 / California zone 6");
     add_proj4text (p, 0,
-        "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000");
+    add_proj4text (p, 2,
+        " +y_0=500000 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 3N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / California zone 6\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.88");
     add_srs_wkt (p, 8,
-        "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "333333333333],PARAMETER[\"standard_parallel_2\",32.78333");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "333333333],PARAMETER[\"latitude_of_origin\",32.166666666");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "66666],PARAMETER[\"central_meridian\",-116.25],PARAMETER");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"false_easting\",2000000],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "32203\"]]");
-    p = add_epsg_def (filter, first, last, 32204, "epsg", 32204,
-        "WGS 72 / UTM zone 4N");
+        ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "26946\"]]");
+    p = add_epsg_def (filter, first, last, 26948, "epsg", 26948,
+        "NAD83 / Arizona East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 4N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / Arizona East\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr");
     add_srs_wkt (p, 8,
-        "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "al_meridian\",-110.1666666666667],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "or\",0.9999],PARAMETER[\"false_easting\",213360],PARAMET");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "32204\"]]");
-    p = add_epsg_def (filter, first, last, 32205, "epsg", 32205,
-        "WGS 72 / UTM zone 5N");
+        "RITY[\"EPSG\",\"26948\"]]");
+    p = add_epsg_def (filter, first, last, 26949, "epsg", 26949,
+        "NAD83 / Arizona Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "9 +x_0=213360 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 5N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / Arizona Central\",GEOGCS[\"NAD83\",DATU");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "central_meridian\",-111.9166666666667],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "_factor\",0.9999],PARAMETER[\"false_easting\",213360],PA");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "32205\"]]");
-    p = add_epsg_def (filter, first, last, 32206, "epsg", 32206,
-        "WGS 72 / UTM zone 6N");
+        "AUTHORITY[\"EPSG\",\"26949\"]]");
+    p = add_epsg_def (filter, first, last, 26950, "epsg", 26950,
+        "NAD83 / Arizona West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "=213360 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 6N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / Arizona West\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr");
     add_srs_wkt (p, 8,
-        "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "al_meridian\",-113.75],PARAMETER[\"scale_factor\",0.9999");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "33333],PARAMETER[\"false_easting\",213360],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "32206\"]]");
-    p = add_epsg_def (filter, first, last, 32207, "epsg", 32207,
-        "WGS 72 / UTM zone 7N");
+        "EPSG\",\"26950\"]]");
+    p = add_epsg_def (filter, first, last, 26951, "epsg", 26951,
+        "NAD83 / Arkansas North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 7N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / Arkansas North\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333");
     add_srs_wkt (p, 8,
-        "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "333333333],PARAMETER[\"standard_parallel_2\",34.93333333");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "333333],PARAMETER[\"latitude_of_origin\",34.333333333333");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "34],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "e_easting\",400000],PARAMETER[\"false_northing\",0],UNIT");
     add_srs_wkt (p, 12,
-        "32207\"]]");
-    p = add_epsg_def (filter, first, last, 32208, "epsg", 32208,
-        "WGS 72 / UTM zone 8N");
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
+    add_srs_wkt (p, 13,
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26951\"]]");
+    p = add_epsg_def (filter, first, last, 26952, "epsg", 26952,
+        "NAD83 / Arkansas South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +datu");
+    add_proj4text (p, 2,
+        "m=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 8N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / Arkansas South\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666");
     add_srs_wkt (p, 8,
-        "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "666666667],PARAMETER[\"standard_parallel_2\",33.3],PARAM");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ETER[\"latitude_of_origin\",32.66666666666666],PARAMETER");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "[\"central_meridian\",-92],PARAMETER[\"false_easting\",4");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "00000],PARAMETER[\"false_northing\",400000],UNIT[\"metre");
     add_srs_wkt (p, 12,
-        "32208\"]]");
-    p = add_epsg_def (filter, first, last, 32209, "epsg", 32209,
-        "WGS 72 / UTM zone 9N");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26952\"]]");
+    p = add_epsg_def (filter, first, last, 26953, "epsg", 26953,
+        "NAD83 / Colorado North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+        "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666");
     add_proj4text (p, 1,
-        "4,0.2263 +units=m +no_defs");
+        "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8");
+    add_proj4text (p, 2,
+        "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 9N\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NAD83 / Colorado North\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333");
     add_srs_wkt (p, 8,
-        "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "333333333],PARAMETER[\"standard_parallel_2\",39.71666666");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "666667],PARAMETER[\"latitude_of_origin\",39.333333333333");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "alse_easting\",914401.8289],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "32209\"]]");
-    p = add_epsg_def (filter, first, last, 32210, "epsg", 32210,
-        "WGS 72 / UTM zone 10N");
+        ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+    add_srs_wkt (p, 13,
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"26953\"]]");
+    p = add_epsg_def (filter, first, last, 26954, "epsg", 26954,
+        "NAD83 / Colorado Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +da");
+    add_proj4text (p, 2,
+        "tum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 10N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Colorado Central\",GEOGCS[\"NAD83\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.75],");
     add_srs_wkt (p, 8,
-        ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\"lat");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "itude_of_origin\",37.83333333333334],PARAMETER[\"central");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8");
     add_srs_wkt (p, 11,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+        "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me");
     add_srs_wkt (p, 12,
-        "\"32210\"]]");
-    p = add_epsg_def (filter, first, last, 32211, "epsg", 32211,
-        "WGS 72 / UTM zone 11N");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26954\"]]");
+    p = add_epsg_def (filter, first, last, 26955, "epsg", 26955,
+        "NAD83 / Colorado South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8");
+    add_proj4text (p, 2,
+        "289 +y_0=304800.6096 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 11N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Colorado South\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333");
     add_srs_wkt (p, 8,
-        ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "333333333],PARAMETER[\"standard_parallel_2\",37.23333333");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "333333],PARAMETER[\"latitude_of_origin\",36.666666666666");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "66],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+        "alse_easting\",914401.8289],PARAMETER[\"false_northing\"");
     add_srs_wkt (p, 12,
-        "\"32211\"]]");
-    p = add_epsg_def (filter, first, last, 32212, "epsg", 32212,
-        "WGS 72 / UTM zone 12N");
+        ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+    add_srs_wkt (p, 13,
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"26955\"]]");
+    p = add_epsg_def (filter, first, last, 26956, "epsg", 26956,
+        "NAD83 / Connecticut");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524");
+    add_proj4text (p, 2,
+        "00.3048 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 12N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Connecticut\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.86666666");
     add_srs_wkt (p, 8,
-        ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "666667],PARAMETER[\"standard_parallel_2\",41.2],PARAMETE");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "R[\"latitude_of_origin\",40.83333333333334],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "central_meridian\",-72.75],PARAMETER[\"false_easting\",3");
     add_srs_wkt (p, 11,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+        "04800.6096],PARAMETER[\"false_northing\",152400.3048],UN");
     add_srs_wkt (p, 12,
-        "\"32212\"]]");
-    p = add_epsg_def (filter, first, last, 32213, "epsg", 32213,
-        "WGS 72 / UTM zone 13N");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 13,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26956\"]]");
+    p = add_epsg_def (filter, first, last, 26957, "epsg", 26957,
+        "NAD83 / Delaware");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "995 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 13N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Delaware\",GEOGCS[\"NAD83\",DATUM[\"Nor");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"central");
     add_srs_wkt (p, 8,
-        ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "_meridian\",-75.41666666666667],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+        "\",0.999995],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "\"32213\"]]");
-    p = add_epsg_def (filter, first, last, 32214, "epsg", 32214,
-        "WGS 72 / UTM zone 14N");
+        "RITY[\"EPSG\",\"26957\"]]");
+    p = add_epsg_def (filter, first, last, 26958, "epsg", 26958,
+        "NAD83 / Florida East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 14N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Florida East\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA");
     add_srs_wkt (p, 8,
-        ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "RAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "32214\"]]");
-    p = add_epsg_def (filter, first, last, 32215, "epsg", 32215,
-        "WGS 72 / UTM zone 15N");
+        "AUTHORITY[\"EPSG\",\"26958\"]]");
+    p = add_epsg_def (filter, first, last, 26959, "epsg", 26959,
+        "NAD83 / Florida West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "941177 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 15N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Florida West\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",24.33333333333333],PA");
     add_srs_wkt (p, 8,
-        ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "RAMETER[\"central_meridian\",-82],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "or\",0.999941177],PARAMETER[\"false_easting\",200000],PA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
     add_srs_wkt (p, 12,
-        "32215\"]]");
-    p = add_epsg_def (filter, first, last, 32216, "epsg", 32216,
-        "WGS 72 / UTM zone 16N");
+        "AUTHORITY[\"EPSG\",\"26959\"]]");
+    p = add_epsg_def (filter, first, last, 26960, "epsg", 26960,
+        "NAD83 / Florida North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 16N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Florida North\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],PAR");
     add_srs_wkt (p, 8,
-        ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "AMETER[\"standard_parallel_2\",29.58333333333333],PARAME");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "TER[\"latitude_of_origin\",29],PARAMETER[\"central_merid");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ian\",-84.5],PARAMETER[\"false_easting\",600000],PARAMET");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "32216\"]]");
-    p = add_epsg_def (filter, first, last, 32217, "epsg", 32217,
-        "WGS 72 / UTM zone 17N");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"26960\"]]");
+    p = add_epsg_def (filter, first, last, 26961, "epsg", 26961,
+        "NAD83 / Hawaii zone 1");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "999966667 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_d");
+    add_proj4text (p, 2,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 17N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Hawaii zone 1\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",18.83333333333333],");
     add_srs_wkt (p, 8,
-        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-155.5],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "_factor\",0.999966667],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
     add_srs_wkt (p, 12,
-        "32217\"]]");
-    p = add_epsg_def (filter, first, last, 32218, "epsg", 32218,
-        "WGS 72 / UTM zone 18N");
+        "RTH],AUTHORITY[\"EPSG\",\"26961\"]]");
+    p = add_epsg_def (filter, first, last, 26962, "epsg", 26962,
+        "NAD83 / Hawaii zone 2");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "666667 +k=0.999966667 +x_0=500000 +y_0=0 +datum=NAD83 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 18N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Hawaii zone 2\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",20.33333333333333],");
     add_srs_wkt (p, 8,
-        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-156.6666666666667],PARAM");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
     add_srs_wkt (p, 12,
-        "32218\"]]");
-    p = add_epsg_def (filter, first, last, 32219, "epsg", 32219,
-        "WGS 72 / UTM zone 19N");
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26962\"]]");
+    p = add_epsg_def (filter, first, last, 26963, "epsg", 26963,
+        "NAD83 / Hawaii zone 3");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 19N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Hawaii zone 3\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",21.16666666666667],");
     add_srs_wkt (p, 8,
-        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "actor\",0.99999],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
     add_srs_wkt (p, 12,
-        "32219\"]]");
-    p = add_epsg_def (filter, first, last, 32220, "epsg", 32220,
-        "WGS 72 / UTM zone 20N");
+        "UTHORITY[\"EPSG\",\"26963\"]]");
+    p = add_epsg_def (filter, first, last, 26964, "epsg", 26964,
+        "NAD83 / Hawaii zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 20N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Hawaii zone 4\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",21.83333333333333],");
     add_srs_wkt (p, 8,
-        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-159.5],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "_factor\",0.99999],PARAMETER[\"false_easting\",500000],P");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
     add_srs_wkt (p, 12,
-        "32220\"]]");
-    p = add_epsg_def (filter, first, last, 32221, "epsg", 32221,
-        "WGS 72 / UTM zone 21N");
+        ",AUTHORITY[\"EPSG\",\"26964\"]]");
+    p = add_epsg_def (filter, first, last, 26965, "epsg", 26965,
+        "NAD83 / Hawaii zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "666667 +k=1 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 21N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Hawaii zone 5\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",21.66666666666667],");
     add_srs_wkt (p, 8,
-        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-160.1666666666667],PARAM");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "32221\"]]");
-    p = add_epsg_def (filter, first, last, 32222, "epsg", 32222,
-        "WGS 72 / UTM zone 22N");
+        "NORTH],AUTHORITY[\"EPSG\",\"26965\"]]");
+    p = add_epsg_def (filter, first, last, 26966, "epsg", 26966,
+        "NAD83 / Georgia East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "9 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 22N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Georgia East\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr");
     add_srs_wkt (p, 8,
-        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "al_meridian\",-82.16666666666667],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "or\",0.9999],PARAMETER[\"false_easting\",200000],PARAMET");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "32222\"]]");
-    p = add_epsg_def (filter, first, last, 32223, "epsg", 32223,
-        "WGS 72 / UTM zone 23N");
+        "RITY[\"EPSG\",\"26966\"]]");
+    p = add_epsg_def (filter, first, last, 26967, "epsg", 26967,
+        "NAD83 / Georgia West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "9 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 23N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Georgia West\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr");
     add_srs_wkt (p, 8,
-        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "al_meridian\",-84.16666666666667],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "or\",0.9999],PARAMETER[\"false_easting\",700000],PARAMET");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
     add_srs_wkt (p, 12,
-        "32223\"]]");
-    p = add_epsg_def (filter, first, last, 32224, "epsg", 32224,
-        "WGS 72 / UTM zone 24N");
+        "RITY[\"EPSG\",\"26967\"]]");
+    p = add_epsg_def (filter, first, last, 26968, "epsg", 26968,
+        "NAD83 / Idaho East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +datum=N");
+    add_proj4text (p, 2,
+        "AD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 24N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Idaho East\",GEOGCS[\"NAD83\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA");
     add_srs_wkt (p, 8,
-        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "RAMETER[\"central_meridian\",-112.1666666666667],PARAMET");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ER[\"scale_factor\",0.999947368],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ng\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "32224\"]]");
-    p = add_epsg_def (filter, first, last, 32225, "epsg", 32225,
-        "WGS 72 / UTM zone 25N");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26968\"]]");
+    p = add_epsg_def (filter, first, last, 26969, "epsg", 26969,
+        "NAD83 / Idaho Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99473679999999 +x_0=500000 +y_0=0 +datum=NAD83 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 25N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Idaho Central\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",41.66666666666666],");
     add_srs_wkt (p, 8,
-        ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "actor\",0.999947368],PARAMETER[\"false_easting\",500000]");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
     add_srs_wkt (p, 12,
-        "32225\"]]");
-    p = add_epsg_def (filter, first, last, 32226, "epsg", 32226,
-        "WGS 72 / UTM zone 26N");
+        "H],AUTHORITY[\"EPSG\",\"26969\"]]");
+    p = add_epsg_def (filter, first, last, 26970, "epsg", 26970,
+        "NAD83 / Idaho West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        ".999933333 +x_0=800000 +y_0=0 +datum=NAD83 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 26N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Idaho West\",GEOGCS[\"NAD83\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA");
     add_srs_wkt (p, 8,
-        ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "RAMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "factor\",0.999933333],PARAMETER[\"false_easting\",800000");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
     add_srs_wkt (p, 12,
-        "32226\"]]");
-    p = add_epsg_def (filter, first, last, 32227, "epsg", 32227,
-        "WGS 72 / UTM zone 27N");
+        "TH],AUTHORITY[\"EPSG\",\"26970\"]]");
+    p = add_epsg_def (filter, first, last, 26971, "epsg", 26971,
+        "NAD83 / Illinois East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +datum=N");
+    add_proj4text (p, 2,
+        "AD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 27N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Illinois East\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],");
     add_srs_wkt (p, 8,
-        ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-88.33333333333333],PARAM");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ETER[\"scale_factor\",0.999975],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "g\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
     add_srs_wkt (p, 12,
-        "32227\"]]");
-    p = add_epsg_def (filter, first, last, 32228, "epsg", 32228,
-        "WGS 72 / UTM zone 28N");
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26971\"]]");
+    p = add_epsg_def (filter, first, last, 26972, "epsg", 26972,
+        "NAD83 / Illinois West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "666667 +k=0.999941177 +x_0=700000 +y_0=0 +datum=NAD83 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 28N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Illinois West\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",36.66666666666666],");
     add_srs_wkt (p, 8,
-        ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-90.16666666666667],PARAM");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ETER[\"scale_factor\",0.999941177],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "ting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
     add_srs_wkt (p, 12,
-        "32228\"]]");
-    p = add_epsg_def (filter, first, last, 32229, "epsg", 32229,
-        "WGS 72 / UTM zone 29N");
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26972\"]]");
+    p = add_epsg_def (filter, first, last, 26973, "epsg", 26973,
+        "NAD83 / Indiana East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99966667 +x_0=100000 +y_0=250000 +datum=NAD83 +units=m +");
+    add_proj4text (p, 2,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 29N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Indiana East\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "tral_meridian\",-85.66666666666667],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ctor\",0.999966667],PARAMETER[\"false_easting\",100000],");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "32229\"]]");
-    p = add_epsg_def (filter, first, last, 32230, "epsg", 32230,
-        "WGS 72 / UTM zone 30N");
+        "NORTH],AUTHORITY[\"EPSG\",\"26973\"]]");
+    p = add_epsg_def (filter, first, last, 26974, "epsg", 26974,
+        "NAD83 / Indiana West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99966667 +x_0=900000 +y_0=250000 +datum=NAD83 +units=m +");
+    add_proj4text (p, 2,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 30N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Indiana West\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen");
     add_srs_wkt (p, 8,
-        ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "tral_meridian\",-87.08333333333333],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ctor\",0.999966667],PARAMETER[\"false_easting\",900000],");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "32230\"]]");
-    p = add_epsg_def (filter, first, last, 32231, "epsg", 32231,
-        "WGS 72 / UTM zone 31N");
+        "NORTH],AUTHORITY[\"EPSG\",\"26974\"]]");
+    p = add_epsg_def (filter, first, last, 26975, "epsg", 26975,
+        "NAD83 / Iowa North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +");
+    add_proj4text (p, 2,
+        "datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 31N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Iowa North\",GEOGCS[\"NAD83\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",43.266666666");
     add_srs_wkt (p, 8,
-        ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "66667],PARAMETER[\"standard_parallel_2\",42.066666666666");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "67],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"c");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "entral_meridian\",-93.5],PARAMETER[\"false_easting\",150");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+        "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre");
     add_srs_wkt (p, 12,
-        "2231\"]]");
-    p = add_epsg_def (filter, first, last, 32232, "epsg", 32232,
-        "WGS 72 / UTM zone 32N");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26975\"]]");
+    p = add_epsg_def (filter, first, last, 26976, "epsg", 26976,
+        "NAD83 / Iowa South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 32N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Iowa South\",GEOGCS[\"NAD83\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333");
     add_srs_wkt (p, 8,
-        ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "33333],PARAMETER[\"standard_parallel_2\",40.616666666666");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+        "67],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen");
     add_srs_wkt (p, 10,
-        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+        "tral_meridian\",-93.5],PARAMETER[\"false_easting\",50000");
     add_srs_wkt (p, 11,
-        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "2232\"]]");
-    p = add_epsg_def (filter, first, last, 32233, "epsg", 32233,
-        "WGS 72 / UTM zone 33N");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"26976\"]]");
+    p = add_epsg_def (filter, first, last, 26977, "epsg", 26977,
+        "NAD83 / Kansas North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 33N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Kansas North\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",39.78333333");
     add_srs_wkt (p, 8,
-        ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "333333],PARAMETER[\"standard_parallel_2\",38.71666666666");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "667],PARAMETER[\"latitude_of_origin\",38.33333333333334]");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        ",PARAMETER[\"central_meridian\",-98],PARAMETER[\"false_e");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "asting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 12,
-        "32233\"]]");
-    p = add_epsg_def (filter, first, last, 32234, "epsg", 32234,
-        "WGS 72 / UTM zone 34N");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 13,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26977\"]]");
+    p = add_epsg_def (filter, first, last, 26978, "epsg", 26978,
+        "NAD83 / Kansas South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y");
+    add_proj4text (p, 2,
+        "_0=400000 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 34N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Kansas South\",GEOGCS[\"NAD83\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.56666666");
     add_srs_wkt (p, 8,
-        ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "666667],PARAMETER[\"standard_parallel_2\",37.26666666666");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "667],PARAMETER[\"latitude_of_origin\",36.66666666666666]");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "_easting\",400000],PARAMETER[\"false_northing\",400000],");
     add_srs_wkt (p, 12,
-        "32234\"]]");
-    p = add_epsg_def (filter, first, last, 32235, "epsg", 32235,
-        "WGS 72 / UTM zone 35N");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26978\"]]");
+    p = add_epsg_def (filter, first, last, 26979, "epsg", 26979,
+        "NAD83 / Kentucky North (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +datum=");
+    add_proj4text (p, 2,
+        "NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 35N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Kentucky North (deprecated)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel");
     add_srs_wkt (p, 8,
-        ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "_1\",37.96666666666667],PARAMETER[\"standard_parallel_2\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        ",37.96666666666667],PARAMETER[\"latitude_of_origin\",37.");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "5],PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
     add_srs_wkt (p, 12,
-        "32235\"]]");
-    p = add_epsg_def (filter, first, last, 32236, "epsg", 32236,
-        "WGS 72 / UTM zone 36N");
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 13,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26979\"]]");
+    p = add_epsg_def (filter, first, last, 26980, "epsg", 26980,
+        "NAD83 / Kentucky South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +");
+    add_proj4text (p, 2,
+        "y_0=500000 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 36N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Kentucky South\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333");
     add_srs_wkt (p, 8,
-        ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "333333333],PARAMETER[\"standard_parallel_2\",36.73333333");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "333333],PARAMETER[\"latitude_of_origin\",36.333333333333");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "alse_easting\",500000],PARAMETER[\"false_northing\",5000");
     add_srs_wkt (p, 12,
-        "32236\"]]");
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 13,
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26980");
+    add_srs_wkt (p, 14,
+        "\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_38.c b/src/srsinit/epsg_inlined_38.c
index 8d0eab0..431a1b4 100644
--- a/src/srsinit/epsg_inlined_38.c
+++ b/src/srsinit/epsg_inlined_38.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3238 +52,3516 @@ initialize_epsg_38 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 32237, "epsg", 32237,
-        "WGS 72 / UTM zone 37N");
+    p = add_epsg_def (filter, first, last, 26981, "epsg", 26981,
+        "NAD83 / Louisiana North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +datum=");
+    add_proj4text (p, 2,
+        "NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 37N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Louisiana North\",GEOGCS[\"NAD83\",DATU");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666");
     add_srs_wkt (p, 8,
-        ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "6666666666],PARAMETER[\"standard_parallel_2\",31.1666666");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "6666667],PARAMETER[\"latitude_of_origin\",30.5],PARAMETE");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "R[\"central_meridian\",-92.5],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        ",1000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        "32237\"]]");
-    p = add_epsg_def (filter, first, last, 32238, "epsg", 32238,
-        "WGS 72 / UTM zone 38N");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26981\"]]");
+    p = add_epsg_def (filter, first, last, 26982, "epsg", 26982,
+        "NAD83 / Louisiana South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        ".33333333333333 +x_0=1000000 +y_0=0 +datum=NAD83 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 38N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Louisiana South\",GEOGCS[\"NAD83\",DATU");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],P");
     add_srs_wkt (p, 8,
-        ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "ARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"latit");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ude_of_origin\",28.5],PARAMETER[\"central_meridian\",-91");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        ".33333333333333],PARAMETER[\"false_easting\",1000000],PA");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 12,
-        "32238\"]]");
-    p = add_epsg_def (filter, first, last, 32239, "epsg", 32239,
-        "WGS 72 / UTM zone 39N");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"26982\"]]");
+    p = add_epsg_def (filter, first, last, 26983, "epsg", 26983,
+        "NAD83 / Maine East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 39N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Maine East\",GEOGCS[\"NAD83\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA");
     add_srs_wkt (p, 8,
-        ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ctor\",0.9999],PARAMETER[\"false_easting\",300000],PARAM");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
     add_srs_wkt (p, 12,
-        "32239\"]]");
-    p = add_epsg_def (filter, first, last, 32240, "epsg", 32240,
-        "WGS 72 / UTM zone 40N");
+        "HORITY[\"EPSG\",\"26983\"]]");
+    p = add_epsg_def (filter, first, last, 26984, "epsg", 26984,
+        "NAD83 / Maine West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "666667 +k=0.999966667 +x_0=900000 +y_0=0 +datum=NAD83 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 40N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Maine West\",GEOGCS[\"NAD83\",DATUM[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA");
     add_srs_wkt (p, 8,
-        ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"central_meridian\",-70.16666666666667],PARAMET");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ER[\"scale_factor\",0.999966667],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ng\",900000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
     add_srs_wkt (p, 12,
-        "32240\"]]");
-    p = add_epsg_def (filter, first, last, 32241, "epsg", 32241,
-        "WGS 72 / UTM zone 41N");
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26984\"]]");
+    p = add_epsg_def (filter, first, last, 26985, "epsg", 26985,
+        "NAD83 / Maryland");
     add_proj4text (p, 0,
-        "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "666 +lon_0=-77 +x_0=400000 +y_0=0 +datum=NAD83 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 41N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Maryland\",GEOGCS[\"NAD83\",DATUM[\"Nor");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAMET");
     add_srs_wkt (p, 8,
-        ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "ER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_of");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "_origin\",37.66666666666666],PARAMETER[\"central_meridia");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "n\",-77],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "32241\"]]");
-    p = add_epsg_def (filter, first, last, 32242, "epsg", 32242,
-        "WGS 72 / UTM zone 42N");
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"26985\"]]");
+    p = add_epsg_def (filter, first, last, 26986, "epsg", 26986,
+        "NAD83 / Massachusetts Mainland");
     add_proj4text (p, 0,
-        "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +datu");
+    add_proj4text (p, 2,
+        "m=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 42N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Massachusetts Mainland\",GEOGCS[\"NAD83");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4");
     add_srs_wkt (p, 8,
-        ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "2.68333333333333],PARAMETER[\"standard_parallel_2\",41.7");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "1666666666667],PARAMETER[\"latitude_of_origin\",41],PARA");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "METER[\"central_meridian\",-71.5],PARAMETER[\"false_east");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ing\",200000],PARAMETER[\"false_northing\",750000],UNIT[");
     add_srs_wkt (p, 12,
-        "32242\"]]");
-    p = add_epsg_def (filter, first, last, 32243, "epsg", 32243,
-        "WGS 72 / UTM zone 43N");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS");
+    add_srs_wkt (p, 13,
+        "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26986\"]]");
+    p = add_epsg_def (filter, first, last, 26987, "epsg", 26987,
+        "NAD83 / Massachusetts Island");
     add_proj4text (p, 0,
-        "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 43N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Massachusetts Island\",GEOGCS[\"NAD83\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41");
     add_srs_wkt (p, 8,
-        ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        ".48333333333333],PARAMETER[\"standard_parallel_2\",41.28");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "333333333333],PARAMETER[\"latitude_of_origin\",41],PARAM");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ETER[\"central_meridian\",-70.5],PARAMETER[\"false_easti");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 12,
-        "32243\"]]");
-    p = add_epsg_def (filter, first, last, 32244, "epsg", 32244,
-        "WGS 72 / UTM zone 44N");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26987\"]]");
+    p = add_epsg_def (filter, first, last, 26988, "epsg", 26988,
+        "NAD83 / Michigan North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_");
+    add_proj4text (p, 2,
+        "0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 44N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Michigan North\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.08333");
     add_srs_wkt (p, 8,
-        ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "333333334],PARAMETER[\"standard_parallel_2\",45.48333333");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "333333],PARAMETER[\"latitude_of_origin\",44.783333333333");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "33],PARAMETER[\"central_meridian\",-87],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "e_easting\",8000000],PARAMETER[\"false_northing\",0],UNI");
     add_srs_wkt (p, 12,
-        "32244\"]]");
-    p = add_epsg_def (filter, first, last, 32245, "epsg", 32245,
-        "WGS 72 / UTM zone 45N");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 13,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26988\"]]");
+    p = add_epsg_def (filter, first, last, 26989, "epsg", 26989,
+        "NAD83 / Michigan Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 45N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Michigan Central\",GEOGCS[\"NAD83\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],P");
     add_srs_wkt (p, 8,
-        ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "ARAMETER[\"standard_parallel_2\",44.18333333333333],PARA");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "METER[\"latitude_of_origin\",43.31666666666667],PARAMETE");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "R[\"central_meridian\",-84.36666666666666],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "alse_easting\",6000000],PARAMETER[\"false_northing\",0],");
     add_srs_wkt (p, 12,
-        "32245\"]]");
-    p = add_epsg_def (filter, first, last, 32246, "epsg", 32246,
-        "WGS 72 / UTM zone 46N");
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26989\"]]");
+    p = add_epsg_def (filter, first, last, 26990, "epsg", 26990,
+        "NAD83 / Michigan South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +datum=");
+    add_proj4text (p, 2,
+        "NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 46N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Michigan South\",GEOGCS[\"NAD83\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.66666");
     add_srs_wkt (p, 8,
-        ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "666666666],PARAMETER[\"standard_parallel_2\",42.1],PARAM");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "ETER[\"latitude_of_origin\",41.5],PARAMETER[\"central_me");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "ridian\",-84.36666666666666],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        ",4000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        "32246\"]]");
-    p = add_epsg_def (filter, first, last, 32247, "epsg", 32247,
-        "WGS 72 / UTM zone 47N");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26990\"]]");
+    p = add_epsg_def (filter, first, last, 26991, "epsg", 26991,
+        "NAD83 / Minnesota North");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y");
+    add_proj4text (p, 2,
+        "_0=100000 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 47N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Minnesota North\",GEOGCS[\"NAD83\",DATU");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333");
     add_srs_wkt (p, 8,
-        ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "3333333333],PARAMETER[\"standard_parallel_2\",47.0333333");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+        "3333333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETE");
     add_srs_wkt (p, 10,
-        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+        "R[\"central_meridian\",-93.1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 11,
-        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        ",800000],PARAMETER[\"false_northing\",100000],UNIT[\"met");
     add_srs_wkt (p, 12,
-        "32247\"]]");
-    p = add_epsg_def (filter, first, last, 32248, "epsg", 32248,
-        "WGS 72 / UTM zone 48N");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26991\"]]");
+    p = add_epsg_def (filter, first, last, 26992, "epsg", 26992,
+        "NAD83 / Minnesota Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +datum=NAD83 +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 48N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Minnesota Central\",GEOGCS[\"NAD83\",DA");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05");
     add_srs_wkt (p, 8,
-        ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "],PARAMETER[\"standard_parallel_2\",45.61666666666667],P");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ARAMETER[\"latitude_of_origin\",45],PARAMETER[\"central_");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "meridian\",-94.25],PARAMETER[\"false_easting\",800000],P");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 12,
-        "32248\"]]");
-    p = add_epsg_def (filter, first, last, 32249, "epsg", 32249,
-        "WGS 72 / UTM zone 49N");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+    add_srs_wkt (p, 13,
+        "ORTH],AUTHORITY[\"EPSG\",\"26992\"]]");
+    p = add_epsg_def (filter, first, last, 26993, "epsg", 26993,
+        "NAD83 / Minnesota South");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +datum=");
+    add_proj4text (p, 2,
+        "NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 49N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Minnesota South\",GEOGCS[\"NAD83\",DATU");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166");
     add_srs_wkt (p, 8,
-        ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "6666666667],PARAMETER[\"standard_parallel_2\",43.7833333");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "3333333],PARAMETER[\"latitude_of_origin\",43],PARAMETER[");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "\"central_meridian\",-94],PARAMETER[\"false_easting\",80");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "0000],PARAMETER[\"false_northing\",100000],UNIT[\"metre\"");
     add_srs_wkt (p, 12,
-        "32249\"]]");
-    p = add_epsg_def (filter, first, last, 32250, "epsg", 32250,
-        "WGS 72 / UTM zone 50N");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"26993\"]]");
+    p = add_epsg_def (filter, first, last, 26994, "epsg", 26994,
+        "NAD83 / Mississippi East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "9995 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 50N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Mississippi East\",GEOGCS[\"NAD83\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER[");
     add_srs_wkt (p, 8,
-        ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "\"central_meridian\",-88.83333333333333],PARAMETER[\"sca");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "le_factor\",0.99995],PARAMETER[\"false_easting\",300000]");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
     add_srs_wkt (p, 12,
-        "32250\"]]");
-    p = add_epsg_def (filter, first, last, 32251, "epsg", 32251,
-        "WGS 72 / UTM zone 51N");
+        "H],AUTHORITY[\"EPSG\",\"26994\"]]");
+    p = add_epsg_def (filter, first, last, 26995, "epsg", 26995,
+        "NAD83 / Mississippi West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "9995 +x_0=700000 +y_0=0 +datum=NAD83 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 51N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Mississippi West\",GEOGCS[\"NAD83\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "tor\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETER[");
     add_srs_wkt (p, 8,
-        ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "\"central_meridian\",-90.33333333333333],PARAMETER[\"sca");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "le_factor\",0.99995],PARAMETER[\"false_easting\",700000]");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
     add_srs_wkt (p, 12,
-        "32251\"]]");
-    p = add_epsg_def (filter, first, last, 32252, "epsg", 32252,
-        "WGS 72 / UTM zone 52N");
+        "H],AUTHORITY[\"EPSG\",\"26995\"]]");
+    p = add_epsg_def (filter, first, last, 26996, "epsg", 26996,
+        "NAD83 / Missouri East");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99933333 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 52N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Missouri East\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",35.83333333333334],");
     add_srs_wkt (p, 8,
-        ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-90.5],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "factor\",0.999933333],PARAMETER[\"false_easting\",250000");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
     add_srs_wkt (p, 12,
-        "32252\"]]");
-    p = add_epsg_def (filter, first, last, 32253, "epsg", 32253,
-        "WGS 72 / UTM zone 53N");
+        "TH],AUTHORITY[\"EPSG\",\"26996\"]]");
+    p = add_epsg_def (filter, first, last, 26997, "epsg", 26997,
+        "NAD83 / Missouri Central");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99933333 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 53N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Missouri Central\",GEOGCS[\"NAD83\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "tor\"],PARAMETER[\"latitude_of_origin\",35.8333333333333");
     add_srs_wkt (p, 8,
-        ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "4],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"sca");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "le_factor\",0.999933333],PARAMETER[\"false_easting\",500");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
     add_srs_wkt (p, 12,
-        "32253\"]]");
-    p = add_epsg_def (filter, first, last, 32254, "epsg", 32254,
-        "WGS 72 / UTM zone 54N");
+        "NORTH],AUTHORITY[\"EPSG\",\"26997\"]]");
+    p = add_epsg_def (filter, first, last, 26998, "epsg", 26998,
+        "NAD83 / Missouri West");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "99941177 +x_0=850000 +y_0=0 +datum=NAD83 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 54N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NAD83 / Missouri West\",GEOGCS[\"NAD83\",DATUM[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"],PARAMETER[\"latitude_of_origin\",36.16666666666666],");
     add_srs_wkt (p, 8,
-        ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "PARAMETER[\"central_meridian\",-94.5],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "factor\",0.999941177],PARAMETER[\"false_easting\",850000");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
     add_srs_wkt (p, 12,
-        "32254\"]]");
-    p = add_epsg_def (filter, first, last, 32255, "epsg", 32255,
-        "WGS 72 / UTM zone 55N");
+        "TH],AUTHORITY[\"EPSG\",\"26998\"]]");
+    p = add_epsg_def (filter, first, last, 27037, "epsg", 27037,
+        "Nahrwan 1967 / UTM zone 37N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-242.2,-144.9,");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "370.3,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 55N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Nahrwan 1967 / UTM zone 37N\",GEOGCS[\"Nahrwan ");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        ",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "32255\"]]");
-    p = add_epsg_def (filter, first, last, 32256, "epsg", 32256,
-        "WGS 72 / UTM zone 56N");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"27037\"]]");
+    p = add_epsg_def (filter, first, last, 27038, "epsg", 27038,
+        "Nahrwan 1967 / UTM zone 38N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-242.2,-144.9,");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "370.3,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 56N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Nahrwan 1967 / UTM zone 38N\",GEOGCS[\"Nahrwan ");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        ",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "32256\"]]");
-    p = add_epsg_def (filter, first, last, 32257, "epsg", 32257,
-        "WGS 72 / UTM zone 57N");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"27038\"]]");
+    p = add_epsg_def (filter, first, last, 27039, "epsg", 27039,
+        "Nahrwan 1967 / UTM zone 39N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-242.2,-144.9,");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "370.3,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 57N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Nahrwan 1967 / UTM zone 39N\",GEOGCS[\"Nahrwan ");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        ",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "32257\"]]");
-    p = add_epsg_def (filter, first, last, 32258, "epsg", 32258,
-        "WGS 72 / UTM zone 58N");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"27039\"]]");
+    p = add_epsg_def (filter, first, last, 27040, "epsg", 27040,
+        "Nahrwan 1967 / UTM zone 40N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-242.2,-144.9,");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "370.3,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 58N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Nahrwan 1967 / UTM zone 40N\",GEOGCS[\"Nahrwan ");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
     add_srs_wkt (p, 8,
-        ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        ",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"scale");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "32258\"]]");
-    p = add_epsg_def (filter, first, last, 32259, "epsg", 32259,
-        "WGS 72 / UTM zone 59N");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"27040\"]]");
+    p = add_epsg_def (filter, first, last, 27120, "epsg", 27120,
+        "Naparima 1972 / UTM zone 20N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=utm +zone=20 +ellps=intl +towgs84=-10,375,165,0,0,");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 59N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Naparima 1972 / UTM zone 20N\",GEOGCS[\"Naparim");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "a 1972\",DATUM[\"Naparima_1972\",SPHEROID[\"Internationa");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG\",\"6271\"]],PR");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "]],AUTHORITY[\"EPSG\",\"4271\"]],PROJECTION[\"Transverse");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
     add_srs_wkt (p, 12,
-        "32259\"]]");
-    p = add_epsg_def (filter, first, last, 32260, "epsg", 32260,
-        "WGS 72 / UTM zone 60N");
+        "H],AUTHORITY[\"EPSG\",\"27120\"]]");
+    p = add_epsg_def (filter, first, last, 27200, "epsg", 27200,
+        "NZGD49 / New Zealand Map Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+        "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=60231");
     add_proj4text (p, 1,
-        "54,0.2263 +units=m +no_defs");
+        "50 +datum=nzgd49 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 60N\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / New Zealand Map Grid\",GEOGCS[\"NZGD49");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        ",\"4272\"]],PROJECTION[\"New_Zealand_Map_Grid\"],PARAMET");
     add_srs_wkt (p, 8,
-        ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ER[\"latitude_of_origin\",-41],PARAMETER[\"central_merid");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+        "ian\",173],PARAMETER[\"false_easting\",2510000],PARAMETE");
     add_srs_wkt (p, 10,
-        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+        "R[\"false_northing\",6023150],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 11,
-        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
     add_srs_wkt (p, 12,
-        "32260\"]]");
-    p = add_epsg_def (filter, first, last, 32301, "epsg", 32301,
-        "WGS 72 / UTM zone 1S");
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"27200\"]]");
+    p = add_epsg_def (filter, first, last, 27205, "epsg", 27205,
+        "NZGD49 / Mount Eden Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "611111 +k=0.9999 +x_0=300000 +y_0=700000 +datum=nzgd49 +");
+    add_proj4text (p, 2,
+        "units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 1S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Mount Eden Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "[\"latitude_of_origin\",-36.87986527777778],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "central_meridian\",174.7643393611111],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "factor\",0.9999],PARAMETER[\"false_easting\",300000],PAR");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "AMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 12,
-        "G\",\"32301\"]]");
-    p = add_epsg_def (filter, first, last, 32302, "epsg", 32302,
-        "WGS 72 / UTM zone 2S");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27205\"]]");
+    p = add_epsg_def (filter, first, last, 27206, "epsg", 27206,
+        "NZGD49 / Bay of Plenty Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.4661972");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n");
+    add_proj4text (p, 2,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 2S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Bay of Plenty Circuit\",GEOGCS[\"NZGD4");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "9\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "R[\"latitude_of_origin\",-37.76124980555556],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "central_meridian\",176.46619725],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "G\",\"32302\"]]");
-    p = add_epsg_def (filter, first, last, 32303, "epsg", 32303,
-        "WGS 72 / UTM zone 3S");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"27206\"]]");
+    p = add_epsg_def (filter, first, last, 27207, "epsg", 27207,
+        "NZGD49 / Poverty Bay Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 3S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Poverty Bay Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "[\"latitude_of_origin\",-38.62470277777778],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "central_meridian\",177.8856362777778],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "G\",\"32303\"]]");
-    p = add_epsg_def (filter, first, last, 32304, "epsg", 32304,
-        "WGS 72 / UTM zone 4S");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27207\"]]");
+    p = add_epsg_def (filter, first, last, 27208, "epsg", 27208,
+        "NZGD49 / Hawkes Bay Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "277778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 4S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Hawkes Bay Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "[\"latitude_of_origin\",-39.65092930555556],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "central_meridian\",176.6736805277778],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "G\",\"32304\"]]");
-    p = add_epsg_def (filter, first, last, 32305, "epsg", 32305,
-        "WGS 72 / UTM zone 5S");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27208\"]]");
+    p = add_epsg_def (filter, first, last, 27209, "epsg", 27209,
+        "NZGD49 / Taranaki Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.2280117");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "5 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +n");
+    add_proj4text (p, 2,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 5S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Taranaki Circuit\",GEOGCS[\"NZGD49\",D");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "latitude_of_origin\",-39.13575830555556],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "tral_meridian\",174.22801175],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "G\",\"32305\"]]");
-    p = add_epsg_def (filter, first, last, 32306, "epsg", 32306,
-        "WGS 72 / UTM zone 6S");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"27209\"]]");
+    p = add_epsg_def (filter, first, last, 27210, "epsg", 27210,
+        "NZGD49 / Tuhirangi Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 6S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Tuhirangi Circuit\",GEOGCS[\"NZGD49\",");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "latitude_of_origin\",-39.51247038888889],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "tral_meridian\",175.6400368055556],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "G\",\"32306\"]]");
-    p = add_epsg_def (filter, first, last, 32307, "epsg", 32307,
-        "WGS 72 / UTM zone 7S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27210\"]]");
+    p = add_epsg_def (filter, first, last, 27211, "epsg", 27211,
+        "NZGD49 / Wanganui Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 7S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Wanganui Circuit\",GEOGCS[\"NZGD49\",D");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "latitude_of_origin\",-40.24194713888889],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "tral_meridian\",175.4880996111111],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "G\",\"32307\"]]");
-    p = add_epsg_def (filter, first, last, 32308, "epsg", 32308,
-        "WGS 72 / UTM zone 8S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27211\"]]");
+    p = add_epsg_def (filter, first, last, 27212, "epsg", 27212,
+        "NZGD49 / Wairarapa Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 8S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Wairarapa Circuit\",GEOGCS[\"NZGD49\",");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "latitude_of_origin\",-40.92553263888889],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "tral_meridian\",175.6473496666667],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "G\",\"32308\"]]");
-    p = add_epsg_def (filter, first, last, 32309, "epsg", 32309,
-        "WGS 72 / UTM zone 9S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27212\"]]");
+    p = add_epsg_def (filter, first, last, 27213, "epsg", 27213,
+        "NZGD49 / Wellington Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+        "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231");
     add_proj4text (p, 1,
-        ",0,0.554,0.2263 +units=m +no_defs");
+        "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 9S\",GEOGCS[\"WGS 72\",DATUM[");
+        "PROJCS[\"NZGD49 / Wellington Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "[\"latitude_of_origin\",-41.30131963888888],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "central_meridian\",174.7766231111111],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "G\",\"32309\"]]");
-    p = add_epsg_def (filter, first, last, 32310, "epsg", 32310,
-        "WGS 72 / UTM zone 10S");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27213\"]]");
+    p = add_epsg_def (filter, first, last, 27214, "epsg", 27214,
+        "NZGD49 / Collingwood Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 10S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Collingwood Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "[\"latitude_of_origin\",-40.71475905555556],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+        "central_meridian\",172.6720465],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 10,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "EPSG\",\"32310\"]]");
-    p = add_epsg_def (filter, first, last, 32311, "epsg", 32311,
-        "WGS 72 / UTM zone 11S");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"27214\"]]");
+    p = add_epsg_def (filter, first, last, 27215, "epsg", 27215,
+        "NZGD49 / Nelson Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "055555 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 11S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Nelson Circuit\",GEOGCS[\"NZGD49\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "atitude_of_origin\",-41.27454472222222],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+        "ral_meridian\",173.2993168055555],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "EPSG\",\"32311\"]]");
-    p = add_epsg_def (filter, first, last, 32312, "epsg", 32312,
-        "WGS 72 / UTM zone 12S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27215\"]]");
+    p = add_epsg_def (filter, first, last, 27216, "epsg", 27216,
+        "NZGD49 / Karamea Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 12S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Karamea Circuit\",GEOGCS[\"NZGD49\",DA");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "latitude_of_origin\",-41.28991152777778],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+        "tral_meridian\",172.1090281944444],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "EPSG\",\"32312\"]]");
-    p = add_epsg_def (filter, first, last, 32313, "epsg", 32313,
-        "WGS 72 / UTM zone 13S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27216\"]]");
+    p = add_epsg_def (filter, first, last, 27217, "epsg", 27217,
+        "NZGD49 / Buller Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "555556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 13S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Buller Circuit\",GEOGCS[\"NZGD49\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+        "atitude_of_origin\",-41.81080286111111],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+        "ral_meridian\",171.5812600555556],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "EPSG\",\"32313\"]]");
-    p = add_epsg_def (filter, first, last, 32314, "epsg", 32314,
-        "WGS 72 / UTM zone 14S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27217\"]]");
+    p = add_epsg_def (filter, first, last, 27218, "epsg", 27218,
+        "NZGD49 / Grey Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "055556 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 14S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Grey Circuit\",GEOGCS[\"NZGD49\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "itude_of_origin\",-42.33369427777778],PARAMETER[\"centra");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "l_meridian\",171.5497713055556],PARAMETER[\"scale_factor");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "PSG\",\"32314\"]]");
-    p = add_epsg_def (filter, first, last, 32315, "epsg", 32315,
-        "WGS 72 / UTM zone 15S");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"27218\"]]");
+    p = add_epsg_def (filter, first, last, 27219, "epsg", 27219,
+        "NZGD49 / Amuri Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "888889 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 15S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Amuri Circuit\",GEOGCS[\"NZGD49\",DATU");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la");
     add_srs_wkt (p, 8,
-        ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "titude_of_origin\",-42.68911658333333],PARAMETER[\"centr");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "al_meridian\",173.0101333888889],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "r\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"f");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "alse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "PSG\",\"32315\"]]");
-    p = add_epsg_def (filter, first, last, 32316, "epsg", 32316,
-        "WGS 72 / UTM zone 16S");
+        "G\",\"9001\"]],AUTHORITY[\"EPSG\",\"27219\"]]");
+    p = add_epsg_def (filter, first, last, 27220, "epsg", 27220,
+        "NZGD49 / Marlborough Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "111111 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 16S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Marlborough Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "[\"latitude_of_origin\",-41.54448666666666],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "central_meridian\",173.8020741111111],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "PSG\",\"32316\"]]");
-    p = add_epsg_def (filter, first, last, 32317, "epsg", 32317,
-        "WGS 72 / UTM zone 17S");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27220\"]]");
+    p = add_epsg_def (filter, first, last, 27221, "epsg", 27221,
+        "NZGD49 / Hokitika Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        " +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 17S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Hokitika Circuit\",GEOGCS[\"NZGD49\",D");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "latitude_of_origin\",-42.88632236111111],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "tral_meridian\",170.9799935],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "PSG\",\"32317\"]]");
-    p = add_epsg_def (filter, first, last, 32318, "epsg", 32318,
-        "WGS 72 / UTM zone 18S");
+        "\"9001\"]],AUTHORITY[\"EPSG\",\"27221\"]]");
+    p = add_epsg_def (filter, first, last, 27222, "epsg", 27222,
+        "NZGD49 / Okarito Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 18S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Okarito Circuit\",GEOGCS[\"NZGD49\",DA");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "latitude_of_origin\",-43.11012813888889],PARAMETER[\"cen");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "tral_meridian\",170.2609258333333],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "PSG\",\"32318\"]]");
-    p = add_epsg_def (filter, first, last, 32319, "epsg", 32319,
-        "WGS 72 / UTM zone 19S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27222\"]]");
+    p = add_epsg_def (filter, first, last, 27223, "epsg", 27223,
+        "NZGD49 / Jacksons Bay Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 ");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "+k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 19S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Jacksons Bay Circuit\",GEOGCS[\"NZGD49");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "R[\"latitude_of_origin\",-43.97780288888889],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "central_meridian\",168.606267],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "PSG\",\"32319\"]]");
-    p = add_epsg_def (filter, first, last, 32320, "epsg", 32320,
-        "WGS 72 / UTM zone 20S");
+        ",\"9001\"]],AUTHORITY[\"EPSG\",\"27223\"]]");
+    p = add_epsg_def (filter, first, last, 27224, "epsg", 27224,
+        "NZGD49 / Mount Pleasant Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 20S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Mount Pleasant Circuit\",GEOGCS[\"NZGD");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
     add_srs_wkt (p, 8,
-        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ETER[\"latitude_of_origin\",-43.59063758333333],PARAMETE");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "R[\"central_meridian\",172.7271935833333],PARAMETER[\"sc");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 12,
-        "PSG\",\"32320\"]]");
-    p = add_epsg_def (filter, first, last, 32321, "epsg", 32321,
-        "WGS 72 / UTM zone 21S");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27224\"]]");
+    p = add_epsg_def (filter, first, last, 27225, "epsg", 27225,
+        "NZGD49 / Gawler Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "722222 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 21S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Gawler Circuit\",GEOGCS[\"NZGD49\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "atitude_of_origin\",-43.74871155555556],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "ral_meridian\",171.3607484722222],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "PSG\",\"32321\"]]");
-    p = add_epsg_def (filter, first, last, 32322, "epsg", 32322,
-        "WGS 72 / UTM zone 22S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27225\"]]");
+    p = add_epsg_def (filter, first, last, 27226, "epsg", 27226,
+        "NZGD49 / Timaru Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "333333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 22S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Timaru Circuit\",GEOGCS[\"NZGD49\",DAT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "atitude_of_origin\",-44.40222036111111],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "ral_meridian\",171.0572508333333],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "or\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "PSG\",\"32322\"]]");
-    p = add_epsg_def (filter, first, last, 32323, "epsg", 32323,
-        "WGS 72 / UTM zone 23S");
+        "SG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27226\"]]");
+    p = add_epsg_def (filter, first, last, 27227, "epsg", 27227,
+        "NZGD49 / Lindis Peak Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "833333 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 23S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Lindis Peak Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "[\"latitude_of_origin\",-44.73526797222222],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "central_meridian\",169.4677550833333],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "PSG\",\"32323\"]]");
-    p = add_epsg_def (filter, first, last, 32324, "epsg", 32324,
-        "WGS 72 / UTM zone 24S");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27227\"]]");
+    p = add_epsg_def (filter, first, last, 27228, "epsg", 27228,
+        "NZGD49 / Mount Nicholas Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "944444 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 24S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Mount Nicholas Circuit\",GEOGCS[\"NZGD");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "G\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
     add_srs_wkt (p, 8,
-        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ETER[\"latitude_of_origin\",-45.13290258333333],PARAMETE");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "R[\"central_meridian\",168.3986411944444],PARAMETER[\"sc");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "ale_factor\",1],PARAMETER[\"false_easting\",300000],PARA");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "METER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 12,
-        "PSG\",\"32324\"]]");
-    p = add_epsg_def (filter, first, last, 32325, "epsg", 32325,
-        "WGS 72 / UTM zone 25S");
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27228\"]]");
+    p = add_epsg_def (filter, first, last, 27229, "epsg", 27229,
+        "NZGD49 / Mount York Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "777778 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 25S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Mount York Circuit\",GEOGCS[\"NZGD49\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
     add_srs_wkt (p, 8,
-        ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "[\"latitude_of_origin\",-45.56372616666666],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "central_meridian\",167.7388617777778],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "PSG\",\"32325\"]]");
-    p = add_epsg_def (filter, first, last, 32326, "epsg", 32326,
-        "WGS 72 / UTM zone 26S");
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27229\"]]");
+    p = add_epsg_def (filter, first, last, 27230, "epsg", 27230,
+        "NZGD49 / Observation Point Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "666667 +k=1 +x_0=300000 +y_0=700000 +datum=nzgd49 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 26S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Observation Point Circuit\",GEOGCS[\"N");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "ZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHERO");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "EPSG\",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 8,
-        ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "RAMETER[\"latitude_of_origin\",-45.81619661111111],PARAM");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "ETER[\"central_meridian\",170.6285951666667],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "scale_factor\",1],PARAMETER[\"false_easting\",300000],PA");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "PSG\",\"32326\"]]");
-    p = add_epsg_def (filter, first, last, 32327, "epsg", 32327,
-        "WGS 72 / UTM zone 27S");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27230\"]]");
+    p = add_epsg_def (filter, first, last, 27231, "epsg", 27231,
+        "NZGD49 / North Taieri Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "111111 +k=0.99996 +x_0=300000 +y_0=700000 +datum=nzgd49 ");
+    add_proj4text (p, 2,
+        "+units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 27S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / North Taieri Circuit\",GEOGCS[\"NZGD49");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "R[\"latitude_of_origin\",-45.86151336111111],PARAMETER[\"");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "central_meridian\",170.2825891111111],PARAMETER[\"scale_");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "factor\",0.99996],PARAMETER[\"false_easting\",300000],PA");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "RAMETER[\"false_northing\",700000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "PSG\",\"32327\"]]");
-    p = add_epsg_def (filter, first, last, 32328, "epsg", 32328,
-        "WGS 72 / UTM zone 28S");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27231\"]]");
+    p = add_epsg_def (filter, first, last, 27232, "epsg", 27232,
+        "NZGD49 / Bluff Circuit");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 ");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "+k=1 +x_0=300002.66 +y_0=699999.58 +datum=nzgd49 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 28S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / Bluff Circuit\",GEOGCS[\"NZGD49\",DATU");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"427");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la");
     add_srs_wkt (p, 8,
-        ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "titude_of_origin\",-46.60000961111111],PARAMETER[\"centr");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "al_meridian\",168.342872],PARAMETER[\"scale_factor\",1],");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "PARAMETER[\"false_easting\",300002.66],PARAMETER[\"false");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "_northing\",699999.58],UNIT[\"metre\",1,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "PSG\",\"32328\"]]");
-    p = add_epsg_def (filter, first, last, 32329, "epsg", 32329,
-        "WGS 72 / UTM zone 29S");
+        "\",\"9001\"]],AUTHORITY[\"EPSG\",\"27232\"]]");
+    p = add_epsg_def (filter, first, last, 27258, "epsg", 27258,
+        "NZGD49 / UTM zone 58S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=utm +zone=58 +south +datum=nzgd49 +units=m +no_def");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 29S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / UTM zone 58S\",GEOGCS[\"NZGD49\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "G\",\"32329\"]]");
-    p = add_epsg_def (filter, first, last, 32330, "epsg", 32330,
-        "WGS 72 / UTM zone 30S");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"27258\"]]");
+    p = add_epsg_def (filter, first, last, 27259, "epsg", 27259,
+        "NZGD49 / UTM zone 59S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=utm +zone=59 +south +datum=nzgd49 +units=m +no_def");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 30S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / UTM zone 59S\",GEOGCS[\"NZGD49\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "G\",\"32330\"]]");
-    p = add_epsg_def (filter, first, last, 32331, "epsg", 32331,
-        "WGS 72 / UTM zone 31S");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"27259\"]]");
+    p = add_epsg_def (filter, first, last, 27260, "epsg", 27260,
+        "NZGD49 / UTM zone 60S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=utm +zone=60 +south +datum=nzgd49 +units=m +no_def");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "s");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 31S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / UTM zone 60S\",GEOGCS[\"NZGD49\",DATUM");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4272");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",10000000");
+        ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "sting\",500000],PARAMETER[\"false_northing\",10000000],U");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
     add_srs_wkt (p, 12,
-        "G\",\"32331\"]]");
-    p = add_epsg_def (filter, first, last, 32332, "epsg", 32332,
-        "WGS 72 / UTM zone 32S");
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"27260\"]]");
+    p = add_epsg_def (filter, first, last, 27291, "epsg", 27291,
+        "NZGD49 / North Island Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.524");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "3848086 +y_0=365759.3658464114 +datum=nzgd49 +to_meter=0");
+    add_proj4text (p, 2,
+        ".9143984146160287 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 32S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / North Island Grid\",GEOGCS[\"NZGD49\",");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+        "latitude_of_origin\",-39],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "_easting\",500000],PARAMETER[\"false_northing\",10000000");
+        ",175.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "easting\",300000],PARAMETER[\"false_northing\",400000],U");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT");
     add_srs_wkt (p, 12,
-        "G\",\"32332\"]]");
-    p = add_epsg_def (filter, first, last, 32333, "epsg", 32333,
-        "WGS 72 / UTM zone 33S");
+        "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27291\"]]");
+    p = add_epsg_def (filter, first, last, 27292, "epsg", 27292,
+        "NZGD49 / South Island Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.207");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "3080143 +y_0=457199.2073080143 +datum=nzgd49 +to_meter=0");
+    add_proj4text (p, 2,
+        ".9143984146160287 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 33S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NZGD49 / South Island Grid\",GEOGCS[\"NZGD49\",");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "latitude_of_origin\",-44],PARAMETER[\"central_meridian\"");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        ",171.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "easting\",500000],PARAMETER[\"false_northing\",500000],U");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "NIT[\"British yard (Sears 1922)\",0.9143984146160287,AUT");
     add_srs_wkt (p, 12,
-        "G\",\"32333\"]]");
-    p = add_epsg_def (filter, first, last, 32334, "epsg", 32334,
-        "WGS 72 / UTM zone 34S");
+        "HORITY[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"27292\"]]");
+    p = add_epsg_def (filter, first, last, 27391, "epsg", 27391,
+        "NGO 1948 (Oslo) / NGO zone I");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=");
+    add_proj4text (p, 2,
+        "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 34S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone I\",GEOGCS[\"NGO 194");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR");
     add_srs_wkt (p, 8,
-        ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "ridian\",-4.666666666666667],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "G\",\"32334\"]]");
-    p = add_epsg_def (filter, first, last, 32335, "epsg", 32335,
-        "WGS 72 / UTM zone 35S");
+        ",AUTHORITY[\"EPSG\",\"27391\"]]");
+    p = add_epsg_def (filter, first, last, 27392, "epsg", 27392,
+        "NGO 1948 (Oslo) / NGO zone II");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=");
+    add_proj4text (p, 2,
+        "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 35S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone II\",GEOGCS[\"NGO 19");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 8,
-        ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "eridian\",-2.333333333333333],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 12,
-        "G\",\"32335\"]]");
-    p = add_epsg_def (filter, first, last, 32336, "epsg", 32336,
-        "WGS 72 / UTM zone 36S");
+        "],AUTHORITY[\"EPSG\",\"27392\"]]");
+    p = add_epsg_def (filter, first, last, 27393, "epsg", 27393,
+        "NGO 1948 (Oslo) / NGO zone III");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "7492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.");
+    add_proj4text (p, 2,
+        "889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 36S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone III\",GEOGCS[\"NGO 1");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 8,
-        ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "eridian\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "G\",\"32336\"]]");
-    p = add_epsg_def (filter, first, last, 32337, "epsg", 32337,
-        "WGS 72 / UTM zone 37S");
+        "\",\"27393\"]]");
+    p = add_epsg_def (filter, first, last, 27394, "epsg", 27394,
+        "NGO 1948 (Oslo) / NGO zone IV");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,");
+    add_proj4text (p, 2,
+        "7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 37S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone IV\",GEOGCS[\"NGO 19");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 8,
-        ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "eridian\",2.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EP");
     add_srs_wkt (p, 12,
-        "G\",\"32337\"]]");
-    p = add_epsg_def (filter, first, last, 32338, "epsg", 32338,
-        "WGS 72 / UTM zone 38S");
+        "SG\",\"27394\"]]");
+    p = add_epsg_def (filter, first, last, 27395, "epsg", 27395,
+        "NGO 1948 (Oslo) / NGO zone V");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+    add_proj4text (p, 2,
+        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
+    add_proj4text (p, 3,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 38S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone V\",GEOGCS[\"NGO 194");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "PSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PAR");
     add_srs_wkt (p, 8,
-        ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "AMETER[\"latitude_of_origin\",58],PARAMETER[\"central_me");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "ridian\",6.166666666666667],PARAMETER[\"scale_factor\",1");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
     add_srs_wkt (p, 12,
-        "G\",\"32338\"]]");
-    p = add_epsg_def (filter, first, last, 32339, "epsg", 32339,
-        "WGS 72 / UTM zone 39S");
+        "AUTHORITY[\"EPSG\",\"27395\"]]");
+    p = add_epsg_def (filter, first, last, 27396, "epsg", 27396,
+        "NGO 1948 (Oslo) / NGO zone VI");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+    add_proj4text (p, 2,
+        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
+    add_proj4text (p, 3,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 39S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone VI\",GEOGCS[\"NGO 19");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 8,
-        ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "eridian\",10.16666666666667],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "G\",\"32339\"]]");
-    p = add_epsg_def (filter, first, last, 32340, "epsg", 32340,
-        "WGS 72 / UTM zone 40S");
+        ",AUTHORITY[\"EPSG\",\"27396\"]]");
+    p = add_epsg_def (filter, first, last, 27397, "epsg", 27397,
+        "NGO 1948 (Oslo) / NGO zone VII");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+    add_proj4text (p, 2,
+        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
+    add_proj4text (p, 3,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 40S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone VII\",GEOGCS[\"NGO 1");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PA");
     add_srs_wkt (p, 8,
-        ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "RAMETER[\"latitude_of_origin\",58],PARAMETER[\"central_m");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "eridian\",14.16666666666667],PARAMETER[\"scale_factor\",");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
     add_srs_wkt (p, 12,
-        "G\",\"32340\"]]");
-    p = add_epsg_def (filter, first, last, 32341, "epsg", 32341,
-        "WGS 72 / UTM zone 41S");
+        ",AUTHORITY[\"EPSG\",\"27397\"]]");
+    p = add_epsg_def (filter, first, last, 27398, "epsg", 27398,
+        "NGO 1948 (Oslo) / NGO zone VIII");
     add_proj4text (p, 0,
-        "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2");
+    add_proj4text (p, 2,
+        "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n");
+    add_proj4text (p, 3,
+        "o_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 41S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NGO 1948 (Oslo) / NGO zone VIII\",GEOGCS[\"NGO ");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel ");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "UTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"EPSG\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],");
     add_srs_wkt (p, 8,
-        ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"central");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "_meridian\",18.33333333333333],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
     add_srs_wkt (p, 12,
-        "G\",\"32341\"]]");
-    p = add_epsg_def (filter, first, last, 32342, "epsg", 32342,
-        "WGS 72 / UTM zone 42S");
+        "],AUTHORITY[\"EPSG\",\"27398\"]]");
+    p = add_epsg_def (filter, first, last, 27429, "epsg", 27429,
+        "Datum 73 / UTM zone 29N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=utm +zone=29 +ellps=intl +towgs84=-223.237,110.193");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        ",36.649,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 42S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Datum 73 / UTM zone 29N\",GEOGCS[\"Datum 73\",D");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "ATUM[\"Datum_73\",SPHEROID[\"International 1924\",637838");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-223.237,110");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ".193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"6274\"]],PRIME");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
     add_srs_wkt (p, 8,
-        ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],");
     add_srs_wkt (p, 12,
-        "G\",\"32342\"]]");
-    p = add_epsg_def (filter, first, last, 32343, "epsg", 32343,
-        "WGS 72 / UTM zone 43S");
+        "AUTHORITY[\"EPSG\",\"27429\"]]");
+    p = add_epsg_def (filter, first, last, 27492, "epsg", 27492,
+        "Datum 73 / Modified Portuguese Grid (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=");
+    add_proj4text (p, 2,
+        "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 43S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Datum 73 / Modified Portuguese Grid (deprecated");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        ")\",GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"In");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "\"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "\"EPSG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "_of_origin\",39.66666666666666],PARAMETER[\"central_meri");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "dian\",-8.131906111111112],PARAMETER[\"scale_factor\",1]");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ",PARAMETER[\"false_easting\",180.598],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "northing\",-86.99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "G\",\"32343\"]]");
-    p = add_epsg_def (filter, first, last, 32344, "epsg", 32344,
-        "WGS 72 / UTM zone 44S");
+        "9001\"]],AUTHORITY[\"EPSG\",\"27492\"]]");
+    p = add_epsg_def (filter, first, last, 27493, "epsg", 27493,
+        "Datum 73 / Modified Portuguese Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=");
+    add_proj4text (p, 2,
+        "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +");
+    add_proj4text (p, 3,
+        "no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 44S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"Datum 73 / Modified Portuguese Grid\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"International 1");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"62");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "74\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3");
     add_srs_wkt (p, 8,
-        ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "9.66666666666666],PARAMETER[\"central_meridian\",-8.1319");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "06111111112],PARAMETER[\"scale_factor\",1],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "alse_easting\",180.598],PARAMETER[\"false_northing\",-86");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        ".99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
     add_srs_wkt (p, 12,
-        "G\",\"32344\"]]");
-    p = add_epsg_def (filter, first, last, 32345, "epsg", 32345,
-        "WGS 72 / UTM zone 45S");
+        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2749");
+    add_srs_wkt (p, 13,
+        "3\"]]");
+    p = add_epsg_def (filter, first, last, 27500, "epsg", 27500,
+        "ATF (Paris) / Nord de Guerre");
     add_proj4text (p, 0,
-        "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=5.399999999999999 +k_0=0.99950908 +x_0=500000");
+    add_proj4text (p, 2,
+        " +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=2.33720");
+    add_proj4text (p, 3,
+        "8333333333 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 45S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"ATF (Paris) / Nord de Guerre\",GEOGCS[\"ATF (Pa");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "ris)\",DATUM[\"Ancienne_Triangulation_Francaise_Paris\",");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPS");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "G\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901\"]],PRIMEM[\"Pa");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "ris RGS\",2.337208333333333,AUTHORITY[\"EPSG\",\"8914\"]");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "9105\"]],AUTHORITY[\"EPSG\",\"4901\"]],PROJECTION[\"Lamb");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origi");
     add_srs_wkt (p, 8,
-        ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "n\",55],PARAMETER[\"central_meridian\",5.999999999999998");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "],PARAMETER[\"scale_factor\",0.99950908],PARAMETER[\"fal");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        "se_easting\",500000],PARAMETER[\"false_northing\",300000");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "G\",\"32345\"]]");
-    p = add_epsg_def (filter, first, last, 32346, "epsg", 32346,
-        "WGS 72 / UTM zone 46S");
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"27500\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 27561, "epsg", 27561,
+        "NTF (Paris) / Lambert Nord France");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a");
+    add_proj4text (p, 2,
+        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
+    add_proj4text (p, 3,
+        "paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 46S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert Nord France\",GEOGCS[\"NT");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "2936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHO");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_");
     add_srs_wkt (p, 8,
-        ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAME");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ".999877341],PARAMETER[\"false_easting\",600000],PARAMETE");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "R[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[");
     add_srs_wkt (p, 12,
-        "G\",\"32346\"]]");
-    p = add_epsg_def (filter, first, last, 32347, "epsg", 32347,
-        "WGS 72 / UTM zone 47S");
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"27561\"]]");
+    p = add_epsg_def (filter, first, last, 27562, "epsg", 27562,
+        "NTF (Paris) / Lambert Centre France");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg");
+    add_proj4text (p, 2,
+        "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 47S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert Centre France\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
     add_srs_wkt (p, 8,
-        ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR");
     add_srs_wkt (p, 9,
-        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+        "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+        ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET");
     add_srs_wkt (p, 11,
-        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+        "ER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY");
     add_srs_wkt (p, 12,
-        "G\",\"32347\"]]");
-    p = add_epsg_def (filter, first, last, 32348, "epsg", 32348,
-        "WGS 72 / UTM zone 48S");
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"27562\"]]");
+    p = add_epsg_def (filter, first, last, 27563, "epsg", 27563,
+        "NTF (Paris) / Lambert Sud France");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a");
+    add_proj4text (p, 2,
+        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
+    add_proj4text (p, 3,
+        "paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 48S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert Sud France\",GEOGCS[\"NTF");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C");
     add_srs_wkt (p, 8,
-        ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "999877499],PARAMETER[\"false_easting\",600000],PARAMETER");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"");
     add_srs_wkt (p, 12,
-        "PSG\",\"32348\"]]");
-    p = add_epsg_def (filter, first, last, 32349, "epsg", 32349,
-        "WGS 72 / UTM zone 49S");
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 13,
+        "HORITY[\"EPSG\",\"27563\"]]");
+    p = add_epsg_def (filter, first, last, 27564, "epsg", 27564,
+        "NTF (Paris) / Lambert Corse");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36");
+    add_proj4text (p, 2,
+        "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 ");
+    add_proj4text (p, 3,
+        "+pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 49S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert Corse\",GEOGCS[\"NTF (Par");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "is)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",S");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "PHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021293626");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "5,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.3");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "3722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic");
     add_srs_wkt (p, 8,
-        ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETE");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "R[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.9");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "9994471],PARAMETER[\"false_easting\",234.358],PARAMETER[");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "\"false_northing\",185861.369],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 12,
-        "PSG\",\"32349\"]]");
-    p = add_epsg_def (filter, first, last, 32350, "epsg", 32350,
-        "WGS 72 / UTM zone 50S");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"27564\"]]");
+    p = add_epsg_def (filter, first, last, 27571, "epsg", 27571,
+        "NTF (Paris) / Lambert zone I");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +");
+    add_proj4text (p, 2,
+        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
+    add_proj4text (p, 3,
+        "=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 50S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NTF (Pa");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "65,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Coni");
     add_srs_wkt (p, 8,
-        ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "c_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER[");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "\"central_meridian\",0],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "877341],PARAMETER[\"false_easting\",600000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "false_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"32350\"]]");
-    p = add_epsg_def (filter, first, last, 32351, "epsg", 32351,
-        "WGS 72 / UTM zone 51S");
+        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 13,
+        "ORITY[\"EPSG\",\"27571\"]]");
+    p = add_epsg_def (filter, first, last, 27572, "epsg", 27572,
+        "NTF (Paris) / Lambert zone II");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow");
+    add_proj4text (p, 2,
+        "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 51S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (P");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\"");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con");
     add_srs_wkt (p, 8,
-        ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"32351\"]]");
-    p = add_epsg_def (filter, first, last, 32352, "epsg", 32352,
-        "WGS 72 / UTM zone 52S");
+        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 13,
+        "ORITY[\"EPSG\",\"27572\"]]");
+    p = add_epsg_def (filter, first, last, 27573, "epsg", 27573,
+        "NTF (Paris) / Lambert zone III");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +");
+    add_proj4text (p, 2,
+        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
+    add_proj4text (p, 3,
+        "=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 52S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF (");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\"");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con");
     add_srs_wkt (p, 8,
-        ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "9877499],PARAMETER[\"false_easting\",600000],PARAMETER[\"");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "PSG\",\"32352\"]]");
-    p = add_epsg_def (filter, first, last, 32353, "epsg", 32353,
-        "WGS 72 / UTM zone 53S");
+        "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH");
+    add_srs_wkt (p, 13,
+        "ORITY[\"EPSG\",\"27573\"]]");
+    p = add_epsg_def (filter, first, last, 27574, "epsg", 27574,
+        "NTF (Paris) / Lambert zone IV");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3");
+    add_proj4text (p, 2,
+        "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0");
+    add_proj4text (p, 3,
+        " +pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 53S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\"NTF (P");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\"");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORIT");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con");
     add_srs_wkt (p, 8,
-        ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 12,
-        "PSG\",\"32353\"]]");
-    p = add_epsg_def (filter, first, last, 32354, "epsg", 32354,
-        "WGS 72 / UTM zone 54S");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 13,
+        "TH],AUTHORITY[\"EPSG\",\"27574\"]]");
+    p = add_epsg_def (filter, first, last, 27581, "epsg", 27581,
+        "NTF (Paris) / France I (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +");
+    add_proj4text (p, 2,
+        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
+    add_proj4text (p, 3,
+        "=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 54S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / France I (deprecated)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
     add_srs_wkt (p, 8,
-        ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PAR");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ",0.999877341],PARAMETER[\"false_easting\",600000],PARAME");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "TER[\"false_northing\",1200000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 12,
-        "PSG\",\"32354\"]]");
-    p = add_epsg_def (filter, first, last, 32355, "epsg", 32355,
-        "WGS 72 / UTM zone 55S");
+        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
+    add_srs_wkt (p, 13,
+        "],AUTHORITY[\"EPSG\",\"27581\"]]");
+    p = add_epsg_def (filter, first, last, 27582, "epsg", 27582,
+        "NTF (Paris) / France II (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow");
+    add_proj4text (p, 2,
+        "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 55S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
     add_srs_wkt (p, 8,
-        ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PAR");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "ER[\"false_northing\",2200000],UNIT[\"metre\",1,AUTHORIT");
     add_srs_wkt (p, 12,
-        "PSG\",\"32355\"]]");
-    p = add_epsg_def (filter, first, last, 32356, "epsg", 32356,
-        "WGS 72 / UTM zone 56S");
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"27582\"]]");
+    p = add_epsg_def (filter, first, last, 27583, "epsg", 27583,
+        "NTF (Paris) / France III (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +");
+    add_proj4text (p, 2,
+        "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm");
+    add_proj4text (p, 3,
+        "=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 56S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / France III (deprecated)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "60212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 8,
-        ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "AMETER[\"false_northing\",3200000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "PSG\",\"32356\"]]");
-    p = add_epsg_def (filter, first, last, 32357, "epsg", 32357,
-        "WGS 72 / UTM zone 57S");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"27583\"]]");
+    p = add_epsg_def (filter, first, last, 27584, "epsg", 27584,
+        "NTF (Paris) / France IV (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3");
+    add_proj4text (p, 2,
+        "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0");
+    add_proj4text (p, 3,
+        " +pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 57S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / France IV (deprecated)\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AU");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "THORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conform");
     add_srs_wkt (p, 8,
-        ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "al_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "or\",0.99994471],PARAMETER[\"false_easting\",234.358],PA");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "RAMETER[\"false_northing\",4185861.369],UNIT[\"metre\",1");
     add_srs_wkt (p, 12,
-        "PSG\",\"32357\"]]");
-    p = add_epsg_def (filter, first, last, 32358, "epsg", 32358,
-        "WGS 72 / UTM zone 58S");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 13,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"27584\"]]");
+    p = add_epsg_def (filter, first, last, 27591, "epsg", 27591,
+        "NTF (Paris) / Nord France (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a");
+    add_proj4text (p, 2,
+        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
+    add_proj4text (p, 3,
+        "paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 58S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Nord France (deprecated)\",GEOGCS");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francais");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "e_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        ",AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conf");
     add_srs_wkt (p, 8,
-        ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "ormal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fact");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "or\",0.999877341],PARAMETER[\"false_easting\",600000],PA");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "PSG\",\"32358\"]]");
-    p = add_epsg_def (filter, first, last, 32359, "epsg", 32359,
-        "WGS 72 / UTM zone 59S");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"27591\"]]");
+    p = add_epsg_def (filter, first, last, 27592, "epsg", 27592,
+        "NTF (Paris) / Centre France (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg");
+    add_proj4text (p, 2,
+        "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 59S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Centre France (deprecated)\",GEOG");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "CS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Franca");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "ise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        ".4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-16");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "8,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "]],AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Co");
     add_srs_wkt (p, 8,
-        ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "],PARAMETER[\"central_meridian\",0],PARAMETER[\"scale_fa");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "ctor\",0.99987742],PARAMETER[\"false_easting\",600000],P");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "ARAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 12,
-        "PSG\",\"32359\"]]");
-    p = add_epsg_def (filter, first, last, 32360, "epsg", 32360,
-        "WGS 72 / UTM zone 60S");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+    add_srs_wkt (p, 13,
+        "ORTH],AUTHORITY[\"EPSG\",\"27592\"]]");
+    p = add_epsg_def (filter, first, last, 27593, "epsg", 27593,
+        "NTF (Paris) / Sud France (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+        "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000");
     add_proj4text (p, 1,
-        "0,0,0.554,0.2263 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a");
+    add_proj4text (p, 2,
+        "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=");
+    add_proj4text (p, 3,
+        "paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72 / UTM zone 60S\",GEOGCS[\"WGS 72\",DATUM");
+        "PROJCS[\"NTF (Paris) / Sud France (deprecated)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+        "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise");
     add_srs_wkt (p, 2,
-        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+        "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46");
     add_srs_wkt (p, 3,
-        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+        "60212936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-");
     add_srs_wkt (p, 4,
-        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+        "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P");
     add_srs_wkt (p, 5,
-        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+        "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g");
     add_srs_wkt (p, 6,
-        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+        "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],");
     add_srs_wkt (p, 7,
-        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+        "AUTHORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Confo");
     add_srs_wkt (p, 8,
-        ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+        "rmal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",49],P");
     add_srs_wkt (p, 9,
-        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+        "ARAMETER[\"central_meridian\",0],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 10,
-        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+        "r\",0.999877499],PARAMETER[\"false_easting\",600000],PAR");
     add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+        "AMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 12,
-        "PSG\",\"32360\"]]");
-    p = add_epsg_def (filter, first, last, 32401, "epsg", 32401,
-        "WGS 72BE / UTM zone 1N");
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 13,
+        "TH],AUTHORITY[\"EPSG\",\"27593\"]]");
+    p = add_epsg_def (filter, first, last, 27594, "epsg", 27594,
+        "NTF (Paris) / Corse (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36");
+    add_proj4text (p, 2,
+        "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 ");
+    add_proj4text (p, 3,
+        "+pm=paris +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 1N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"NTF (Paris) / Corse (deprecated)\",GEOGCS[\"NTF");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "936265,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHOR");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_");
+        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARA");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "METER[\"central_meridian\",0],PARAMETER[\"scale_factor\"");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        ",0.99994471],PARAMETER[\"false_easting\",234.358],PARAME");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "TER[\"false_northing\",185861.369],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32401\"]]");
-    p = add_epsg_def (filter, first, last, 32402, "epsg", 32402,
-        "WGS 72BE / UTM zone 2N");
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"27594\"]]");
+    p = add_epsg_def (filter, first, last, 27700, "epsg", 27700,
+        "OSGB 1936 / British National Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 2N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OS");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",637");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "7563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUT");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "HORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "77\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_");
+        "atitude_of_origin\",49],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "2],PARAMETER[\"scale_factor\",0.9996012717],PARAMETER[\"");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "false_easting\",400000],PARAMETER[\"false_northing\",-10");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32402\"]]");
-    p = add_epsg_def (filter, first, last, 32403, "epsg", 32403,
-        "WGS 72BE / UTM zone 3N");
+        "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"27700\"]]");
+    p = add_epsg_def (filter, first, last, 28191, "epsg", 28191,
+        "Palestine 1923 / Palestine Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "5556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6");
+    add_proj4text (p, 2,
+        "356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.4");
+    add_proj4text (p, 3,
+        "2,-11.821,1 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 3N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Palestine 1923 / Palestine Grid\",GEOGCS[\"Pale");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke ");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "1880 (Benoit)\",6378300.789,293.4663155389802,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8.");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sold");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_");
+        "ner\"],PARAMETER[\"latitude_of_origin\",31.7340969444444");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "5],PARAMETER[\"central_meridian\",35.21208055555556],PAR");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "AMETER[\"false_easting\",170251.555],PARAMETER[\"false_n");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "orthing\",126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32403\"]]");
-    p = add_epsg_def (filter, first, last, 32404, "epsg", 32404,
-        "WGS 72BE / UTM zone 4N");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
+    add_srs_wkt (p, 13,
+        "TH],AUTHORITY[\"EPSG\",\"28191\"]]");
+    p = add_epsg_def (filter, first, last, 28192, "epsg", 28192,
+        "Palestine 1923 / Palestine Belt");
     add_proj4text (p, 0,
-        "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.212080555");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "55556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.7");
+    add_proj4text (p, 2,
+        "89 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.0");
+    add_proj4text (p, 3,
+        "01,-4.42,-11.821,1 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 4N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Palestine 1923 / Palestine Belt\",GEOGCS[\"Pale");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke ");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "1880 (Benoit)\",6378300.789,293.4663155389802,AUTHORITY[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8.");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIME");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Transverse_M");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_");
+        "ercator\"],PARAMETER[\"latitude_of_origin\",31.734096944");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "44445],PARAMETER[\"central_meridian\",35.21208055555556]");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "\",170251.555],PARAMETER[\"false_northing\",1126867.909]");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32404\"]]");
-    p = add_epsg_def (filter, first, last, 32405, "epsg", 32405,
-        "WGS 72BE / UTM zone 5N");
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E");
+    add_srs_wkt (p, 13,
+        "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"28192\"]]");
+    p = add_epsg_def (filter, first, last, 28193, "epsg", 28193,
+        "Palestine 1923 / Israeli CS Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "5556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=");
+    add_proj4text (p, 2,
+        "6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.");
+    add_proj4text (p, 3,
+        "42,-11.821,1 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 5N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Palestine 1923 / Israeli CS Grid\",GEOGCS[\"Pal");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "estine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1880 (Benoit)\",6378300.789,293.4663155389802,AUTHORITY");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "[\"EPSG\",\"7010\"]],TOWGS84[-275.722,94.7824,340.894,-8");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        ".001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRIM");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "],AUTHORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Sol");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_");
+        "dner\"],PARAMETER[\"latitude_of_origin\",31.734096944444");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "45],PARAMETER[\"central_meridian\",35.21208055555556],PA");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "RAMETER[\"false_easting\",170251.555],PARAMETER[\"false_");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "northing\",1126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPS");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32405\"]]");
-    p = add_epsg_def (filter, first, last, 32406, "epsg", 32406,
-        "WGS 72BE / UTM zone 6N");
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+    add_srs_wkt (p, 13,
+        "NORTH],AUTHORITY[\"EPSG\",\"28193\"]]");
+    p = add_epsg_def (filter, first, last, 28232, "epsg", 28232,
+        "Pointe Noire / UTM zone 32S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "84=-148,51,-291,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 6N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pointe Noire / UTM zone 32S\",GEOGCS[\"Pointe N");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "oire\",DATUM[\"Congo_1960_Pointe_Noire\",SPHEROID[\"Clar");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ke 1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORIT");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "Y[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4282\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32406\"]]");
-    p = add_epsg_def (filter, first, last, 32407, "epsg", 32407,
-        "WGS 72BE / UTM zone 7N");
+        "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2823");
+    add_srs_wkt (p, 13,
+        "2\"]]");
+    p = add_epsg_def (filter, first, last, 28348, "epsg", 28348,
+        "GDA94 / MGA zone 48");
     add_proj4text (p, 0,
-        "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 7N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"GDA94 / MGA zone 48\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_");
+        "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32407\"]]");
-    p = add_epsg_def (filter, first, last, 32408, "epsg", 32408,
-        "WGS 72BE / UTM zone 8N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28348\"]]");
+    p = add_epsg_def (filter, first, last, 28349, "epsg", 28349,
+        "GDA94 / MGA zone 49");
     add_proj4text (p, 0,
-        "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 8N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"GDA94 / MGA zone 49\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_");
+        "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32408\"]]");
-    p = add_epsg_def (filter, first, last, 32409, "epsg", 32409,
-        "WGS 72BE / UTM zone 9N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28349\"]]");
+    p = add_epsg_def (filter, first, last, 28350, "epsg", 28350,
+        "GDA94 / MGA zone 50");
     add_proj4text (p, 0,
-        "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+        "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "4,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 9N\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"GDA94 / MGA zone 50\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_");
+        "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32409\"]]");
-    p = add_epsg_def (filter, first, last, 32410, "epsg", 32410,
-        "WGS 72BE / UTM zone 10N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28350\"]]");
+    p = add_epsg_def (filter, first, last, 28351, "epsg", 28351,
+        "GDA94 / MGA zone 51");
     add_proj4text (p, 0,
-        "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 10N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 51\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_");
+        "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32410\"]]");
-    p = add_epsg_def (filter, first, last, 32411, "epsg", 32411,
-        "WGS 72BE / UTM zone 11N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28351\"]]");
+    p = add_epsg_def (filter, first, last, 28352, "epsg", 28352,
+        "GDA94 / MGA zone 52");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 11N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 52\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_");
+        "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32411\"]]");
-    p = add_epsg_def (filter, first, last, 32412, "epsg", 32412,
-        "WGS 72BE / UTM zone 12N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28352\"]]");
+    p = add_epsg_def (filter, first, last, 28353, "epsg", 28353,
+        "GDA94 / MGA zone 53");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 12N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 53\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_");
+        "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32412\"]]");
-    p = add_epsg_def (filter, first, last, 32413, "epsg", 32413,
-        "WGS 72BE / UTM zone 13N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28353\"]]");
+    p = add_epsg_def (filter, first, last, 28354, "epsg", 28354,
+        "GDA94 / MGA zone 54");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 13N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 54\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_");
+        "R[\"central_meridian\",141],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32413\"]]");
-    p = add_epsg_def (filter, first, last, 32414, "epsg", 32414,
-        "WGS 72BE / UTM zone 14N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28354\"]]");
+    p = add_epsg_def (filter, first, last, 28355, "epsg", 28355,
+        "GDA94 / MGA zone 55");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 14N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 55\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f");
+        "R[\"central_meridian\",147],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32414\"]]");
-    p = add_epsg_def (filter, first, last, 32415, "epsg", 32415,
-        "WGS 72BE / UTM zone 15N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28355\"]]");
+    p = add_epsg_def (filter, first, last, 28356, "epsg", 28356,
+        "GDA94 / MGA zone 56");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 15N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f");
+        "R[\"central_meridian\",153],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32415\"]]");
-    p = add_epsg_def (filter, first, last, 32416, "epsg", 32416,
-        "WGS 72BE / UTM zone 16N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]");
+    p = add_epsg_def (filter, first, last, 28357, "epsg", 28357,
+        "GDA94 / MGA zone 57");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 16N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 57\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f");
+        "R[\"central_meridian\",159],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32416\"]]");
-    p = add_epsg_def (filter, first, last, 32417, "epsg", 32417,
-        "WGS 72BE / UTM zone 17N");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28357\"]]");
+    p = add_epsg_def (filter, first, last, 28358, "epsg", 28358,
+        "GDA94 / MGA zone 58");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 17N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"GDA94 / MGA zone 58\",GEOGCS[\"GDA94\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f");
+        "R[\"central_meridian\",165],PARAMETER[\"scale_factor\",0");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32417\"]]");
+        ",NORTH],AUTHORITY[\"EPSG\",\"28358\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_39.c b/src/srsinit/epsg_inlined_39.c
index c5f2582..ee0c11c 100644
--- a/src/srsinit/epsg_inlined_39.c
+++ b/src/srsinit/epsg_inlined_39.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,3070 +52,3210 @@ initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 32418, "epsg", 32418,
-        "WGS 72BE / UTM zone 18N");
+    p = add_epsg_def (filter, first, last, 28402, "epsg", 28402,
+        "Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 18N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f");
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "sting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32418\"]]");
-    p = add_epsg_def (filter, first, last, 32419, "epsg", 32419,
-        "WGS 72BE / UTM zone 19N");
+        "\",\"28402\"]]");
+    p = add_epsg_def (filter, first, last, 28403, "epsg", 28403,
+        "Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 19N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.1");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "2],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f");
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "asting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32419\"]]");
-    p = add_epsg_def (filter, first, last, 32420, "epsg", 32420,
-        "WGS 72BE / UTM zone 20N");
+        "\",\"28403\"]]");
+    p = add_epsg_def (filter, first, last, 28404, "epsg", 28404,
+        "Pulkovo 1942 / Gauss-Kruger zone 4");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 20N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 4\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",21],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",450");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28404\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32420\"]]");
-    p = add_epsg_def (filter, first, last, 32421, "epsg", 32421,
-        "WGS 72BE / UTM zone 21N");
+        "]]");
+    p = add_epsg_def (filter, first, last, 28405, "epsg", 28405,
+        "Pulkovo 1942 / Gauss-Kruger zone 5");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 21N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 5\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",550");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28405\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32421\"]]");
-    p = add_epsg_def (filter, first, last, 32422, "epsg", 32422,
-        "WGS 72BE / UTM zone 22N");
+        "]]");
+    p = add_epsg_def (filter, first, last, 28406, "epsg", 28406,
+        "Pulkovo 1942 / Gauss-Kruger zone 6");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 22N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 6\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",33],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",650");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28406\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32422\"]]");
-    p = add_epsg_def (filter, first, last, 32423, "epsg", 32423,
-        "WGS 72BE / UTM zone 23N");
+        "]]");
+    p = add_epsg_def (filter, first, last, 28407, "epsg", 28407,
+        "Pulkovo 1942 / Gauss-Kruger zone 7");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 23N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 7\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",39],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",750");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28407\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32423\"]]");
-    p = add_epsg_def (filter, first, last, 32424, "epsg", 32424,
-        "WGS 72BE / UTM zone 24N");
+        "]]");
+    p = add_epsg_def (filter, first, last, 28408, "epsg", 28408,
+        "Pulkovo 1942 / Gauss-Kruger zone 8");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 24N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 8\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",45],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",850");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28408\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32424\"]]");
-    p = add_epsg_def (filter, first, last, 32425, "epsg", 32425,
-        "WGS 72BE / UTM zone 25N");
+        "]]");
+    p = add_epsg_def (filter, first, last, 28409, "epsg", 28409,
+        "Pulkovo 1942 / Gauss-Kruger zone 9");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 25N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 9\",GEOGCS[\"P");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "WGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]],");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f");
+        "_of_origin\",0],PARAMETER[\"central_meridian\",51],PARAM");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",950");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "UTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28409\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32425\"]]");
-    p = add_epsg_def (filter, first, last, 32426, "epsg", 32426,
-        "WGS 72BE / UTM zone 26N");
+        "]]");
+    p = add_epsg_def (filter, first, last, 28410, "epsg", 28410,
+        "Pulkovo 1942 / Gauss-Kruger zone 10");
     add_proj4text (p, 0,
-        "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 26N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 10\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",10");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32426\"]]");
-    p = add_epsg_def (filter, first, last, 32427, "epsg", 32427,
-        "WGS 72BE / UTM zone 27N");
+        "0\"]]");
+    p = add_epsg_def (filter, first, last, 28411, "epsg", 28411,
+        "Pulkovo 1942 / Gauss-Kruger zone 11");
     add_proj4text (p, 0,
-        "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 27N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 11\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",11");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32427\"]]");
-    p = add_epsg_def (filter, first, last, 32428, "epsg", 32428,
-        "WGS 72BE / UTM zone 28N");
+        "1\"]]");
+    p = add_epsg_def (filter, first, last, 28412, "epsg", 28412,
+        "Pulkovo 1942 / Gauss-Kruger zone 12");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 28N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 12\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",12");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32428\"]]");
-    p = add_epsg_def (filter, first, last, 32429, "epsg", 32429,
-        "WGS 72BE / UTM zone 29N");
+        "2\"]]");
+    p = add_epsg_def (filter, first, last, 28413, "epsg", 28413,
+        "Pulkovo 1942 / Gauss-Kruger zone 13");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 29N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 13\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",13");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32429\"]]");
-    p = add_epsg_def (filter, first, last, 32430, "epsg", 32430,
-        "WGS 72BE / UTM zone 30N");
+        "3\"]]");
+    p = add_epsg_def (filter, first, last, 28414, "epsg", 28414,
+        "Pulkovo 1942 / Gauss-Kruger zone 14");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 30N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 14\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32430\"]]");
-    p = add_epsg_def (filter, first, last, 32431, "epsg", 32431,
-        "WGS 72BE / UTM zone 31N");
+        "4\"]]");
+    p = add_epsg_def (filter, first, last, 28415, "epsg", 28415,
+        "Pulkovo 1942 / Gauss-Kruger zone 15");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 31N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 15\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32431\"]]");
-    p = add_epsg_def (filter, first, last, 32432, "epsg", 32432,
-        "WGS 72BE / UTM zone 32N");
+        "5\"]]");
+    p = add_epsg_def (filter, first, last, 28416, "epsg", 28416,
+        "Pulkovo 1942 / Gauss-Kruger zone 16");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 32N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 16\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        ",NORTH],AUTHORITY[\"EPSG\",\"32432\"]]");
-    p = add_epsg_def (filter, first, last, 32433, "epsg", 32433,
-        "WGS 72BE / UTM zone 33N");
+        "6\"]]");
+    p = add_epsg_def (filter, first, last, 28417, "epsg", 28417,
+        "Pulkovo 1942 / Gauss-Kruger zone 17");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 33N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 17\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2841");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32433\"]]");
-    p = add_epsg_def (filter, first, last, 32434, "epsg", 32434,
-        "WGS 72BE / UTM zone 34N");
+        "7\"]]");
+    p = add_epsg_def (filter, first, last, 28418, "epsg", 28418,
+        "Pulkovo 1942 / Gauss-Kruger zone 18");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 34N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 18\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32434\"]]");
-    p = add_epsg_def (filter, first, last, 32435, "epsg", 32435,
-        "WGS 72BE / UTM zone 35N");
+        "18\"]]");
+    p = add_epsg_def (filter, first, last, 28419, "epsg", 28419,
+        "Pulkovo 1942 / Gauss-Kruger zone 19");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 35N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 19\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",1");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32435\"]]");
-    p = add_epsg_def (filter, first, last, 32436, "epsg", 32436,
-        "WGS 72BE / UTM zone 36N");
+        "19\"]]");
+    p = add_epsg_def (filter, first, last, 28420, "epsg", 28420,
+        "Pulkovo 1942 / Gauss-Kruger zone 20");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 36N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 20\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32436\"]]");
-    p = add_epsg_def (filter, first, last, 32437, "epsg", 32437,
-        "WGS 72BE / UTM zone 37N");
+        "20\"]]");
+    p = add_epsg_def (filter, first, last, 28421, "epsg", 28421,
+        "Pulkovo 1942 / Gauss-Kruger zone 21");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 37N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 21\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32437\"]]");
-    p = add_epsg_def (filter, first, last, 32438, "epsg", 32438,
-        "WGS 72BE / UTM zone 38N");
+        "21\"]]");
+    p = add_epsg_def (filter, first, last, 28422, "epsg", 28422,
+        "Pulkovo 1942 / Gauss-Kruger zone 22");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 38N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 22\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32438\"]]");
-    p = add_epsg_def (filter, first, last, 32439, "epsg", 32439,
-        "WGS 72BE / UTM zone 39N");
+        "22\"]]");
+    p = add_epsg_def (filter, first, last, 28423, "epsg", 28423,
+        "Pulkovo 1942 / Gauss-Kruger zone 23");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 39N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 23\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32439\"]]");
-    p = add_epsg_def (filter, first, last, 32440, "epsg", 32440,
-        "WGS 72BE / UTM zone 40N");
+        "23\"]]");
+    p = add_epsg_def (filter, first, last, 28424, "epsg", 28424,
+        "Pulkovo 1942 / Gauss-Kruger zone 24");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 40N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 24\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32440\"]]");
-    p = add_epsg_def (filter, first, last, 32441, "epsg", 32441,
-        "WGS 72BE / UTM zone 41N");
+        "24\"]]");
+    p = add_epsg_def (filter, first, last, 28425, "epsg", 28425,
+        "Pulkovo 1942 / Gauss-Kruger zone 25");
     add_proj4text (p, 0,
-        "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 41N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 25\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32441\"]]");
-    p = add_epsg_def (filter, first, last, 32442, "epsg", 32442,
-        "WGS 72BE / UTM zone 42N");
+        "25\"]]");
+    p = add_epsg_def (filter, first, last, 28426, "epsg", 28426,
+        "Pulkovo 1942 / Gauss-Kruger zone 26");
     add_proj4text (p, 0,
-        "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 42N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 26\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32442\"]]");
-    p = add_epsg_def (filter, first, last, 32443, "epsg", 32443,
-        "WGS 72BE / UTM zone 43N");
+        "26\"]]");
+    p = add_epsg_def (filter, first, last, 28427, "epsg", 28427,
+        "Pulkovo 1942 / Gauss-Kruger zone 27");
     add_proj4text (p, 0,
-        "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 43N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 27\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32443\"]]");
-    p = add_epsg_def (filter, first, last, 32444, "epsg", 32444,
-        "WGS 72BE / UTM zone 44N");
+        "27\"]]");
+    p = add_epsg_def (filter, first, last, 28428, "epsg", 28428,
+        "Pulkovo 1942 / Gauss-Kruger zone 28");
     add_proj4text (p, 0,
-        "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 44N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 28\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32444\"]]");
-    p = add_epsg_def (filter, first, last, 32445, "epsg", 32445,
-        "WGS 72BE / UTM zone 45N");
+        "28\"]]");
+    p = add_epsg_def (filter, first, last, 28429, "epsg", 28429,
+        "Pulkovo 1942 / Gauss-Kruger zone 29");
     add_proj4text (p, 0,
-        "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 45N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 29\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32445\"]]");
-    p = add_epsg_def (filter, first, last, 32446, "epsg", 32446,
-        "WGS 72BE / UTM zone 46N");
+        "29\"]]");
+    p = add_epsg_def (filter, first, last, 28430, "epsg", 28430,
+        "Pulkovo 1942 / Gauss-Kruger zone 30");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82");
+    add_proj4text (p, 2,
+        ",-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 46N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 30\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"284");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32446\"]]");
-    p = add_epsg_def (filter, first, last, 32447, "epsg", 32447,
-        "WGS 72BE / UTM zone 47N");
+        "30\"]]");
+    p = add_epsg_def (filter, first, last, 28431, "epsg", 28431,
+        "Pulkovo 1942 / Gauss-Kruger zone 31");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8");
+    add_proj4text (p, 2,
+        "2,-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 47N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 31\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32447\"]]");
-    p = add_epsg_def (filter, first, last, 32448, "epsg", 32448,
-        "WGS 72BE / UTM zone 48N");
+        "431\"]]");
+    p = add_epsg_def (filter, first, last, 28432, "epsg", 28432,
+        "Pulkovo 1942 / Gauss-Kruger zone 32");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.8");
+    add_proj4text (p, 2,
+        "2,-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 48N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 32\",GEOGCS[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "OWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f");
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"28");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32448\"]]");
-    p = add_epsg_def (filter, first, last, 32449, "epsg", 32449,
-        "WGS 72BE / UTM zone 49N");
+        "432\"]]");
+    p = add_epsg_def (filter, first, last, 28462, "epsg", 28462,
+        "Pulkovo 1942 / Gauss-Kruger 2N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "llps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.");
+    add_proj4text (p, 2,
+        "12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 49N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 2N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32449\"]]");
-    p = add_epsg_def (filter, first, last, 32450, "epsg", 32450,
-        "WGS 72BE / UTM zone 50N");
+        "28462\"]]");
+    p = add_epsg_def (filter, first, last, 28463, "epsg", 28463,
+        "Pulkovo 1942 / Gauss-Kruger 3N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 50N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 3N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32450\"]]");
-    p = add_epsg_def (filter, first, last, 32451, "epsg", 32451,
-        "WGS 72BE / UTM zone 51N");
+        "28463\"]]");
+    p = add_epsg_def (filter, first, last, 28464, "epsg", 28464,
+        "Pulkovo 1942 / Gauss-Kruger 4N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 51N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 4N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32451\"]]");
-    p = add_epsg_def (filter, first, last, 32452, "epsg", 32452,
-        "WGS 72BE / UTM zone 52N");
+        "28464\"]]");
+    p = add_epsg_def (filter, first, last, 28465, "epsg", 28465,
+        "Pulkovo 1942 / Gauss-Kruger 5N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 52N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 5N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32452\"]]");
-    p = add_epsg_def (filter, first, last, 32453, "epsg", 32453,
-        "WGS 72BE / UTM zone 53N");
+        "28465\"]]");
+    p = add_epsg_def (filter, first, last, 28466, "epsg", 28466,
+        "Pulkovo 1942 / Gauss-Kruger 6N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 53N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 6N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32453\"]]");
-    p = add_epsg_def (filter, first, last, 32454, "epsg", 32454,
-        "WGS 72BE / UTM zone 54N");
+        "28466\"]]");
+    p = add_epsg_def (filter, first, last, 28467, "epsg", 28467,
+        "Pulkovo 1942 / Gauss-Kruger 7N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 54N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 7N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32454\"]]");
-    p = add_epsg_def (filter, first, last, 32455, "epsg", 32455,
-        "WGS 72BE / UTM zone 55N");
+        "28467\"]]");
+    p = add_epsg_def (filter, first, last, 28468, "epsg", 28468,
+        "Pulkovo 1942 / Gauss-Kruger 8N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 55N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 8N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32455\"]]");
-    p = add_epsg_def (filter, first, last, 32456, "epsg", 32456,
-        "WGS 72BE / UTM zone 56N");
+        "28468\"]]");
+    p = add_epsg_def (filter, first, last, 28469, "epsg", 28469,
+        "Pulkovo 1942 / Gauss-Kruger 9N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 56N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 9N (deprecated)\",G");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "4\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AU");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "THORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHO");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32456\"]]");
-    p = add_epsg_def (filter, first, last, 32457, "epsg", 32457,
-        "WGS 72BE / UTM zone 57N");
+        "28469\"]]");
+    p = add_epsg_def (filter, first, last, 28470, "epsg", 28470,
+        "Pulkovo 1942 / Gauss-Kruger 10N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 57N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 10N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32457\"]]");
-    p = add_epsg_def (filter, first, last, 32458, "epsg", 32458,
-        "WGS 72BE / UTM zone 58N");
+        "28470\"]]");
+    p = add_epsg_def (filter, first, last, 28471, "epsg", 28471,
+        "Pulkovo 1942 / Gauss-Kruger 11N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 58N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 11N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32458\"]]");
-    p = add_epsg_def (filter, first, last, 32459, "epsg", 32459,
-        "WGS 72BE / UTM zone 59N");
+        "28471\"]]");
+    p = add_epsg_def (filter, first, last, 28472, "epsg", 28472,
+        "Pulkovo 1942 / Gauss-Kruger 12N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 59N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 12N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32459\"]]");
-    p = add_epsg_def (filter, first, last, 32460, "epsg", 32460,
-        "WGS 72BE / UTM zone 60N");
+        "28472\"]]");
+    p = add_epsg_def (filter, first, last, 28473, "epsg", 28473,
+        "Pulkovo 1942 / Gauss-Kruger 13N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+        "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        "14,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 60N\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 13N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "\",NORTH],AUTHORITY[\"EPSG\",\"32460\"]]");
-    p = add_epsg_def (filter, first, last, 32501, "epsg", 32501,
-        "WGS 72BE / UTM zone 1S");
+        "28473\"]]");
+    p = add_epsg_def (filter, first, last, 28474, "epsg", 28474,
+        "Pulkovo 1942 / Gauss-Kruger 14N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 1S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 14N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32501\"]]");
-    p = add_epsg_def (filter, first, last, 32502, "epsg", 32502,
-        "WGS 72BE / UTM zone 2S");
+        "28474\"]]");
+    p = add_epsg_def (filter, first, last, 28475, "epsg", 28475,
+        "Pulkovo 1942 / Gauss-Kruger 15N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 2S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 15N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32502\"]]");
-    p = add_epsg_def (filter, first, last, 32503, "epsg", 32503,
-        "WGS 72BE / UTM zone 3S");
+        "28475\"]]");
+    p = add_epsg_def (filter, first, last, 28476, "epsg", 28476,
+        "Pulkovo 1942 / Gauss-Kruger 16N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 3S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 16N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32503\"]]");
-    p = add_epsg_def (filter, first, last, 32504, "epsg", 32504,
-        "WGS 72BE / UTM zone 4S");
+        "28476\"]]");
+    p = add_epsg_def (filter, first, last, 28477, "epsg", 28477,
+        "Pulkovo 1942 / Gauss-Kruger 17N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0");
+    add_proj4text (p, 2,
+        ".12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 4S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 17N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32504\"]]");
-    p = add_epsg_def (filter, first, last, 32505, "epsg", 32505,
-        "WGS 72BE / UTM zone 5S");
+        "28477\"]]");
+    p = add_epsg_def (filter, first, last, 28478, "epsg", 28478,
+        "Pulkovo 1942 / Gauss-Kruger 18N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 5S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 18N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32505\"]]");
-    p = add_epsg_def (filter, first, last, 32506, "epsg", 32506,
-        "WGS 72BE / UTM zone 6S");
+        "\"28478\"]]");
+    p = add_epsg_def (filter, first, last, 28479, "epsg", 28479,
+        "Pulkovo 1942 / Gauss-Kruger 19N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 6S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 19N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32506\"]]");
-    p = add_epsg_def (filter, first, last, 32507, "epsg", 32507,
-        "WGS 72BE / UTM zone 7S");
+        "\"28479\"]]");
+    p = add_epsg_def (filter, first, last, 28480, "epsg", 28480,
+        "Pulkovo 1942 / Gauss-Kruger 20N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 7S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 20N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32507\"]]");
-    p = add_epsg_def (filter, first, last, 32508, "epsg", 32508,
-        "WGS 72BE / UTM zone 8S");
+        "\"28480\"]]");
+    p = add_epsg_def (filter, first, last, 28481, "epsg", 28481,
+        "Pulkovo 1942 / Gauss-Kruger 21N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 8S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 21N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32508\"]]");
-    p = add_epsg_def (filter, first, last, 32509, "epsg", 32509,
-        "WGS 72BE / UTM zone 9S");
+        "\"28481\"]]");
+    p = add_epsg_def (filter, first, last, 28482, "epsg", 28482,
+        "Pulkovo 1942 / Gauss-Kruger 22N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+        "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        ",0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 9S\",GEOGCS[\"WGS 72BE\",DA");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 22N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32509\"]]");
-    p = add_epsg_def (filter, first, last, 32510, "epsg", 32510,
-        "WGS 72BE / UTM zone 10S");
+        "\"28482\"]]");
+    p = add_epsg_def (filter, first, last, 28483, "epsg", 28483,
+        "Pulkovo 1942 / Gauss-Kruger 23N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 10S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 23N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32510\"]]");
-    p = add_epsg_def (filter, first, last, 32511, "epsg", 32511,
-        "WGS 72BE / UTM zone 11S");
+        "\"28483\"]]");
+    p = add_epsg_def (filter, first, last, 28484, "epsg", 28484,
+        "Pulkovo 1942 / Gauss-Kruger 24N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 11S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 24N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "41],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32511\"]]");
-    p = add_epsg_def (filter, first, last, 32512, "epsg", 32512,
-        "WGS 72BE / UTM zone 12S");
+        "\"28484\"]]");
+    p = add_epsg_def (filter, first, last, 28485, "epsg", 28485,
+        "Pulkovo 1942 / Gauss-Kruger 25N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 12S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 25N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "47],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32512\"]]");
-    p = add_epsg_def (filter, first, last, 32513, "epsg", 32513,
-        "WGS 72BE / UTM zone 13S");
+        "\"28485\"]]");
+    p = add_epsg_def (filter, first, last, 28486, "epsg", 28486,
+        "Pulkovo 1942 / Gauss-Kruger 26N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 13S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 26N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+        "53],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32513\"]]");
-    p = add_epsg_def (filter, first, last, 32514, "epsg", 32514,
-        "WGS 72BE / UTM zone 14S");
+        "\"28486\"]]");
+    p = add_epsg_def (filter, first, last, 28487, "epsg", 28487,
+        "Pulkovo 1942 / Gauss-Kruger 27N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 14S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 27N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "59],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32514\"]]");
-    p = add_epsg_def (filter, first, last, 32515, "epsg", 32515,
-        "WGS 72BE / UTM zone 15S");
+        "\"28487\"]]");
+    p = add_epsg_def (filter, first, last, 28488, "epsg", 28488,
+        "Pulkovo 1942 / Gauss-Kruger 28N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 15S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 28N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "65],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32515\"]]");
-    p = add_epsg_def (filter, first, last, 32516, "epsg", 32516,
-        "WGS 72BE / UTM zone 16S");
+        "\"28488\"]]");
+    p = add_epsg_def (filter, first, last, 28489, "epsg", 28489,
+        "Pulkovo 1942 / Gauss-Kruger 29N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 16S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 29N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "71],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32516\"]]");
-    p = add_epsg_def (filter, first, last, 32517, "epsg", 32517,
-        "WGS 72BE / UTM zone 17S");
+        "\"28489\"]]");
+    p = add_epsg_def (filter, first, last, 28490, "epsg", 28490,
+        "Pulkovo 1942 / Gauss-Kruger 30N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 ");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-");
+    add_proj4text (p, 2,
+        "0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 17S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 30N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "77],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32517\"]]");
-    p = add_epsg_def (filter, first, last, 32518, "epsg", 32518,
-        "WGS 72BE / UTM zone 18S");
+        "\"28490\"]]");
+    p = add_epsg_def (filter, first, last, 28491, "epsg", 28491,
+        "Pulkovo 1942 / Gauss-Kruger 31N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 18S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 31N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "177],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32518\"]]");
-    p = add_epsg_def (filter, first, last, 32519, "epsg", 32519,
-        "WGS 72BE / UTM zone 19S");
+        ",\"28491\"]]");
+    p = add_epsg_def (filter, first, last, 28492, "epsg", 28492,
+        "Pulkovo 1942 / Gauss-Kruger 32N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        " +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,");
+    add_proj4text (p, 2,
+        "-0.12 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 19S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 32N (deprecated)\",");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "024\"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f");
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "171],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32519\"]]");
-    p = add_epsg_def (filter, first, last, 32520, "epsg", 32520,
-        "WGS 72BE / UTM zone 20S");
+        ",\"28492\"]]");
+    p = add_epsg_def (filter, first, last, 28600, "epsg", 28600,
+        "Qatar 1974 / Qatar National Grid");
     add_proj4text (p, 0,
-        "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-128.1");
+    add_proj4text (p, 2,
+        "6,-282.42,21.93,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 20S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Qatar 1974 / Qatar National Grid\",GEOGCS[\"Qat");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "ar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"International ");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\"EPSG\",\"628");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4285\"]],PROJECTION[\"T");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
+        "4.45],PARAMETER[\"central_meridian\",51.21666666666667],");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_ea");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "sting\",200000],PARAMETER[\"false_northing\",300000],UNI");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32520\"]]");
-    p = add_epsg_def (filter, first, last, 32521, "epsg", 32521,
-        "WGS 72BE / UTM zone 21S");
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "28600\"]]");
+    p = add_epsg_def (filter, first, last, 28991, "epsg", 28991,
+        "Amersfoort / RD Old");
     add_proj4text (p, 0,
-        "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "88889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +towgs84=");
+    add_proj4text (p, 2,
+        "565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.072");
+    add_proj4text (p, 3,
+        "5 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 21S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Amersfoort / RD Old\",GEOGCS[\"Amersfoort\",DAT");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
+        "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "r\",0.9999079],PARAMETER[\"false_easting\",0],PARAMETER[");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32521\"]]");
-    p = add_epsg_def (filter, first, last, 32522, "epsg", 32522,
-        "WGS 72BE / UTM zone 22S");
+        ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 13,
+        "[\"EPSG\",\"28991\"]]");
+    p = add_epsg_def (filter, first, last, 28992, "epsg", 28992,
+        "Amersfoort / RD New");
     add_proj4text (p, 0,
-        "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel");
+    add_proj4text (p, 2,
+        " +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.");
+    add_proj4text (p, 3,
+        "8774,4.0725 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 22S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DAT");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        ",50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTH");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "ORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORI");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "3,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"428");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f");
+        "latitude_of_origin\",52.15616055555555],PARAMETER[\"cent");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ral_meridian\",5.38763888888889],PARAMETER[\"scale_facto");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "r\",0.9999079],PARAMETER[\"false_easting\",155000],PARAM");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "ETER[\"false_northing\",463000],UNIT[\"metre\",1,AUTHORI");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32522\"]]");
-    p = add_epsg_def (filter, first, last, 32523, "epsg", 32523,
-        "WGS 72BE / UTM zone 23S");
+        "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH");
+    add_srs_wkt (p, 13,
+        "],AUTHORITY[\"EPSG\",\"28992\"]]");
+    p = add_epsg_def (filter, first, last, 29100, "epsg", 29100,
+        "SAD69 / Brazil Polyconic (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "0 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_d");
+    add_proj4text (p, 2,
+        "efs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 23S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / Brazil Polyconic (deprecated)\",GEOGCS[");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"70");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "36\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "\",\"9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Polyconic\"],PARAMETER[\"latitude_of_origin\",0],PARAMET");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f");
+        "ER[\"central_meridian\",-54],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        ",5000000],PARAMETER[\"false_northing\",10000000],UNIT[\"");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32523\"]]");
-    p = add_epsg_def (filter, first, last, 32524, "epsg", 32524,
-        "WGS 72BE / UTM zone 24S");
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29100\"]]");
+    p = add_epsg_def (filter, first, last, 29101, "epsg", 29101,
+        "SAD69 / Brazil Polyconic");
     add_proj4text (p, 0,
-        "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "0 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 24S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / Brazil Polyconic\",GEOGCS[\"SAD69\",DAT");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "GS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PR");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "]],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Polyconic\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f");
+        "l_meridian\",-54],PARAMETER[\"false_easting\",5000000],P");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
-    add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32524\"]]");
-    p = add_epsg_def (filter, first, last, 32525, "epsg", 32525,
-        "WGS 72BE / UTM zone 25S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"29101\"]]");
+    p = add_epsg_def (filter, first, last, 29118, "epsg", 29118,
+        "SAD69 / UTM zone 18N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 25S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 18N (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f");
+        "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32525\"]]");
-    p = add_epsg_def (filter, first, last, 32526, "epsg", 32526,
-        "WGS 72BE / UTM zone 26S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"29118\"]]");
+    p = add_epsg_def (filter, first, last, 29119, "epsg", 29119,
+        "SAD69 / UTM zone 19N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=19 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 26S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 19N (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f");
+        "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32526\"]]");
-    p = add_epsg_def (filter, first, last, 32527, "epsg", 32527,
-        "WGS 72BE / UTM zone 27S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"29119\"]]");
+    p = add_epsg_def (filter, first, last, 29120, "epsg", 29120,
+        "SAD69 / UTM zone 20N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=20 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 27S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 20N (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f");
+        "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32527\"]]");
-    p = add_epsg_def (filter, first, last, 32528, "epsg", 32528,
-        "WGS 72BE / UTM zone 28S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"29120\"]]");
+    p = add_epsg_def (filter, first, last, 29121, "epsg", 29121,
+        "SAD69 / UTM zone 21N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=21 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 28S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 21N (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f");
+        "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32528\"]]");
-    p = add_epsg_def (filter, first, last, 32529, "epsg", 32529,
-        "WGS 72BE / UTM zone 29S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"29121\"]]");
+    p = add_epsg_def (filter, first, last, 29122, "epsg", 29122,
+        "SAD69 / UTM zone 22N (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 29S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 22N (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32529\"]]");
-    p = add_epsg_def (filter, first, last, 32530, "epsg", 32530,
-        "WGS 72BE / UTM zone 30S");
+        ",NORTH],AUTHORITY[\"EPSG\",\"29122\"]]");
+    p = add_epsg_def (filter, first, last, 29168, "epsg", 29168,
+        "SAD69 / UTM zone 18N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=18 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 30S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 18N\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa");
+        "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32530\"]]");
-    p = add_epsg_def (filter, first, last, 32531, "epsg", 32531,
-        "WGS 72BE / UTM zone 31S");
+        "THORITY[\"EPSG\",\"29168\"]]");
+    p = add_epsg_def (filter, first, last, 29169, "epsg", 29169,
+        "SAD69 / UTM zone 19N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=19 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 31S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 19N\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac");
+        "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32531\"]]");
-    p = add_epsg_def (filter, first, last, 32532, "epsg", 32532,
-        "WGS 72BE / UTM zone 32S");
+        "THORITY[\"EPSG\",\"29169\"]]");
+    p = add_epsg_def (filter, first, last, 29170, "epsg", 29170,
+        "SAD69 / UTM zone 20N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=20 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 32S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 20N\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac");
+        "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32532\"]]");
-    p = add_epsg_def (filter, first, last, 32533, "epsg", 32533,
-        "WGS 72BE / UTM zone 33S");
+        "THORITY[\"EPSG\",\"29170\"]]");
+    p = add_epsg_def (filter, first, last, 29171, "epsg", 29171,
+        "SAD69 / UTM zone 21N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=21 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 33S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 21N\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa");
+        "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32533\"]]");
-    p = add_epsg_def (filter, first, last, 32534, "epsg", 32534,
-        "WGS 72BE / UTM zone 34S");
+        "THORITY[\"EPSG\",\"29171\"]]");
+    p = add_epsg_def (filter, first, last, 29172, "epsg", 29172,
+        "SAD69 / UTM zone 22N");
     add_proj4text (p, 0,
-        "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=22 +ellps=aust_SA +towgs84=-57,1,-41,0,0");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        ",0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 34S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 22N\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa");
+        "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32534\"]]");
-    p = add_epsg_def (filter, first, last, 32535, "epsg", 32535,
-        "WGS 72BE / UTM zone 35S");
+        "THORITY[\"EPSG\",\"29172\"]]");
+    p = add_epsg_def (filter, first, last, 29177, "epsg", 29177,
+        "SAD69 / UTM zone 17S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 35S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 17S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32535\"]]");
-    p = add_epsg_def (filter, first, last, 32536, "epsg", 32536,
-        "WGS 72BE / UTM zone 36S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29177\"]]");
+    p = add_epsg_def (filter, first, last, 29178, "epsg", 29178,
+        "SAD69 / UTM zone 18S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=18 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 36S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 18S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32536\"]]");
-    p = add_epsg_def (filter, first, last, 32537, "epsg", 32537,
-        "WGS 72BE / UTM zone 37S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29178\"]]");
+    p = add_epsg_def (filter, first, last, 29179, "epsg", 29179,
+        "SAD69 / UTM zone 19S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=19 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 37S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 19S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32537\"]]");
-    p = add_epsg_def (filter, first, last, 32538, "epsg", 32538,
-        "WGS 72BE / UTM zone 38S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29179\"]]");
+    p = add_epsg_def (filter, first, last, 29180, "epsg", 29180,
+        "SAD69 / UTM zone 20S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=20 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 38S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 20S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32538\"]]");
-    p = add_epsg_def (filter, first, last, 32539, "epsg", 32539,
-        "WGS 72BE / UTM zone 39S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29180\"]]");
+    p = add_epsg_def (filter, first, last, 29181, "epsg", 29181,
+        "SAD69 / UTM zone 21S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=21 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 39S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 21S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32539\"]]");
-    p = add_epsg_def (filter, first, last, 32540, "epsg", 32540,
-        "WGS 72BE / UTM zone 40S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29181\"]]");
+    p = add_epsg_def (filter, first, last, 29182, "epsg", 29182,
+        "SAD69 / UTM zone 22S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=22 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 40S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 22S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32540\"]]");
-    p = add_epsg_def (filter, first, last, 32541, "epsg", 32541,
-        "WGS 72BE / UTM zone 41S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29182\"]]");
+    p = add_epsg_def (filter, first, last, 29183, "epsg", 29183,
+        "SAD69 / UTM zone 23S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=23 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 41S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 23S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32541\"]]");
-    p = add_epsg_def (filter, first, last, 32542, "epsg", 32542,
-        "WGS 72BE / UTM zone 42S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29183\"]]");
+    p = add_epsg_def (filter, first, last, 29184, "epsg", 29184,
+        "SAD69 / UTM zone 24S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=24 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 42S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 24S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32542\"]]");
-    p = add_epsg_def (filter, first, last, 32543, "epsg", 32543,
-        "WGS 72BE / UTM zone 43S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29184\"]]");
+    p = add_epsg_def (filter, first, last, 29185, "epsg", 29185,
+        "SAD69 / UTM zone 25S (deprecated)");
     add_proj4text (p, 0,
-        "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-4");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "1,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 43S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 25S (deprecated)\",GEOGCS[\"SA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9108\"]],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa");
+        "ARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_fac");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32543\"]]");
-    p = add_epsg_def (filter, first, last, 32544, "epsg", 32544,
-        "WGS 72BE / UTM zone 44S");
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"29185\"]]");
+    p = add_epsg_def (filter, first, last, 29187, "epsg", 29187,
+        "SAD69 / UTM zone 17S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 44S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 17S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa");
+        "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32544\"]]");
-    p = add_epsg_def (filter, first, last, 32545, "epsg", 32545,
-        "WGS 72BE / UTM zone 45S");
+        "TH],AUTHORITY[\"EPSG\",\"29187\"]]");
+    p = add_epsg_def (filter, first, last, 29188, "epsg", 29188,
+        "SAD69 / UTM zone 18S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 45S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 18S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa");
+        "central_meridian\",-75],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32545\"]]");
-    p = add_epsg_def (filter, first, last, 32546, "epsg", 32546,
-        "WGS 72BE / UTM zone 46S");
+        "TH],AUTHORITY[\"EPSG\",\"29188\"]]");
+    p = add_epsg_def (filter, first, last, 29189, "epsg", 29189,
+        "SAD69 / UTM zone 19S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 46S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 19S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa");
+        "central_meridian\",-69],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32546\"]]");
-    p = add_epsg_def (filter, first, last, 32547, "epsg", 32547,
-        "WGS 72BE / UTM zone 47S");
+        "TH],AUTHORITY[\"EPSG\",\"29189\"]]");
+    p = add_epsg_def (filter, first, last, 29190, "epsg", 29190,
+        "SAD69 / UTM zone 20S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 47S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 20S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa");
+        "central_meridian\",-63],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32547\"]]");
-    p = add_epsg_def (filter, first, last, 32548, "epsg", 32548,
-        "WGS 72BE / UTM zone 48S");
+        "TH],AUTHORITY[\"EPSG\",\"29190\"]]");
+    p = add_epsg_def (filter, first, last, 29191, "epsg", 29191,
+        "SAD69 / UTM zone 21S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 48S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 21S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f");
+        "central_meridian\",-57],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32548\"]]");
-    p = add_epsg_def (filter, first, last, 32549, "epsg", 32549,
-        "WGS 72BE / UTM zone 49S");
+        "TH],AUTHORITY[\"EPSG\",\"29191\"]]");
+    p = add_epsg_def (filter, first, last, 29192, "epsg", 29192,
+        "SAD69 / UTM zone 22S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 49S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 22S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f");
+        "central_meridian\",-51],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32549\"]]");
-    p = add_epsg_def (filter, first, last, 32550, "epsg", 32550,
-        "WGS 72BE / UTM zone 50S");
+        "TH],AUTHORITY[\"EPSG\",\"29192\"]]");
+    p = add_epsg_def (filter, first, last, 29193, "epsg", 29193,
+        "SAD69 / UTM zone 23S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 50S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 23S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f");
+        "central_meridian\",-45],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32550\"]]");
-    p = add_epsg_def (filter, first, last, 32551, "epsg", 32551,
-        "WGS 72BE / UTM zone 51S");
+        "TH],AUTHORITY[\"EPSG\",\"29193\"]]");
+    p = add_epsg_def (filter, first, last, 29194, "epsg", 29194,
+        "SAD69 / UTM zone 24S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 51S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 24S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f");
+        "central_meridian\",-39],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32551\"]]");
-    p = add_epsg_def (filter, first, last, 32552, "epsg", 32552,
-        "WGS 72BE / UTM zone 52S");
+        "TH],AUTHORITY[\"EPSG\",\"29194\"]]");
+    p = add_epsg_def (filter, first, last, 29195, "epsg", 29195,
+        "SAD69 / UTM zone 25S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-57,1,");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "-41,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 52S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"SAD69 / UTM zone 25S\",GEOGCS[\"SAD69\",DATUM[\"");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84[");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]],PRIMEM[");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "UTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_Mer");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f");
+        "central_meridian\",-33],PARAMETER[\"scale_factor\",0.999");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32552\"]]");
-    p = add_epsg_def (filter, first, last, 32553, "epsg", 32553,
-        "WGS 72BE / UTM zone 53S");
+        "TH],AUTHORITY[\"EPSG\",\"29195\"]]");
+    p = add_epsg_def (filter, first, last, 29220, "epsg", 29220,
+        "Sapper Hill 1943 / UTM zone 20S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,7");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "2,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 53S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Sapper Hill 1943 / UTM zone 20S\",GEOGCS[\"Sapp");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292");
     add_srs_wkt (p, 4,
         "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
         "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
         "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f");
+        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
         "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
@@ -3123,31 +3263,31 @@ initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32553\"]]");
-    p = add_epsg_def (filter, first, last, 32554, "epsg", 32554,
-        "WGS 72BE / UTM zone 54S");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29220\"]]");
+    p = add_epsg_def (filter, first, last, 29221, "epsg", 29221,
+        "Sapper Hill 1943 / UTM zone 21S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,7");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "2,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 54S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Sapper Hill 1943 / UTM zone 21S\",GEOGCS[\"Sapp");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292");
     add_srs_wkt (p, 4,
         "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
     add_srs_wkt (p, 5,
         "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Tr");
     add_srs_wkt (p, 7,
         "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f");
+        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
     add_srs_wkt (p, 9,
         "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
     add_srs_wkt (p, 10,
@@ -3155,135 +3295,147 @@ initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **las
     add_srs_wkt (p, 11,
         "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32554\"]]");
-    p = add_epsg_def (filter, first, last, 32555, "epsg", 32555,
-        "WGS 72BE / UTM zone 55S");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29221\"]]");
+    p = add_epsg_def (filter, first, last, 29333, "epsg", 29333,
+        "Schwarzeck / UTM zone 33S");
     add_proj4text (p, 0,
-        "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=utm +zone=33 +south +ellps=bess_nam +towgs84=616,9");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "7,-251,0,0,0,0 +units=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 55S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Schwarzeck / UTM zone 33S\",GEOGCS[\"Schwarzeck");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "\",DATUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\"");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        ",6377483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "\"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "293\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "\",\"9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f");
+        "0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32555\"]]");
-    p = add_epsg_def (filter, first, last, 32556, "epsg", 32556,
-        "WGS 72BE / UTM zone 56S");
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"29333\"]]");
+    p = add_epsg_def (filter, first, last, 29371, "epsg", 29371,
+        "Schwarzeck / Lo22/11");
     add_proj4text (p, 0,
-        "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=-22 +lon_0=11 +k=1 +x_0=0 +y_0=0 +axi");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 56S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Schwarzeck / Lo22/11\",GEOGCS[\"Schwarzeck\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f");
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",11],PAR");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32556\"]]");
-    p = add_epsg_def (filter, first, last, 32557, "epsg", 32557,
-        "WGS 72BE / UTM zone 57S");
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29371\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29373, "epsg", 29373,
+        "Schwarzeck / Lo22/13");
     add_proj4text (p, 0,
-        "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=-22 +lon_0=13 +k=1 +x_0=0 +y_0=0 +axi");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 57S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Schwarzeck / Lo22/13\",GEOGCS[\"Schwarzeck\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f");
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",13],PAR");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32557\"]]");
-    p = add_epsg_def (filter, first, last, 32558, "epsg", 32558,
-        "WGS 72BE / UTM zone 58S");
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29373\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29375, "epsg", 29375,
+        "Schwarzeck / Lo22/15");
     add_proj4text (p, 0,
-        "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=-22 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axi");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 58S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Schwarzeck / Lo22/15\",GEOGCS[\"Schwarzeck\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f");
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",15],PAR");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32558\"]]");
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29375\"");
+    add_srs_wkt (p, 13,
+        "]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_40.c b/src/srsinit/epsg_inlined_40.c
index e39d211..b3b41fc 100644
--- a/src/srsinit/epsg_inlined_40.c
+++ b/src/srsinit/epsg_inlined_40.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -52,70 +52,3456 @@ initialize_epsg_40 (int filter, struct epsg_defs **first, struct epsg_defs **las
 {
 /* initializing the EPSG defs list */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 32559, "epsg", 32559,
-        "WGS 72BE / UTM zone 59S");
+    p = add_epsg_def (filter, first, last, 29377, "epsg", 29377,
+        "Schwarzeck / Lo22/17");
     add_proj4text (p, 0,
-        "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=-22 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axi");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 59S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"Schwarzeck / Lo22/17\",GEOGCS[\"Schwarzeck\",DA");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f");
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",17],PAR");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
     add_srs_wkt (p, 11,
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29377\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29379, "epsg", 29379,
+        "Schwarzeck / Lo22/19");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=-22 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axi");
+    add_proj4text (p, 1,
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Schwarzeck / Lo22/19\",GEOGCS[\"Schwarzeck\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+    add_srs_wkt (p, 2,
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+    add_srs_wkt (p, 4,
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+    add_srs_wkt (p, 5,
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+    add_srs_wkt (p, 7,
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+    add_srs_wkt (p, 8,
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",19],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+    add_srs_wkt (p, 11,
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29379\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29381, "epsg", 29381,
+        "Schwarzeck / Lo22/21");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=-22 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axi");
+    add_proj4text (p, 1,
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Schwarzeck / Lo22/21\",GEOGCS[\"Schwarzeck\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+    add_srs_wkt (p, 2,
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+    add_srs_wkt (p, 4,
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+    add_srs_wkt (p, 5,
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+    add_srs_wkt (p, 7,
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+    add_srs_wkt (p, 8,
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",21],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+    add_srs_wkt (p, 11,
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29381\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29383, "epsg", 29383,
+        "Schwarzeck / Lo22/23");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=-22 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axi");
+    add_proj4text (p, 1,
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Schwarzeck / Lo22/23\",GEOGCS[\"Schwarzeck\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+    add_srs_wkt (p, 2,
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+    add_srs_wkt (p, 4,
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+    add_srs_wkt (p, 5,
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+    add_srs_wkt (p, 7,
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+    add_srs_wkt (p, 8,
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",23],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+    add_srs_wkt (p, 11,
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29383\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29385, "epsg", 29385,
+        "Schwarzeck / Lo22/25");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=-22 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axi");
+    add_proj4text (p, 1,
+        "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m");
+    add_proj4text (p, 2,
+        "eter=1.0000135965 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Schwarzeck / Lo22/25\",GEOGCS[\"Schwarzeck\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637");
+    add_srs_wkt (p, 2,
+        "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\"");
+    add_srs_wkt (p, 4,
+        "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+    add_srs_wkt (p, 5,
+        "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "9122\"]],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Tran");
+    add_srs_wkt (p, 7,
+        "sverse_Mercator_South_Orientated\"],PARAMETER[\"latitude");
+    add_srs_wkt (p, 8,
+        "_of_origin\",-22],PARAMETER[\"central_meridian\",25],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"false_northing\",0],UNIT[\"German legal me");
+    add_srs_wkt (p, 11,
+        "tre\",1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29385\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29635, "epsg", 29635,
+        "Sudan / UTM zone 35N (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_");
+    add_proj4text (p, 1,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Sudan / UTM zone 35N (deprecated)\",GEOGCS[\"Su");
+    add_srs_wkt (p, 1,
+        "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637");
+    add_srs_wkt (p, 2,
+        "8249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2");
+    add_srs_wkt (p, 8,
+        "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
+    add_srs_wkt (p, 9,
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+    add_srs_wkt (p, 10,
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
+    add_srs_wkt (p, 11,
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296");
+    add_srs_wkt (p, 12,
+        "35\"]]");
+    p = add_epsg_def (filter, first, last, 29636, "epsg", 29636,
+        "Sudan / UTM zone 36N (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_");
+    add_proj4text (p, 1,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Sudan / UTM zone 36N (deprecated)\",GEOGCS[\"Su");
+    add_srs_wkt (p, 1,
+        "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637");
+    add_srs_wkt (p, 2,
+        "8249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"7011\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4296\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3");
+    add_srs_wkt (p, 8,
+        "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_");
+    add_srs_wkt (p, 9,
+        "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"");
+    add_srs_wkt (p, 10,
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\"");
+    add_srs_wkt (p, 11,
+        ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"296");
+    add_srs_wkt (p, 12,
+        "36\"]]");
+    p = add_epsg_def (filter, first, last, 29700, "epsg", 29700,
+        "Tananarive (Paris) / Laborde Grid (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=");
+    add_proj4text (p, 1,
+        "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm");
+    add_proj4text (p, 2,
+        "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa");
+    add_proj4text (p, 3,
+        "ris +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tananarive (Paris) / Laborde Grid (deprecated)\"");
+    add_srs_wkt (p, 1,
+        ",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_P");
+    add_srs_wkt (p, 2,
+        "aris\",SPHEROID[\"International 1924\",6378388,297,AUTHO");
+    add_srs_wkt (p, 3,
+        "RITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.3372291");
+    add_srs_wkt (p, 5,
+        "7,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796");
+    add_srs_wkt (p, 6,
+        "326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azimu");
+    add_srs_wkt (p, 8,
+        "th_Center\"],PARAMETER[\"latitude_of_center\",-21],PARAM");
+    add_srs_wkt (p, 9,
+        "ETER[\"longitude_of_center\",49],PARAMETER[\"azimuth\",2");
+    add_srs_wkt (p, 10,
+        "1],PARAMETER[\"rectified_grid_angle\",21],PARAMETER[\"sc");
+    add_srs_wkt (p, 11,
+        "ale_factor\",0.9995],PARAMETER[\"false_easting\",400000]");
+    add_srs_wkt (p, 12,
+        ",PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 13,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 14,
+        ",NORTH],AUTHORITY[\"EPSG\",\"29700\"]]");
+    p = add_epsg_def (filter, first, last, 29702, "epsg", 29702,
+        "Tananarive (Paris) / Laborde Grid approximation");
+    add_proj4text (p, 0,
+        "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=");
+    add_proj4text (p, 1,
+        "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm");
+    add_proj4text (p, 2,
+        "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa");
+    add_proj4text (p, 3,
+        "ris +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tananarive (Paris) / Laborde Grid approximation");
+    add_srs_wkt (p, 1,
+        "\",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925");
+    add_srs_wkt (p, 2,
+        "_Paris\",SPHEROID[\"International 1924\",6378388,297,AUT");
+    add_srs_wkt (p, 3,
+        "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722");
+    add_srs_wkt (p, 5,
+        "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707");
+    add_srs_wkt (p, 6,
+        "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 7,
+        "SG\",\"4810\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azi");
+    add_srs_wkt (p, 8,
+        "muth_Center\"],PARAMETER[\"latitude_of_center\",-21],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"longitude_of_center\",49],PARAMETER[\"azimuth\"");
+    add_srs_wkt (p, 10,
+        ",21],PARAMETER[\"rectified_grid_angle\",21],PARAMETER[\"");
+    add_srs_wkt (p, 11,
+        "scale_factor\",0.9995],PARAMETER[\"false_easting\",40000");
+    add_srs_wkt (p, 12,
+        "0],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"2970");
+    add_srs_wkt (p, 14,
+        "2\"]]");
+    p = add_epsg_def (filter, first, last, 29738, "epsg", 29738,
+        "Tananarive / UTM zone 38S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242");
+    add_proj4text (p, 1,
+        ",-91,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tananarive / UTM zone 38S\",GEOGCS[\"Tananarive");
+    add_srs_wkt (p, 1,
+        "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19");
+    add_srs_wkt (p, 2,
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+    add_srs_wkt (p, 3,
+        "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM");
+    add_srs_wkt (p, 4,
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+    add_srs_wkt (p, 5,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 6,
+        "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_");
+    add_srs_wkt (p, 7,
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0.");
+    add_srs_wkt (p, 9,
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+    add_srs_wkt (p, 11,
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 12,
+        ",NORTH],AUTHORITY[\"EPSG\",\"29738\"]]");
+    p = add_epsg_def (filter, first, last, 29739, "epsg", 29739,
+        "Tananarive / UTM zone 39S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242");
+    add_proj4text (p, 1,
+        ",-91,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tananarive / UTM zone 39S\",GEOGCS[\"Tananarive");
+    add_srs_wkt (p, 1,
+        "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19");
+    add_srs_wkt (p, 2,
+        "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-");
+    add_srs_wkt (p, 3,
+        "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM");
+    add_srs_wkt (p, 4,
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+    add_srs_wkt (p, 5,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 6,
+        "],AUTHORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_");
+    add_srs_wkt (p, 7,
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"central_meridian\",51],PARAMETER[\"scale_factor\",0.");
+    add_srs_wkt (p, 9,
+        "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+    add_srs_wkt (p, 11,
+        "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 12,
+        ",NORTH],AUTHORITY[\"EPSG\",\"29739\"]]");
+    p = add_epsg_def (filter, first, last, 29849, "epsg", 29849,
+        "Timbalai 1948 / UTM zone 49N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=49 +ellps=evrstSS +towgs84=-679,669,-48,");
+    add_proj4text (p, 1,
+        "0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Timbalai 1948 / UTM zone 49N\",GEOGCS[\"Timbala");
+    add_srs_wkt (p, 1,
+        "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830");
+    add_srs_wkt (p, 2,
+        " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP");
+    add_srs_wkt (p, 3,
+        "SG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY[");
+    add_srs_wkt (p, 4,
+        "\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+    add_srs_wkt (p, 5,
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]],");
+    add_srs_wkt (p, 7,
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+    add_srs_wkt (p, 8,
+        "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
+    add_srs_wkt (p, 10,
+        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+    add_srs_wkt (p, 11,
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+    add_srs_wkt (p, 12,
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29849\"]]");
+    p = add_epsg_def (filter, first, last, 29850, "epsg", 29850,
+        "Timbalai 1948 / UTM zone 50N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=50 +ellps=evrstSS +towgs84=-679,669,-48,");
+    add_proj4text (p, 1,
+        "0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Timbalai 1948 / UTM zone 50N\",GEOGCS[\"Timbala");
+    add_srs_wkt (p, 1,
+        "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830");
+    add_srs_wkt (p, 2,
+        " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP");
+    add_srs_wkt (p, 3,
+        "SG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY[");
+    add_srs_wkt (p, 4,
+        "\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E");
+    add_srs_wkt (p, 5,
+        "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]],");
+    add_srs_wkt (p, 7,
+        "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude");
+    add_srs_wkt (p, 8,
+        "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting");
+    add_srs_wkt (p, 10,
+        "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+    add_srs_wkt (p, 11,
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],");
+    add_srs_wkt (p, 12,
+        "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29850\"]]");
+    p = add_epsg_def (filter, first, last, 29871, "epsg", 29871,
+        "Timbalai 1948 / RSO Borneo (ch)");
+    add_proj4text (p, 0,
+        "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 ");
+    add_proj4text (p, 1,
+        "+k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 ");
+    add_proj4text (p, 2,
+        "+gamma=53.13010236111111 +ellps=evrstSS +towgs84=-679,66");
+    add_proj4text (p, 3,
+        "9,-48,0,0,0,0 +to_meter=20.11676512155263 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Timbalai 1948 / RSO Borneo (ch)\",GEOGCS[\"Timb");
+    add_srs_wkt (p, 1,
+        "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1");
+    add_srs_wkt (p, 2,
+        "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT");
+    add_srs_wkt (p, 4,
+        "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+    add_srs_wkt (p, 5,
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]]");
+    add_srs_wkt (p, 7,
+        ",PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],");
+    add_srs_wkt (p, 8,
+        "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud");
+    add_srs_wkt (p, 9,
+        "e_of_center\",115],PARAMETER[\"azimuth\",53.315820472222");
+    add_srs_wkt (p, 10,
+        "22],PARAMETER[\"rectified_grid_angle\",53.13010236111111");
+    add_srs_wkt (p, 11,
+        "],PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_");
+    add_srs_wkt (p, 12,
+        "easting\",29352.4763],PARAMETER[\"false_northing\",22014");
+    add_srs_wkt (p, 13,
+        ".3572],UNIT[\"British chain (Sears 1922)\",20.1167651215");
+    add_srs_wkt (p, 14,
+        "5263,AUTHORITY[\"EPSG\",\"9042\"]],AXIS[\"Easting\",EAST");
+    add_srs_wkt (p, 15,
+        "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29871\"]");
+    add_srs_wkt (p, 16,
+        "]");
+    p = add_epsg_def (filter, first, last, 29872, "epsg", 29872,
+        "Timbalai 1948 / RSO Borneo (ft)");
+    add_proj4text (p, 0,
+        "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 ");
+    add_proj4text (p, 1,
+        "+k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985");
+    add_proj4text (p, 2,
+        " +gamma=53.13010236111111 +ellps=evrstSS +towgs84=-679,6");
+    add_proj4text (p, 3,
+        "69,-48,0,0,0,0 +to_meter=0.3047994715386762 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Timbalai 1948 / RSO Borneo (ft)\",GEOGCS[\"Timb");
+    add_srs_wkt (p, 1,
+        "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1");
+    add_srs_wkt (p, 2,
+        "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT");
+    add_srs_wkt (p, 4,
+        "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+    add_srs_wkt (p, 5,
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]]");
+    add_srs_wkt (p, 7,
+        ",PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],");
+    add_srs_wkt (p, 8,
+        "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud");
+    add_srs_wkt (p, 9,
+        "e_of_center\",115],PARAMETER[\"azimuth\",53.315820472222");
+    add_srs_wkt (p, 10,
+        "22],PARAMETER[\"rectified_grid_angle\",53.13010236111111");
+    add_srs_wkt (p, 11,
+        "],PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_");
+    add_srs_wkt (p, 12,
+        "easting\",1937263.44],PARAMETER[\"false_northing\",14529");
+    add_srs_wkt (p, 13,
+        "47.58],UNIT[\"British foot (Sears 1922)\",0.304799471538");
+    add_srs_wkt (p, 14,
+        "6762,AUTHORITY[\"EPSG\",\"9041\"]],AXIS[\"Easting\",EAST");
+    add_srs_wkt (p, 15,
+        "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29872\"]");
+    add_srs_wkt (p, 16,
+        "]");
+    p = add_epsg_def (filter, first, last, 29873, "epsg", 29873,
+        "Timbalai 1948 / RSO Borneo (m)");
+    add_proj4text (p, 0,
+        "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 ");
+    add_proj4text (p, 1,
+        "+k=0.99984 +x_0=590476.87 +y_0=442857.65 +gamma=53.13010");
+    add_proj4text (p, 2,
+        "236111111 +ellps=evrstSS +towgs84=-679,669,-48,0,0,0,0 +");
+    add_proj4text (p, 3,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Timbalai 1948 / RSO Borneo (m)\",GEOGCS[\"Timba");
+    add_srs_wkt (p, 1,
+        "lai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 18");
+    add_srs_wkt (p, 2,
+        "30 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT");
+    add_srs_wkt (p, 4,
+        "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+    add_srs_wkt (p, 5,
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4298\"]]");
+    add_srs_wkt (p, 7,
+        ",PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],");
+    add_srs_wkt (p, 8,
+        "PARAMETER[\"latitude_of_center\",4],PARAMETER[\"longitud");
+    add_srs_wkt (p, 9,
+        "e_of_center\",115],PARAMETER[\"azimuth\",53.315820472222");
+    add_srs_wkt (p, 10,
+        "22],PARAMETER[\"rectified_grid_angle\",53.13010236111111");
+    add_srs_wkt (p, 11,
+        "],PARAMETER[\"scale_factor\",0.99984],PARAMETER[\"false_");
+    add_srs_wkt (p, 12,
+        "easting\",590476.87],PARAMETER[\"false_northing\",442857");
+    add_srs_wkt (p, 13,
+        ".65],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 14,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 15,
+        "EPSG\",\"29873\"]]");
+    p = add_epsg_def (filter, first, last, 29900, "epsg", 29900,
+        "TM65 / Irish National Grid (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000");
+    add_proj4text (p, 1,
+        "0 +y_0=250000 +datum=ire65 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"TM65 / Irish National Grid (deprecated)\",GEOGC");
+    add_srs_wkt (p, 1,
+        "S[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified 1849\"");
+    add_srs_wkt (p, 2,
+        ",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+    add_srs_wkt (p, 5,
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+    add_srs_wkt (p, 6,
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"42");
+    add_srs_wkt (p, 7,
+        "99\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l");
+    add_srs_wkt (p, 8,
+        "atitude_of_origin\",53.5],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-8],PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_easting\",200000],PARAMETER[\"false_northing\",25000");
+    add_srs_wkt (p, 11,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 13,
+        "G\",\"29900\"]]");
+    p = add_epsg_def (filter, first, last, 29901, "epsg", 29901,
+        "OSNI 1952 / Irish National Grid");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0=");
+    add_proj4text (p, 1,
+        "250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0");
+    add_proj4text (p, 2,
+        ".214,-0.631,8.15 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"OSNI 1952 / Irish National Grid\",GEOGCS[\"OSNI");
+    add_srs_wkt (p, 1,
+        " 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy 1830\",63775");
+    add_srs_wkt (p, 2,
+        "63.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY");
+    add_srs_wkt (p, 4,
+        "[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+    add_srs_wkt (p, 5,
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4188\"]]");
+    add_srs_wkt (p, 7,
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+    add_srs_wkt (p, 8,
+        "e_of_origin\",53.5],PARAMETER[\"central_meridian\",-8],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 10,
+        ",200000],PARAMETER[\"false_northing\",250000],UNIT[\"met");
+    add_srs_wkt (p, 11,
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA");
+    add_srs_wkt (p, 12,
+        "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29901\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 29902, "epsg", 29902,
+        "TM65 / Irish Grid");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000");
+    add_proj4text (p, 1,
+        "0 +y_0=250000 +datum=ire65 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"TM65 / Irish Grid\",GEOGCS[\"TM65\",DATUM[\"TM6");
+    add_srs_wkt (p, 1,
+        "5\",SPHEROID[\"Airy Modified 1849\",6377340.189,299.3249");
+    add_srs_wkt (p, 2,
+        "646,AUTHORITY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,5");
+    add_srs_wkt (p, 3,
+        "64.6,-1.042,-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"629");
+    add_srs_wkt (p, 4,
+        "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+    add_srs_wkt (p, 5,
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4299\"]],PROJECTION[\"T");
+    add_srs_wkt (p, 7,
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",5");
+    add_srs_wkt (p, 8,
+        "3.5],PARAMETER[\"central_meridian\",-8],PARAMETER[\"scal");
+    add_srs_wkt (p, 9,
+        "e_factor\",1.000035],PARAMETER[\"false_easting\",200000]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 11,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS");
+    add_srs_wkt (p, 12,
+        "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29902\"]]");
+    p = add_epsg_def (filter, first, last, 29903, "epsg", 29903,
+        "TM75 / Irish Grid");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000");
+    add_proj4text (p, 1,
+        "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564.");
+    add_proj4text (p, 2,
+        "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"TM75 / Irish Grid\",GEOGCS[\"TM75\",DATUM[\"Geo");
+    add_srs_wkt (p, 1,
+        "detic_Datum_of_1965\",SPHEROID[\"Airy Modified 1849\",63");
+    add_srs_wkt (p, 2,
+        "77340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],TOWG");
+    add_srs_wkt (p, 3,
+        "S84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHOR");
+    add_srs_wkt (p, 4,
+        "ITY[\"EPSG\",\"6300\"]],PRIMEM[\"Greenwich\",0,AUTHORITY");
+    add_srs_wkt (p, 5,
+        "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4300\"");
+    add_srs_wkt (p, 7,
+        "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit");
+    add_srs_wkt (p, 8,
+        "ude_of_origin\",53.5],PARAMETER[\"central_meridian\",-8]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"scale_factor\",1.000035],PARAMETER[\"false_");
+    add_srs_wkt (p, 10,
+        "easting\",200000],PARAMETER[\"false_northing\",250000],U");
+    add_srs_wkt (p, 11,
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas");
+    add_srs_wkt (p, 12,
+        "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"29903\"]]");
+    p = add_epsg_def (filter, first, last, 30161, "epsg", 30161,
+        "Tokyo / Japan Plane Rectangular CS I");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0");
+    add_proj4text (p, 1,
+        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
+    add_proj4text (p, 2,
+        ",0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS I\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397");
+    add_srs_wkt (p, 2,
+        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-");
+    add_srs_wkt (p, 3,
+        "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63");
+    add_srs_wkt (p, 4,
+        "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+    add_srs_wkt (p, 5,
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T");
+    add_srs_wkt (p, 7,
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3");
+    add_srs_wkt (p, 8,
+        "3],PARAMETER[\"central_meridian\",129.5],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30161\"]]");
+    p = add_epsg_def (filter, first, last, 30162, "epsg", 30162,
+        "Tokyo / Japan Plane Rectangular CS II");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS II\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+    add_srs_wkt (p, 2,
+        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",33],PARAMETER[\"central_meridian\",131],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30162\"]]");
+    p = add_epsg_def (filter, first, last, 30163, "epsg", 30163,
+        "Tokyo / Japan Plane Rectangular CS III");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999");
+    add_proj4text (p, 1,
+        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
+    add_proj4text (p, 2,
+        "80.507,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS III\",GEOGCS");
+    add_srs_wkt (p, 1,
+        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+    add_srs_wkt (p, 2,
+        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",36],PARAMETER[\"central_meridian\",132.1666666666667],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east");
+    add_srs_wkt (p, 10,
+        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+    add_srs_wkt (p, 11,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301");
+    add_srs_wkt (p, 12,
+        "63\"]]");
+    p = add_epsg_def (filter, first, last, 30164, "epsg", 30164,
+        "Tokyo / Japan Plane Rectangular CS IV");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0");
+    add_proj4text (p, 1,
+        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
+    add_proj4text (p, 2,
+        ",0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS IV\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+    add_srs_wkt (p, 2,
+        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",33],PARAMETER[\"central_meridian\",133.5],PARAMETER[\"s");
+    add_srs_wkt (p, 9,
+        "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30164\"]]");
+    p = add_epsg_def (filter, first, last, 30165, "epsg", 30165,
+        "Tokyo / Japan Plane Rectangular CS V");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999");
+    add_proj4text (p, 1,
+        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
+    add_proj4text (p, 2,
+        "80.507,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS V\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397");
+    add_srs_wkt (p, 2,
+        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-");
+    add_srs_wkt (p, 3,
+        "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63");
+    add_srs_wkt (p, 4,
+        "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+    add_srs_wkt (p, 5,
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T");
+    add_srs_wkt (p, 7,
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3");
+    add_srs_wkt (p, 8,
+        "6],PARAMETER[\"central_meridian\",134.3333333333333],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 10,
+        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+    add_srs_wkt (p, 11,
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30165");
+    add_srs_wkt (p, 12,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 30166, "epsg", 30166,
+        "Tokyo / Japan Plane Rectangular CS VI");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS VI\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+    add_srs_wkt (p, 2,
+        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",36],PARAMETER[\"central_meridian\",136],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30166\"]]");
+    p = add_epsg_def (filter, first, last, 30167, "epsg", 30167,
+        "Tokyo / Japan Plane Rectangular CS VII");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999");
+    add_proj4text (p, 1,
+        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
+    add_proj4text (p, 2,
+        "80.507,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS VII\",GEOGCS");
+    add_srs_wkt (p, 1,
+        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+    add_srs_wkt (p, 2,
+        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",36],PARAMETER[\"central_meridian\",137.1666666666667],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east");
+    add_srs_wkt (p, 10,
+        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+    add_srs_wkt (p, 11,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301");
+    add_srs_wkt (p, 12,
+        "67\"]]");
+    p = add_epsg_def (filter, first, last, 30168, "epsg", 30168,
+        "Tokyo / Japan Plane Rectangular CS VIII");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0");
+    add_proj4text (p, 1,
+        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
+    add_proj4text (p, 2,
+        ",0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS VIII\",GEOGC");
+    add_srs_wkt (p, 1,
+        "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637");
+    add_srs_wkt (p, 2,
+        "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS");
+    add_srs_wkt (p, 3,
+        "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 4,
+        "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+    add_srs_wkt (p, 5,
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+    add_srs_wkt (p, 6,
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO");
+    add_srs_wkt (p, 7,
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+    add_srs_wkt (p, 8,
+        "n\",36],PARAMETER[\"central_meridian\",138.5],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI");
+    add_srs_wkt (p, 11,
+        "TY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30168\"]]");
+    p = add_epsg_def (filter, first, last, 30169, "epsg", 30169,
+        "Tokyo / Japan Plane Rectangular CS IX");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999");
+    add_proj4text (p, 1,
+        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
+    add_proj4text (p, 2,
+        "80.507,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS IX\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+    add_srs_wkt (p, 2,
+        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",36],PARAMETER[\"central_meridian\",139.8333333333333],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east");
+    add_srs_wkt (p, 10,
+        "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+    add_srs_wkt (p, 11,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"301");
+    add_srs_wkt (p, 12,
+        "69\"]]");
+    p = add_epsg_def (filter, first, last, 30170, "epsg", 30170,
+        "Tokyo / Japan Plane Rectangular CS X");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999");
+    add_proj4text (p, 1,
+        " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6");
+    add_proj4text (p, 2,
+        "80.507,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS X\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397");
+    add_srs_wkt (p, 2,
+        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-");
+    add_srs_wkt (p, 3,
+        "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63");
+    add_srs_wkt (p, 4,
+        "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"");
+    add_srs_wkt (p, 5,
+        "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T");
+    add_srs_wkt (p, 7,
+        "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4");
+    add_srs_wkt (p, 8,
+        "0],PARAMETER[\"central_meridian\",140.8333333333333],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 10,
+        "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+    add_srs_wkt (p, 11,
+        "AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30170");
+    add_srs_wkt (p, 12,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 30171, "epsg", 30171,
+        "Tokyo / Japan Plane Rectangular CS XI");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_");
+    add_proj4text (p, 1,
+        "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,");
+    add_proj4text (p, 2,
+        "0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XI\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+    add_srs_wkt (p, 2,
+        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",44],PARAMETER[\"central_meridian\",140.25],PARAMETER[\"");
+    add_srs_wkt (p, 9,
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30171\"]]");
+    p = add_epsg_def (filter, first, last, 30172, "epsg", 30172,
+        "Tokyo / Japan Plane Rectangular CS XII");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_");
+    add_proj4text (p, 1,
+        "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,");
+    add_proj4text (p, 2,
+        "0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XII\",GEOGCS");
+    add_srs_wkt (p, 1,
+        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+    add_srs_wkt (p, 2,
+        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",44],PARAMETER[\"central_meridian\",142.25],PARAMETER[\"");
+    add_srs_wkt (p, 9,
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30172\"]]");
+    p = add_epsg_def (filter, first, last, 30173, "epsg", 30173,
+        "Tokyo / Japan Plane Rectangular CS XIII");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_");
+    add_proj4text (p, 1,
+        "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,");
+    add_proj4text (p, 2,
+        "0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIII\",GEOGC");
+    add_srs_wkt (p, 1,
+        "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637");
+    add_srs_wkt (p, 2,
+        "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS");
+    add_srs_wkt (p, 3,
+        "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 4,
+        "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+    add_srs_wkt (p, 5,
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+    add_srs_wkt (p, 6,
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO");
+    add_srs_wkt (p, 7,
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+    add_srs_wkt (p, 8,
+        "n\",44],PARAMETER[\"central_meridian\",144.25],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+    add_srs_wkt (p, 11,
+        "ITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30173\"]]");
+    p = add_epsg_def (filter, first, last, 30174, "epsg", 30174,
+        "Tokyo / Japan Plane Rectangular CS XIV");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIV\",GEOGCS");
+    add_srs_wkt (p, 1,
+        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+    add_srs_wkt (p, 2,
+        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",26],PARAMETER[\"central_meridian\",142],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30174\"]]");
+    p = add_epsg_def (filter, first, last, 30175, "epsg", 30175,
+        "Tokyo / Japan Plane Rectangular CS XV");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0");
+    add_proj4text (p, 1,
+        "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0");
+    add_proj4text (p, 2,
+        ",0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XV\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773");
+    add_srs_wkt (p, 2,
+        "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",26],PARAMETER[\"central_meridian\",127.5],PARAMETER[\"s");
+    add_srs_wkt (p, 9,
+        "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30175\"]]");
+    p = add_epsg_def (filter, first, last, 30176, "epsg", 30176,
+        "Tokyo / Japan Plane Rectangular CS XVI");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVI\",GEOGCS");
+    add_srs_wkt (p, 1,
+        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+    add_srs_wkt (p, 2,
+        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",26],PARAMETER[\"central_meridian\",124],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30176\"]]");
+    p = add_epsg_def (filter, first, last, 30177, "epsg", 30177,
+        "Tokyo / Japan Plane Rectangular CS XVII");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVII\",GEOGC");
+    add_srs_wkt (p, 1,
+        "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637");
+    add_srs_wkt (p, 2,
+        "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS");
+    add_srs_wkt (p, 3,
+        "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 4,
+        "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8");
+    add_srs_wkt (p, 5,
+        "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E");
+    add_srs_wkt (p, 6,
+        "PSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTIO");
+    add_srs_wkt (p, 7,
+        "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi");
+    add_srs_wkt (p, 8,
+        "n\",26],PARAMETER[\"central_meridian\",131],PARAMETER[\"");
+    add_srs_wkt (p, 9,
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30177\"]]");
+    p = add_epsg_def (filter, first, last, 30178, "epsg", 30178,
+        "Tokyo / Japan Plane Rectangular CS XVIII");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVIII\",GEOG");
+    add_srs_wkt (p, 1,
+        "CS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63");
+    add_srs_wkt (p, 2,
+        "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG");
+    add_srs_wkt (p, 3,
+        "S84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 4,
+        ",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 5,
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTI");
+    add_srs_wkt (p, 7,
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+    add_srs_wkt (p, 8,
+        "in\",20],PARAMETER[\"central_meridian\",136],PARAMETER[\"");
+    add_srs_wkt (p, 9,
+        "scale_factor\",0.9999],PARAMETER[\"false_easting\",0],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30178\"]]");
+    p = add_epsg_def (filter, first, last, 30179, "epsg", 30179,
+        "Tokyo / Japan Plane Rectangular CS XIX");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIX\",GEOGCS");
+    add_srs_wkt (p, 1,
+        "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377");
+    add_srs_wkt (p, 2,
+        "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",26],PARAMETER[\"central_meridian\",154],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"30179\"]]");
+    p = add_epsg_def (filter, first, last, 30200, "epsg", 30200,
+        "Trinidad 1903 / Trinidad Grid");
+    add_proj4text (p, 0,
+        "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333");
+    add_proj4text (p, 1,
+        "33334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=63782");
+    add_proj4text (p, 2,
+        "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4");
+    add_proj4text (p, 3,
+        "88,472.052,0,0,0,0 +to_meter=0.201166195164 +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Trinidad 1903 / Trinidad Grid\",GEOGCS[\"Trinid");
+    add_srs_wkt (p, 1,
+        "ad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Clarke 1858");
+    add_srs_wkt (p, 2,
+        "\",6378293.645208759,294.2606763692569,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+    add_srs_wkt (p, 5,
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+    add_srs_wkt (p, 6,
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43");
+    add_srs_wkt (p, 7,
+        "02\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latit");
+    add_srs_wkt (p, 8,
+        "ude_of_origin\",10.44166666666667],PARAMETER[\"central_m");
+    add_srs_wkt (p, 9,
+        "eridian\",-61.33333333333334],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 10,
+        ",430000],PARAMETER[\"false_northing\",325000],UNIT[\"Cla");
+    add_srs_wkt (p, 11,
+        "rke's link\",0.201166195164,AUTHORITY[\"EPSG\",\"9039\"]");
+    add_srs_wkt (p, 12,
+        "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR");
+    add_srs_wkt (p, 13,
+        "ITY[\"EPSG\",\"30200\"]]");
+    p = add_epsg_def (filter, first, last, 30339, "epsg", 30339,
+        "TC(1948) / UTM zone 39N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"TC(1948) / UTM zone 39N\",GEOGCS[\"TC(1948)\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63");
+    add_srs_wkt (p, 2,
+        "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 3,
+        "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 4,
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+    add_srs_wkt (p, 5,
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE");
+    add_srs_wkt (p, 6,
+        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+    add_srs_wkt (p, 7,
+        "rigin\",0],PARAMETER[\"central_meridian\",51],PARAMETER[");
+    add_srs_wkt (p, 8,
+        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500");
+    add_srs_wkt (p, 9,
+        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 10,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30339\"]]");
+    p = add_epsg_def (filter, first, last, 30340, "epsg", 30340,
+        "TC(1948) / UTM zone 40N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"TC(1948) / UTM zone 40N\",GEOGCS[\"TC(1948)\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63");
+    add_srs_wkt (p, 2,
+        "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 3,
+        "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 4,
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+    add_srs_wkt (p, 5,
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4303\"]],PROJE");
+    add_srs_wkt (p, 6,
+        "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o");
+    add_srs_wkt (p, 7,
+        "rigin\",0],PARAMETER[\"central_meridian\",57],PARAMETER[");
+    add_srs_wkt (p, 8,
+        "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500");
+    add_srs_wkt (p, 9,
+        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 10,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"30340\"]]");
+    p = add_epsg_def (filter, first, last, 30491, "epsg", 30491,
+        "Voirol 1875 / Nord Algerie (ancienne)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554");
+    add_proj4text (p, 1,
+        "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs");
+    add_proj4text (p, 2,
+        "84=-73,-247,227,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Voirol 1875 / Nord Algerie (ancienne)\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke ");
+    add_srs_wkt (p, 2,
+        "1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"");
+    add_srs_wkt (p, 4,
+        "EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 5,
+        "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PR");
+    add_srs_wkt (p, 7,
+        "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la");
+    add_srs_wkt (p, 8,
+        "titude_of_origin\",36],PARAMETER[\"central_meridian\",2.");
+    add_srs_wkt (p, 9,
+        "7],PARAMETER[\"scale_factor\",0.999625544],PARAMETER[\"f");
+    add_srs_wkt (p, 10,
+        "alse_easting\",500000],PARAMETER[\"false_northing\",3000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30491");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 30492, "epsg", 30492,
+        "Voirol 1875 / Sud Algerie (ancienne)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996");
+    add_proj4text (p, 1,
+        "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t");
+    add_proj4text (p, 2,
+        "owgs84=-73,-247,227,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Voirol 1875 / Sud Algerie (ancienne)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke 18");
+    add_srs_wkt (p, 2,
+        "80 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"EP");
+    add_srs_wkt (p, 4,
+        "SG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 5,
+        ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY");
+    add_srs_wkt (p, 6,
+        "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4304\"]],PROJE");
+    add_srs_wkt (p, 7,
+        "CTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latit");
+    add_srs_wkt (p, 8,
+        "ude_of_origin\",33.3],PARAMETER[\"central_meridian\",2.7");
+    add_srs_wkt (p, 9,
+        "],PARAMETER[\"scale_factor\",0.999625769],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",30000");
+    add_srs_wkt (p, 11,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30492\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 30493, "epsg", 30493,
+        "Voirol 1879 / Nord Algerie (ancienne)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554");
+    add_proj4text (p, 1,
+        "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units");
+    add_proj4text (p, 2,
+        "=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Voirol 1879 / Nord Algerie (ancienne)\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke ");
+    add_srs_wkt (p, 2,
+        "1880 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 7,
+        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\",");
+    add_srs_wkt (p, 9,
+        "0.999625544],PARAMETER[\"false_easting\",500000],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"30493\"]]");
+    p = add_epsg_def (filter, first, last, 30494, "epsg", 30494,
+        "Voirol 1879 / Sud Algerie (ancienne)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996");
+    add_proj4text (p, 1,
+        "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Voirol 1879 / Sud Algerie (ancienne)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke 18");
+    add_srs_wkt (p, 2,
+        "80 (IGN)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Con");
+    add_srs_wkt (p, 7,
+        "ic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\",");
+    add_srs_wkt (p, 9,
+        "0.999625769],PARAMETER[\"false_easting\",500000],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"30494\"]]");
+    p = add_epsg_def (filter, first, last, 30729, "epsg", 30729,
+        "Nord Sahara 1959 / UTM zone 29N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-209.362,-87.8");
+    add_proj4text (p, 1,
+        "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def");
+    add_proj4text (p, 2,
+        "s");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Nord Sahara 1959 / UTM zone 29N\",GEOGCS[\"Nord");
+    add_srs_wkt (p, 1,
+        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+    add_srs_wkt (p, 2,
+        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 3,
+        "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478");
+    add_srs_wkt (p, 4,
+        "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"");
+    add_srs_wkt (p, 5,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 6,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 7,
+        "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 8,
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 9,
+        "entral_meridian\",-9],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"30729\"]]");
+    p = add_epsg_def (filter, first, last, 30730, "epsg", 30730,
+        "Nord Sahara 1959 / UTM zone 30N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-209.362,-87.8");
+    add_proj4text (p, 1,
+        "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def");
+    add_proj4text (p, 2,
+        "s");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Nord Sahara 1959 / UTM zone 30N\",GEOGCS[\"Nord");
+    add_srs_wkt (p, 1,
+        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+    add_srs_wkt (p, 2,
+        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 3,
+        "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478");
+    add_srs_wkt (p, 4,
+        "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"");
+    add_srs_wkt (p, 5,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 6,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 7,
+        "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 8,
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 9,
+        "entral_meridian\",-3],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"30730\"]]");
+    p = add_epsg_def (filter, first, last, 30731, "epsg", 30731,
+        "Nord Sahara 1959 / UTM zone 31N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-209.362,-87.8");
+    add_proj4text (p, 1,
+        "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def");
+    add_proj4text (p, 2,
+        "s");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Nord Sahara 1959 / UTM zone 31N\",GEOGCS[\"Nord");
+    add_srs_wkt (p, 1,
+        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+    add_srs_wkt (p, 2,
+        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 3,
+        "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478");
+    add_srs_wkt (p, 4,
+        "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"");
+    add_srs_wkt (p, 5,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 6,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 7,
+        "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 8,
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 9,
+        "entral_meridian\",3],PARAMETER[\"scale_factor\",0.9996],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no");
+    add_srs_wkt (p, 11,
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"30731\"]]");
+    p = add_epsg_def (filter, first, last, 30732, "epsg", 30732,
+        "Nord Sahara 1959 / UTM zone 32N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-209.362,-87.8");
+    add_proj4text (p, 1,
+        "162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m +no_def");
+    add_proj4text (p, 2,
+        "s");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Nord Sahara 1959 / UTM zone 32N\",GEOGCS[\"Nord");
+    add_srs_wkt (p, 1,
+        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+    add_srs_wkt (p, 2,
+        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 3,
+        "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478");
+    add_srs_wkt (p, 4,
+        "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"");
+    add_srs_wkt (p, 5,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 6,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 7,
+        "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 8,
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 9,
+        "entral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no");
+    add_srs_wkt (p, 11,
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 13,
+        "RITY[\"EPSG\",\"30732\"]]");
+    p = add_epsg_def (filter, first, last, 30791, "epsg", 30791,
+        "Nord Sahara 1959 / Nord Algerie");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554");
+    add_proj4text (p, 1,
+        "4 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-209.36");
+    add_proj4text (p, 2,
+        "2,-87.8162,404.62,0.0046,3.4784,0.5805,-1.4547 +units=m ");
+    add_proj4text (p, 3,
+        "+no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Nord Sahara 1959 / Nord Algerie\",GEOGCS[\"Nord");
+    add_srs_wkt (p, 1,
+        " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla");
+    add_srs_wkt (p, 2,
+        "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 3,
+        "\"7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.478");
+    add_srs_wkt (p, 4,
+        "4,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"");
+    add_srs_wkt (p, 5,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 6,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 7,
+        "HORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Lambert_Conforma");
+    add_srs_wkt (p, 8,
+        "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"central_meridian\",2.7],PARAMETER[\"scale_factor");
+    add_srs_wkt (p, 10,
+        "\",0.999625544],PARAMETER[\"false_easting\",500135],PARA");
+    add_srs_wkt (p, 11,
+        "METER[\"false_northing\",300090],UNIT[\"metre\",1,AUTHOR");
+    add_srs_wkt (p, 12,
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+    add_srs_wkt (p, 13,
+        "H],AUTHORITY[\"EPSG\",\"30791\"]]");
+    p = add_epsg_def (filter, first, last, 30792, "epsg", 30792,
+        "Nord Sahara 1959 / Sud Algerie");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996");
+    add_proj4text (p, 1,
+        "25769 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-20");
+    add_proj4text (p, 2,
+        "9.362,-87.8162,404.62,0.0046,3.4784,0.5805,-1.4547 +unit");
+    add_proj4text (p, 3,
+        "s=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Nord Sahara 1959 / Sud Algerie\",GEOGCS[\"Nord ");
+    add_srs_wkt (p, 1,
+        "Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Clar");
+    add_srs_wkt (p, 2,
+        "ke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 3,
+        "7012\"]],TOWGS84[-209.362,-87.8162,404.62,0.0046,3.4784,");
+    add_srs_wkt (p, 4,
+        "0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 5,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 6,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 7,
+        "ORITY[\"EPSG\",\"4307\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 8,
+        "_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"central_meridian\",2.7],PARAMETER[\"scale_facto");
+    add_srs_wkt (p, 10,
+        "r\",0.999625769],PARAMETER[\"false_easting\",500135],PAR");
+    add_srs_wkt (p, 11,
+        "AMETER[\"false_northing\",300090],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 13,
+        "TH],AUTHORITY[\"EPSG\",\"30792\"]]");
+    p = add_epsg_def (filter, first, last, 30800, "epsg", 30800,
+        "RT38 2.5 gon W (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "1500000 +y_0=0 +ellps=bessel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"RT38 2.5 gon W (deprecated)\",GEOGCS[\"RT38\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"Stockholm_1938\",SPHEROID[\"Bessel 1841\",6377397");
+    add_srs_wkt (p, 2,
+        ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY");
+    add_srs_wkt (p, 3,
+        "[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"");
+    add_srs_wkt (p, 4,
+        "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT");
+    add_srs_wkt (p, 5,
+        "HORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4308\"]]");
+    add_srs_wkt (p, 6,
+        ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud");
+    add_srs_wkt (p, 7,
+        "e_of_origin\",0],PARAMETER[\"central_meridian\",15.80827");
+    add_srs_wkt (p, 8,
+        "777777778],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",1500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 10,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"30800\"]]");
+    p = add_epsg_def (filter, first, last, 31028, "epsg", 31028,
+        "Yoff / UTM zone 28N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_");
+    add_proj4text (p, 1,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Yoff / UTM zone 28N\",GEOGCS[\"Yoff\",DATUM[\"Y");
+    add_srs_wkt (p, 1,
+        "off\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602");
+    add_srs_wkt (p, 2,
+        "12936265,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"6310\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"");
+    add_srs_wkt (p, 5,
+        "EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4310\"]],PROJECTI");
+    add_srs_wkt (p, 6,
+        "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig");
+    add_srs_wkt (p, 7,
+        "in\",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000");
+    add_srs_wkt (p, 9,
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 10,
         "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"31028\"]]");
+    p = add_epsg_def (filter, first, last, 31121, "epsg", 31121,
+        "Zanderij / UTM zone 21N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Zanderij / UTM zone 21N\",GEOGCS[\"Zanderij\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"Zanderij\",SPHEROID[\"International 1924\",637838");
+    add_srs_wkt (p, 2,
+        "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-35");
+    add_srs_wkt (p, 3,
+        "8,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 4,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 5,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 6,
+        "[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 7,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 8,
+        "_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 10,
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 11,
+        "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 12,
+        "[\"EPSG\",\"31121\"]]");
+    p = add_epsg_def (filter, first, last, 31154, "epsg", 31154,
+        "Zanderij / TM 54 NW");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y");
+    add_proj4text (p, 1,
+        "_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Zanderij / TM 54 NW\",GEOGCS[\"Zanderij\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"Zanderij\",SPHEROID[\"International 1924\",6378388,29");
+    add_srs_wkt (p, 2,
+        "7,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358,0,");
+    add_srs_wkt (p, 3,
+        "0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+    add_srs_wkt (p, 7,
+        "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri");
+    add_srs_wkt (p, 8,
+        "dian\",-54],PARAMETER[\"scale_factor\",0.9996],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"false_easting\",500000],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"31154\"]]");
+    p = add_epsg_def (filter, first, last, 31170, "epsg", 31170,
+        "Zanderij / Suriname Old TM");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996");
+    add_proj4text (p, 1,
+        " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0");
+    add_proj4text (p, 2,
+        ",0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Zanderij / Suriname Old TM\",GEOGCS[\"Zanderij\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"Zanderij\",SPHEROID[\"International 1924\",6378");
+    add_srs_wkt (p, 2,
+        "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-");
+    add_srs_wkt (p, 3,
+        "358,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-55.68333333333333],PARAMETER[\"scale_facto");
+    add_srs_wkt (p, 9,
+        "r\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 11,
+        "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",");
+    add_srs_wkt (p, 12,
+        "NORTH],AUTHORITY[\"EPSG\",\"31170\"]]");
+    p = add_epsg_def (filter, first, last, 31171, "epsg", 31171,
+        "Zanderij / Suriname TM");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999");
+    add_proj4text (p, 1,
+        " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0");
+    add_proj4text (p, 2,
+        ",0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Zanderij / Suriname TM\",GEOGCS[\"Zanderij\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"Zanderij\",SPHEROID[\"International 1924\",6378388");
+    add_srs_wkt (p, 2,
+        ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwi");
+    add_srs_wkt (p, 4,
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+    add_srs_wkt (p, 5,
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+    add_srs_wkt (p, 6,
+        "\"EPSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_");
+    add_srs_wkt (p, 8,
+        "meridian\",-55.68333333333333],PARAMETER[\"scale_factor\"");
+    add_srs_wkt (p, 9,
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 11,
+        "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT");
+    add_srs_wkt (p, 12,
+        "H],AUTHORITY[\"EPSG\",\"31171\"]]");
+    p = add_epsg_def (filter, first, last, 31251, "epsg", 31251,
+        "MGI (Ferro) / Austria GK West Zone");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +");
+    add_proj4text (p, 2,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria GK West Zone\",GEOGCS[\"M");
+    add_srs_wkt (p, 1,
+        "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr");
+    add_srs_wkt (p, 2,
+        "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+    add_srs_wkt (p, 3,
+        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666");
+    add_srs_wkt (p, 5,
+        "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 6,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 7,
+        "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 8,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 9,
+        "ral_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
+    add_srs_wkt (p, 12,
+        "THORITY[\"EPSG\",\"31251\"]]");
+    p = add_epsg_def (filter, first, last, 31252, "epsg", 31252,
+        "MGI (Ferro) / Austria GK Central Zone");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +");
+    add_proj4text (p, 2,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria GK Central Zone\",GEOGCS[");
+    add_srs_wkt (p, 1,
+        "\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Institut_F");
+    add_srs_wkt (p, 2,
+        "erro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6");
+    add_srs_wkt (p, 5,
+        "6666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degre");
+    add_srs_wkt (p, 6,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 7,
+        "HORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 8,
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 9,
+        "entral_meridian\",31],PARAMETER[\"scale_factor\",1],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",0],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 11,
+        "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+    add_srs_wkt (p, 12,
+        ",AUTHORITY[\"EPSG\",\"31252\"]]");
+    p = add_epsg_def (filter, first, last, 31253, "epsg", 31253,
+        "MGI (Ferro) / Austria GK East Zone");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000");
+    add_proj4text (p, 1,
+        " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +");
+    add_proj4text (p, 2,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria GK East Zone\",GEOGCS[\"M");
+    add_srs_wkt (p, 1,
+        "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr");
+    add_srs_wkt (p, 2,
+        "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+    add_srs_wkt (p, 3,
+        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666");
+    add_srs_wkt (p, 5,
+        "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 6,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 7,
+        "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 8,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 9,
+        "ral_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",-50");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AU");
+    add_srs_wkt (p, 12,
+        "THORITY[\"EPSG\",\"31253\"]]");
+    p = add_epsg_def (filter, first, last, 31254, "epsg", 31254,
+        "MGI / Austria GK West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria GK West\",GEOGCS[\"MGI\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+    add_srs_wkt (p, 2,
+        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 5,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 6,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 9,
+        "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",0],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 11,
+        "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+    add_srs_wkt (p, 12,
+        ",AUTHORITY[\"EPSG\",\"31254\"]]");
+    p = add_epsg_def (filter, first, last, 31255, "epsg", 31255,
+        "MGI / Austria GK Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria GK Central\",GEOGCS[\"MGI\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"Militar_Geographische_Institute\",SPHEROID[\"Bessel 1");
+    add_srs_wkt (p, 2,
+        "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"");
+    add_srs_wkt (p, 3,
+        "]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.42");
+    add_srs_wkt (p, 4,
+        "32],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",13.33333333333333],PARAMETER[\"scale_factor\",1],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 12,
+        "],AUTHORITY[\"EPSG\",\"31255\"]]");
+    p = add_epsg_def (filter, first, last, 31256, "epsg", 31256,
+        "MGI / Austria GK East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "0 +y_0=-5000000 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria GK East\",GEOGCS[\"MGI\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+    add_srs_wkt (p, 2,
+        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 5,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 6,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 9,
+        "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",0],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 11,
+        "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]");
+    add_srs_wkt (p, 12,
+        ",AUTHORITY[\"EPSG\",\"31256\"]]");
+    p = add_epsg_def (filter, first, last, 31257, "epsg", 31257,
+        "MGI / Austria GK M28");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "150000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d");
+    add_proj4text (p, 2,
+        "efs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria GK M28\",GEOGCS[\"MGI\",DATUM[\"M");
+    add_srs_wkt (p, 1,
+        "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\"");
+    add_srs_wkt (p, 2,
+        ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 5,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 6,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 7,
+        "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+    add_srs_wkt (p, 9,
+        "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",150000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 12,
+        "],AUTHORITY[\"EPSG\",\"31257\"]]");
+    p = add_epsg_def (filter, first, last, 31258, "epsg", 31258,
+        "MGI / Austria GK M31");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "450000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d");
+    add_proj4text (p, 2,
+        "efs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria GK M31\",GEOGCS[\"MGI\",DATUM[\"M");
+    add_srs_wkt (p, 1,
+        "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\"");
+    add_srs_wkt (p, 2,
+        ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 5,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 6,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 7,
+        "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+    add_srs_wkt (p, 9,
+        "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",450000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 12,
+        "],AUTHORITY[\"EPSG\",\"31258\"]]");
+    p = add_epsg_def (filter, first, last, 31259, "epsg", 31259,
+        "MGI / Austria GK M34");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "750000 +y_0=-5000000 +datum=hermannskogel +units=m +no_d");
+    add_proj4text (p, 2,
+        "efs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria GK M34\",GEOGCS[\"MGI\",DATUM[\"M");
+    add_srs_wkt (p, 1,
+        "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\"");
+    add_srs_wkt (p, 2,
+        ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 5,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 6,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 7,
+        "4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+    add_srs_wkt (p, 9,
+        "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",750000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 12,
+        "],AUTHORITY[\"EPSG\",\"31259\"]]");
+    p = add_epsg_def (filter, first, last, 31265, "epsg", 31265,
+        "MGI / 3-degree Gauss zone 5 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / 3-degree Gauss zone 5 (deprecated)\",GEOG");
+    add_srs_wkt (p, 1,
+        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+    add_srs_wkt (p, 2,
+        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+    add_srs_wkt (p, 3,
+        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+    add_srs_wkt (p, 4,
+        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+    add_srs_wkt (p, 5,
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+    add_srs_wkt (p, 6,
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+    add_srs_wkt (p, 7,
+        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+    add_srs_wkt (p, 8,
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"central_meridian\",15],PARAMETER[\"scale_factor\",1],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31265\"]]");
+    p = add_epsg_def (filter, first, last, 31266, "epsg", 31266,
+        "MGI / 3-degree Gauss zone 6 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / 3-degree Gauss zone 6 (deprecated)\",GEOG");
+    add_srs_wkt (p, 1,
+        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+    add_srs_wkt (p, 2,
+        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+    add_srs_wkt (p, 3,
+        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+    add_srs_wkt (p, 4,
+        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+    add_srs_wkt (p, 5,
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+    add_srs_wkt (p, 6,
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+    add_srs_wkt (p, 7,
+        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+    add_srs_wkt (p, 8,
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"central_meridian\",18],PARAMETER[\"scale_factor\",1],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31266\"]]");
+    p = add_epsg_def (filter, first, last, 31267, "epsg", 31267,
+        "MGI / 3-degree Gauss zone 7 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / 3-degree Gauss zone 7 (deprecated)\",GEOG");
+    add_srs_wkt (p, 1,
+        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+    add_srs_wkt (p, 2,
+        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+    add_srs_wkt (p, 3,
+        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+    add_srs_wkt (p, 4,
+        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+    add_srs_wkt (p, 5,
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+    add_srs_wkt (p, 6,
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+    add_srs_wkt (p, 7,
+        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+    add_srs_wkt (p, 8,
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31267\"]]");
+    p = add_epsg_def (filter, first, last, 31268, "epsg", 31268,
+        "MGI / 3-degree Gauss zone 8 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / 3-degree Gauss zone 8 (deprecated)\",GEOG");
+    add_srs_wkt (p, 1,
+        "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH");
+    add_srs_wkt (p, 2,
+        "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[");
+    add_srs_wkt (p, 3,
+        "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137");
+    add_srs_wkt (p, 4,
+        ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME");
+    add_srs_wkt (p, 5,
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+    add_srs_wkt (p, 6,
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+    add_srs_wkt (p, 7,
+        ",AUTHORITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_M");
+    add_srs_wkt (p, 8,
+        "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"central_meridian\",24],PARAMETER[\"scale_factor\",1],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",8500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31268\"]]");
+    p = add_epsg_def (filter, first, last, 31275, "epsg", 31275,
+        "MGI / Balkans zone 5 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Balkans zone 5 (deprecated)\",GEOGCS[\"MG");
+    add_srs_wkt (p, 1,
+        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+    add_srs_wkt (p, 4,
+        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 5,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 6,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 7,
+        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 8,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 9,
+        "l_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",5500000],PARAMETER[\"false_north");
+    add_srs_wkt (p, 11,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"31275\"]]");
+    p = add_epsg_def (filter, first, last, 31276, "epsg", 31276,
+        "MGI / Balkans zone 6 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Balkans zone 6 (deprecated)\",GEOGCS[\"MG");
+    add_srs_wkt (p, 1,
+        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+    add_srs_wkt (p, 4,
+        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 5,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 6,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 7,
+        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 8,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 9,
+        "l_meridian\",18],PARAMETER[\"scale_factor\",0.9999],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",6500000],PARAMETER[\"false_north");
+    add_srs_wkt (p, 11,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"31276\"]]");
+    p = add_epsg_def (filter, first, last, 31277, "epsg", 31277,
+        "MGI / Balkans zone 7 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Balkans zone 7 (deprecated)\",GEOGCS[\"MG");
+    add_srs_wkt (p, 1,
+        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+    add_srs_wkt (p, 4,
+        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 5,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 6,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 7,
+        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 8,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 9,
+        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",7500000],PARAMETER[\"false_north");
+    add_srs_wkt (p, 11,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"31277\"]]");
+    p = add_epsg_def (filter, first, last, 31278, "epsg", 31278,
+        "MGI / Balkans zone 8 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG");
+    add_srs_wkt (p, 1,
+        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+    add_srs_wkt (p, 4,
+        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 5,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 6,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 7,
+        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 8,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 9,
+        "l_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",7500000],PARAMETER[\"false_north");
+    add_srs_wkt (p, 11,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"31278\"]]");
+    p = add_epsg_def (filter, first, last, 31279, "epsg", 31279,
+        "MGI / Balkans zone 8 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG");
+    add_srs_wkt (p, 1,
+        "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5");
+    add_srs_wkt (p, 4,
+        ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 5,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 6,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 7,
+        "TY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 8,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 9,
+        "l_meridian\",24],PARAMETER[\"scale_factor\",0.9999],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",8500000],PARAMETER[\"false_north");
+    add_srs_wkt (p, 11,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"31279\"]]");
+    p = add_epsg_def (filter, first, last, 31281, "epsg", 31281,
+        "MGI (Ferro) / Austria West Zone");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps");
+    add_proj4text (p, 1,
+        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria West Zone\",GEOGCS[\"MGI ");
+    add_srs_wkt (p, 1,
+        "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\"");
+    add_srs_wkt (p, 2,
+        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
+    add_srs_wkt (p, 3,
+        "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666");
+    add_srs_wkt (p, 5,
+        "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",28],PARAMETER[\"scale_factor\",1],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"31281\"]]");
+    p = add_epsg_def (filter, first, last, 31282, "epsg", 31282,
+        "MGI (Ferro) / Austria Central Zone");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps");
+    add_proj4text (p, 1,
+        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria Central Zone\",GEOGCS[\"M");
+    add_srs_wkt (p, 1,
+        "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr");
+    add_srs_wkt (p, 2,
+        "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT");
+    add_srs_wkt (p, 3,
+        "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666");
+    add_srs_wkt (p, 5,
+        "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 6,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 7,
+        "ITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 8,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 9,
+        "ral_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY");
+    add_srs_wkt (p, 12,
+        "[\"EPSG\",\"31282\"]]");
+    p = add_epsg_def (filter, first, last, 31283, "epsg", 31283,
+        "MGI (Ferro) / Austria East Zone");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps");
+    add_proj4text (p, 1,
+        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria East Zone\",GEOGCS[\"MGI ");
+    add_srs_wkt (p, 1,
+        "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\"");
+    add_srs_wkt (p, 2,
+        ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR");
+    add_srs_wkt (p, 3,
+        "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666");
+    add_srs_wkt (p, 5,
+        "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",34],PARAMETER[\"scale_factor\",1],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"false_easting\",0],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"31283\"]]");
+    p = add_epsg_def (filter, first, last, 31284, "epsg", 31284,
+        "MGI / Austria M28");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria M28\",GEOGCS[\"MGI\",DATUM[\"Mili");
+    add_srs_wkt (p, 1,
+        "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6");
+    add_srs_wkt (p, 2,
+        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 5,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 6,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 7,
+        "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+    add_srs_wkt (p, 9,
+        "0.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",150000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"31284\"]]");
+    p = add_epsg_def (filter, first, last, 31285, "epsg", 31285,
+        "MGI / Austria M31");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria M31\",GEOGCS[\"MGI\",DATUM[\"Mili");
+    add_srs_wkt (p, 1,
+        "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6");
+    add_srs_wkt (p, 2,
+        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 5,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 6,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 7,
+        "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+    add_srs_wkt (p, 9,
+        "3.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",450000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"31285\"]]");
+    p = add_epsg_def (filter, first, last, 31286, "epsg", 31286,
+        "MGI / Austria M34");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria M34\",GEOGCS[\"MGI\",DATUM[\"Mili");
+    add_srs_wkt (p, 1,
+        "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6");
+    add_srs_wkt (p, 2,
+        "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 5,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 6,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 7,
+        "312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1");
+    add_srs_wkt (p, 9,
+        "6.33333333333333],PARAMETER[\"scale_factor\",1],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",750000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"31286\"]]");
+    p = add_epsg_def (filter, first, last, 31287, "epsg", 31287,
+        "MGI / Austria Lambert");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333");
+    add_proj4text (p, 1,
+        "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel ");
+    add_proj4text (p, 2,
+        "+units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria Lambert\",GEOGCS[\"MGI\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+    add_srs_wkt (p, 2,
+        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 5,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 6,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"4312\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 8,
+        "PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"standa");
+    add_srs_wkt (p, 9,
+        "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",47.");
+    add_srs_wkt (p, 10,
+        "5],PARAMETER[\"central_meridian\",13.33333333333333],PAR");
+    add_srs_wkt (p, 11,
+        "AMETER[\"false_easting\",400000],PARAMETER[\"false_north");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32559\"]]");
-    p = add_epsg_def (filter, first, last, 32560, "epsg", 32560,
-        "WGS 72BE / UTM zone 60S");
+        "ing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001");
+    add_srs_wkt (p, 13,
+        "\"]],AUTHORITY[\"EPSG\",\"31287\"]]");
+    p = add_epsg_def (filter, first, last, 31288, "epsg", 31288,
+        "MGI (Ferro) / M28");
     add_proj4text (p, 0,
-        "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +");
     add_proj4text (p, 1,
-        "0,0,0.814,-0.38 +units=m +no_defs");
+        "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
     add_srs_wkt (p, 0,
-        "PROJCS[\"WGS 72BE / UTM zone 60S\",GEOGCS[\"WGS 72BE\",D");
+        "PROJCS[\"MGI (Ferro) / M28\",GEOGCS[\"MGI (Ferro)\",DATU");
     add_srs_wkt (p, 1,
-        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+        "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be");
     add_srs_wkt (p, 2,
-        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+        "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
     add_srs_wkt (p, 3,
-        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+        "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\"");
     add_srs_wkt (p, 4,
-        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+        ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT");
     add_srs_wkt (p, 5,
-        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+        "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433");
     add_srs_wkt (p, 6,
-        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805");
     add_srs_wkt (p, 7,
-        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
     add_srs_wkt (p, 8,
-        ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f");
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",28],");
     add_srs_wkt (p, 9,
-        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
     add_srs_wkt (p, 10,
-        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+        ",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
     add_srs_wkt (p, 11,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"312");
+    add_srs_wkt (p, 12,
+        "88\"]]");
+    p = add_epsg_def (filter, first, last, 31289, "epsg", 31289,
+        "MGI (Ferro) / M31");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / M31\",GEOGCS[\"MGI (Ferro)\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be");
+    add_srs_wkt (p, 2,
+        "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 3,
+        "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 4,
+        ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT");
+    add_srs_wkt (p, 5,
+        "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433");
+    add_srs_wkt (p, 6,
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805");
+    add_srs_wkt (p, 7,
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+    add_srs_wkt (p, 8,
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",31],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 10,
+        ",450000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+    add_srs_wkt (p, 11,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"312");
+    add_srs_wkt (p, 12,
+        "89\"]]");
+    p = add_epsg_def (filter, first, last, 31290, "epsg", 31290,
+        "MGI (Ferro) / M34");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un");
+    add_proj4text (p, 2,
+        "its=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / M34\",GEOGCS[\"MGI (Ferro)\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be");
+    add_srs_wkt (p, 2,
+        "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 3,
+        "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 4,
+        ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT");
+    add_srs_wkt (p, 5,
+        "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433");
+    add_srs_wkt (p, 6,
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4805");
+    add_srs_wkt (p, 7,
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+    add_srs_wkt (p, 8,
+        "itude_of_origin\",0],PARAMETER[\"central_meridian\",34],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 10,
+        ",750000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+    add_srs_wkt (p, 11,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"312");
+    add_srs_wkt (p, 12,
+        "90\"]]");
+    p = add_epsg_def (filter, first, last, 31291, "epsg", 31291,
+        "MGI (Ferro) / Austria West Zone (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps");
+    add_proj4text (p, 1,
+        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria West Zone (deprecated)\",");
+    add_srs_wkt (p, 1,
+        "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins");
+    add_srs_wkt (p, 2,
+        "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1");
+    add_srs_wkt (p, 3,
+        "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48");
+    add_srs_wkt (p, 4,
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\"");
+    add_srs_wkt (p, 5,
+        ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"");
+    add_srs_wkt (p, 6,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 7,
+        "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_");
+    add_srs_wkt (p, 8,
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+    add_srs_wkt (p, 9,
+        "R[\"central_meridian\",28],PARAMETER[\"scale_factor\",1]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 11,
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 12,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 13,
+        "1291\"]]");
+    p = add_epsg_def (filter, first, last, 31292, "epsg", 31292,
+        "MGI (Ferro) / Austria Central Zone (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps");
+    add_proj4text (p, 1,
+        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria Central Zone (deprecated)");
+    add_srs_wkt (p, 1,
+        "\",GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_");
+    add_srs_wkt (p, 2,
+        "Institut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,29");
+    add_srs_wkt (p, 3,
+        "9.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203");
+    add_srs_wkt (p, 4,
+        ",480,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Fer");
+    add_srs_wkt (p, 5,
+        "ro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UN");
+    add_srs_wkt (p, 6,
+        "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91");
+    add_srs_wkt (p, 7,
+        "22\"]],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transv");
+    add_srs_wkt (p, 8,
+        "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"central_meridian\",31],PARAMETER[\"scale_factor");
+    add_srs_wkt (p, 10,
+        "\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 12,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31292\"]]");
+    p = add_epsg_def (filter, first, last, 31293, "epsg", 31293,
+        "MGI (Ferro) / Austria East Zone (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps");
+    add_proj4text (p, 1,
+        "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m");
+    add_proj4text (p, 2,
+        " +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI (Ferro) / Austria East Zone (deprecated)\",");
+    add_srs_wkt (p, 1,
+        "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins");
+    add_srs_wkt (p, 2,
+        "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1");
+    add_srs_wkt (p, 3,
+        "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48");
+    add_srs_wkt (p, 4,
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\"");
+    add_srs_wkt (p, 5,
+        ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"");
+    add_srs_wkt (p, 6,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 7,
+        "],AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_");
+    add_srs_wkt (p, 8,
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE");
+    add_srs_wkt (p, 9,
+        "R[\"central_meridian\",34],PARAMETER[\"scale_factor\",1]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 11,
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 12,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 13,
+        "1293\"]]");
+    p = add_epsg_def (filter, first, last, 31294, "epsg", 31294,
+        "MGI / M28 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "150000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / M28 (deprecated)\",GEOGCS[\"MGI\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+    add_srs_wkt (p, 2,
+        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 5,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 6,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 9,
+        "\",10.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",150000],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 11,
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 12,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 13,
+        "1294\"]]");
+    p = add_epsg_def (filter, first, last, 31295, "epsg", 31295,
+        "MGI / M31 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "450000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / M31 (deprecated)\",GEOGCS[\"MGI\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+    add_srs_wkt (p, 2,
+        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 5,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 6,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 9,
+        "\",13.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",450000],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 11,
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 12,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 13,
+        "1295\"]]");
+    p = add_epsg_def (filter, first, last, 31296, "epsg", 31296,
+        "MGI / M34 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=");
+    add_proj4text (p, 1,
+        "750000 +y_0=0 +datum=hermannskogel +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / M34 (deprecated)\",GEOGCS[\"MGI\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841");
+    add_srs_wkt (p, 2,
+        "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]");
+    add_srs_wkt (p, 3,
+        ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232");
+    add_srs_wkt (p, 4,
+        "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 5,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 6,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 7,
+        ",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 8,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 9,
+        "\",16.33333333333333],PARAMETER[\"scale_factor\",1],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_easting\",750000],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 11,
+        "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 12,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 13,
+        "1296\"]]");
+    p = add_epsg_def (filter, first, last, 31297, "epsg", 31297,
+        "MGI / Austria Lambert (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333");
+    add_proj4text (p, 1,
+        "3333333333 +x_0=400000 +y_0=400000 +datum=hermannskogel ");
+    add_proj4text (p, 2,
+        "+units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"MGI / Austria Lambert (deprecated)\",GEOGCS[\"M");
+    add_srs_wkt (p, 1,
+        "GI\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[");
+    add_srs_wkt (p, 2,
+        "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 3,
+        "\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474");
+    add_srs_wkt (p, 4,
+        ",5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 5,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 6,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 7,
+        "ITY[\"EPSG\",\"4312\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 8,
+        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_");
+    add_srs_wkt (p, 10,
+        "origin\",47.5],PARAMETER[\"central_meridian\",13.3333333");
+    add_srs_wkt (p, 11,
+        "3333333],PARAMETER[\"false_easting\",400000],PARAMETER[\"");
+    add_srs_wkt (p, 12,
+        "false_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+    add_srs_wkt (p, 13,
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+    add_srs_wkt (p, 14,
+        "RITY[\"EPSG\",\"31297\"]]");
+    p = add_epsg_def (filter, first, last, 31300, "epsg", 31300,
+        "Belge 1972 / Belge Lambert 72");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666");
+    add_proj4text (p, 1,
+        "666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256");
+    add_proj4text (p, 2,
+        " +y_0=5400088.4378 +ellps=intl +towgs84=-106.869,52.2978");
+    add_proj4text (p, 3,
+        ",-103.724,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Belge 1972 / Belge Lambert 72\",GEOGCS[\"Belge ");
+    add_srs_wkt (p, 1,
+        "1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"I");
+    add_srs_wkt (p, 2,
+        "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702");
+    add_srs_wkt (p, 3,
+        "2\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1.");
+    add_srs_wkt (p, 4,
+        "8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gre");
+    add_srs_wkt (p, 5,
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 6,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 7,
+        "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 8,
+        "onic_2SP_Belgium\"],PARAMETER[\"standard_parallel_1\",49");
+    add_srs_wkt (p, 9,
+        ".83333333333334],PARAMETER[\"standard_parallel_2\",51.16");
+    add_srs_wkt (p, 10,
+        "666666666666],PARAMETER[\"latitude_of_origin\",90],PARAM");
+    add_srs_wkt (p, 11,
+        "ETER[\"central_meridian\",4.356939722222222],PARAMETER[\"");
+    add_srs_wkt (p, 12,
+        "false_easting\",150000.01256],PARAMETER[\"false_northing");
+    add_srs_wkt (p, 13,
+        "\",5400088.4378],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+    add_srs_wkt (p, 14,
+        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 15,
+        "PSG\",\"31300\"]]");
+    p = add_epsg_def (filter, first, last, 31370, "epsg", 31370,
+        "Belge 1972 / Belgian Lambert 72");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la");
+    add_proj4text (p, 1,
+        "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540");
+    add_proj4text (p, 2,
+        "0088.438 +ellps=intl +towgs84=-106.869,52.2978,-103.724,");
+    add_proj4text (p, 3,
+        "0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\"Belg");
+    add_srs_wkt (p, 1,
+        "e 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "22\"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1");
+    add_srs_wkt (p, 4,
+        ".8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 5,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 6,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 7,
+        "ITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 8,
+        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",51.1666672");
+    add_srs_wkt (p, 9,
+        "3333333],PARAMETER[\"standard_parallel_2\",49.8333339],P");
+    add_srs_wkt (p, 10,
+        "ARAMETER[\"latitude_of_origin\",90],PARAMETER[\"central_");
+    add_srs_wkt (p, 11,
+        "meridian\",4.367486666666666],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 12,
+        ",150000.013],PARAMETER[\"false_northing\",5400088.438],U");
+    add_srs_wkt (p, 13,
+        "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 14,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\"]]");
+    p = add_epsg_def (filter, first, last, 31461, "epsg", 31461,
+        "DHDN / 3-degree Gauss zone 1 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss zone 1 (deprecated)\",GEO");
+    add_srs_wkt (p, 1,
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+    add_srs_wkt (p, 2,
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+    add_srs_wkt (p, 4,
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 5,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",1500000],PARAMETER[\"false_northing\",0]");
+    add_srs_wkt (p, 11,
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+    add_srs_wkt (p, 12,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31461\"]");
+    add_srs_wkt (p, 13,
+        "]");
+    p = add_epsg_def (filter, first, last, 31462, "epsg", 31462,
+        "DHDN / 3-degree Gauss zone 2 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss zone 2 (deprecated)\",GEO");
+    add_srs_wkt (p, 1,
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+    add_srs_wkt (p, 2,
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+    add_srs_wkt (p, 4,
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 5,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",2500000],PARAMETER[\"false_northing\",0]");
+    add_srs_wkt (p, 11,
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+    add_srs_wkt (p, 12,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31462\"]");
+    add_srs_wkt (p, 13,
+        "]");
+    p = add_epsg_def (filter, first, last, 31463, "epsg", 31463,
+        "DHDN / 3-degree Gauss zone 3 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss zone 3 (deprecated)\",GEO");
+    add_srs_wkt (p, 1,
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+    add_srs_wkt (p, 2,
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+    add_srs_wkt (p, 4,
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 5,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",3500000],PARAMETER[\"false_northing\",0]");
+    add_srs_wkt (p, 11,
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+    add_srs_wkt (p, 12,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31463\"]");
+    add_srs_wkt (p, 13,
+        "]");
+    p = add_epsg_def (filter, first, last, 31464, "epsg", 31464,
+        "DHDN / 3-degree Gauss zone 4 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss zone 4 (deprecated)\",GEO");
+    add_srs_wkt (p, 1,
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+    add_srs_wkt (p, 2,
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+    add_srs_wkt (p, 4,
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 5,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"false_easting\",4500000],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 11,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31464\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 31465, "epsg", 31465,
+        "DHDN / 3-degree Gauss zone 5 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss zone 5 (deprecated)\",GEO");
+    add_srs_wkt (p, 1,
+        "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER");
+    add_srs_wkt (p, 2,
+        "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-");
+    add_srs_wkt (p, 4,
+        "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 5,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 6,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 7,
+        "[\"EPSG\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central");
+    add_srs_wkt (p, 9,
+        "_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"false_easting\",5500000],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 11,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31465\"");
+    add_srs_wkt (p, 13,
+        "]]");
+    p = add_epsg_def (filter, first, last, 31466, "epsg", 31466,
+        "DHDN / 3-degree Gauss-Kruger zone 2");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+    add_srs_wkt (p, 4,
+        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+    add_srs_wkt (p, 5,
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+    add_srs_wkt (p, 6,
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 7,
+        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 9,
+        "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 11,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
     add_srs_wkt (p, 12,
-        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32560\"]]");
+        "PSG\",\"31466\"]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_41.c b/src/srsinit/epsg_inlined_41.c
new file mode 100644
index 0000000..8d66ab2
--- /dev/null
+++ b/src/srsinit/epsg_inlined_41.c
@@ -0,0 +1,3600 @@
+/*
+
+ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
+
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+
+Portions created by the Initial Developer are Copyright (C) 2008
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+
+*/
+
+#include <spatialite_private.h>
+
+#ifndef OMIT_EPSG    /* full EPSG initialization enabled */
+
+SPATIALITE_PRIVATE void
+initialize_epsg_41 (int filter, struct epsg_defs **first, struct epsg_defs **last)
+{
+/* initializing the EPSG defs list */
+    struct epsg_defs *p;
+    p = add_epsg_def (filter, first, last, 31467, "epsg", 31467,
+        "DHDN / 3-degree Gauss-Kruger zone 3");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+    add_srs_wkt (p, 4,
+        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+    add_srs_wkt (p, 5,
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+    add_srs_wkt (p, 6,
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 7,
+        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 9,
+        "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 11,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"31467\"]]");
+    p = add_epsg_def (filter, first, last, 31468, "epsg", 31468,
+        "DHDN / 3-degree Gauss-Kruger zone 4");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+    add_srs_wkt (p, 4,
+        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+    add_srs_wkt (p, 5,
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+    add_srs_wkt (p, 6,
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 7,
+        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 9,
+        "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+    add_srs_wkt (p, 10,
+        "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"31468\"]]");
+    p = add_epsg_def (filter, first, last, 31469, "epsg", 31469,
+        "DHDN / 3-degree Gauss-Kruger zone 5");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 ");
+    add_proj4text (p, 1,
+        "+datum=potsdam +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,");
+    add_srs_wkt (p, 4,
+        "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",");
+    add_srs_wkt (p, 5,
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+    add_srs_wkt (p, 6,
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 7,
+        "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 9,
+        "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+    add_srs_wkt (p, 10,
+        "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"31469\"]]");
+    p = add_epsg_def (filter, first, last, 31528, "epsg", 31528,
+        "Conakry 1905 / UTM zone 28N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,");
+    add_proj4text (p, 1,
+        "259,-9,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Conakry 1905 / UTM zone 28N\",GEOGCS[\"Conakry ");
+    add_srs_wkt (p, 1,
+        "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG");
+    add_srs_wkt (p, 2,
+        "N)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scal");
+    add_srs_wkt (p, 9,
+        "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P");
+    add_srs_wkt (p, 10,
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+    add_srs_wkt (p, 11,
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort");
+    add_srs_wkt (p, 12,
+        "hing\",NORTH],AUTHORITY[\"EPSG\",\"31528\"]]");
+    p = add_epsg_def (filter, first, last, 31529, "epsg", 31529,
+        "Conakry 1905 / UTM zone 29N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,");
+    add_proj4text (p, 1,
+        "259,-9,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Conakry 1905 / UTM zone 29N\",GEOGCS[\"Conakry ");
+    add_srs_wkt (p, 1,
+        "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG");
+    add_srs_wkt (p, 2,
+        "N)\",6378249.2,293.4660212936265,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 4,
+        "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890");
+    add_srs_wkt (p, 5,
+        "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"9122\"]],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION[");
+    add_srs_wkt (p, 7,
+        "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\"");
+    add_srs_wkt (p, 8,
+        ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale");
+    add_srs_wkt (p, 9,
+        "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North");
+    add_srs_wkt (p, 12,
+        "ing\",NORTH],AUTHORITY[\"EPSG\",\"31529\"]]");
+    p = add_epsg_def (filter, first, last, 31600, "epsg", 31600,
+        "Dealul Piscului 1930 / Stereo 33");
+    add_proj4text (p, 0,
+        "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9");
+    add_proj4text (p, 1,
+        "996667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103.");
+    add_proj4text (p, 2,
+        "25,-100.4,-307.19,0,0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Dealul Piscului 1930 / Stereo 33\",GEOGCS[\"Dea");
+    add_srs_wkt (p, 1,
+        "lul Piscului 1930\",DATUM[\"Dealul_Piscului_1930\",SPHER");
+    add_srs_wkt (p, 2,
+        "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 3,
+        ",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+    add_srs_wkt (p, 5,
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+    add_srs_wkt (p, 6,
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4316");
+    add_srs_wkt (p, 7,
+        "\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"l");
+    add_srs_wkt (p, 8,
+        "atitude_of_origin\",45.9],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",25.39246588888889],PARAMETER[\"scale_factor\",0.9996667");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+    add_srs_wkt (p, 11,
+        "northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"31600\"]]");
+    p = add_epsg_def (filter, first, last, 31700, "epsg", 31700,
+        "Dealul Piscului 1970/ Stereo 70 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 ");
+    add_proj4text (p, 1,
+        "+y_0=500000 +ellps=krass +towgs84=28,-121,-77,0,0,0,0 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"Dealul Piscului 1970/ Stereo 70 (deprecated)\",");
+    add_srs_wkt (p, 1,
+        "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_");
+    add_srs_wkt (p, 2,
+        "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR");
+    add_srs_wkt (p, 3,
+        "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR");
+    add_srs_wkt (p, 5,
+        "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994");
+    add_srs_wkt (p, 6,
+        "33,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"43");
+    add_srs_wkt (p, 7,
+        "17\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "latitude_of_origin\",46],PARAMETER[\"central_meridian\",");
+    add_srs_wkt (p, 9,
+        "25],PARAMETER[\"scale_factor\",0.99975],PARAMETER[\"fals");
+    add_srs_wkt (p, 10,
+        "e_easting\",500000],PARAMETER[\"false_northing\",500000]");
+    add_srs_wkt (p, 11,
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"31700\"]]");
+    p = add_epsg_def (filter, first, last, 31838, "epsg", 31838,
+        "NGN / UTM zone 38N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0");
+    add_proj4text (p, 1,
+        ",0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NGN / UTM zone 38N\",GEOGCS[\"NGN\",DATUM[\"Nat");
+    add_srs_wkt (p, 1,
+        "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298");
+    add_srs_wkt (p, 2,
+        ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5");
+    add_srs_wkt (p, 3,
+        ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no");
+    add_srs_wkt (p, 10,
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 11,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"31838\"]]");
+    p = add_epsg_def (filter, first, last, 31839, "epsg", 31839,
+        "NGN / UTM zone 39N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0");
+    add_proj4text (p, 1,
+        ",0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NGN / UTM zone 39N\",GEOGCS[\"NGN\",DATUM[\"Nat");
+    add_srs_wkt (p, 1,
+        "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298");
+    add_srs_wkt (p, 2,
+        ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5");
+    add_srs_wkt (p, 3,
+        ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no");
+    add_srs_wkt (p, 10,
+        "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 11,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"31839\"]]");
+    p = add_epsg_def (filter, first, last, 31900, "epsg", 31900,
+        "KUDAMS / KTM (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_");
+    add_proj4text (p, 1,
+        "0=0 +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=");
+    add_proj4text (p, 2,
+        "m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"KUDAMS / KTM (deprecated)\",GEOGCS[\"KUDAMS\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"Kuwait_Utility\",SPHEROID[\"GRS 1980\",6378137,29");
+    add_srs_wkt (p, 2,
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,");
+    add_srs_wkt (p, 3,
+        "11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4319\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 7,
+        "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c");
+    add_srs_wkt (p, 8,
+        "entral_meridian\",48],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 10,
+        "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"");
+    add_srs_wkt (p, 11,
+        "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"31900\"]]");
+    p = add_epsg_def (filter, first, last, 31901, "epsg", 31901,
+        "KUDAMS / KTM");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +");
+    add_proj4text (p, 1,
+        "ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"KUDAMS / KTM\",GEOGCS[\"KUDAMS\",DATUM[\"Kuwait");
+    add_srs_wkt (p, 1,
+        "_Utility\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A");
+    add_srs_wkt (p, 2,
+        "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,11.3,2.4,0,0,");
+    add_srs_wkt (p, 3,
+        "0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"Greenwich\",");
+    add_srs_wkt (p, 4,
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+    add_srs_wkt (p, 5,
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"4319\"]],PROJECTION[\"Transverse_Mercator\"],PARAM");
+    add_srs_wkt (p, 7,
+        "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 8,
+        "ian\",48],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "31901\"]]");
+    p = add_epsg_def (filter, first, last, 31965, "epsg", 31965,
+        "SIRGAS 2000 / UTM zone 11N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 11N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 11,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 12,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"31965\"]]");
+    p = add_epsg_def (filter, first, last, 31966, "epsg", 31966,
+        "SIRGAS 2000 / UTM zone 12N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 12N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 11,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 12,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"31966\"]]");
+    p = add_epsg_def (filter, first, last, 31967, "epsg", 31967,
+        "SIRGAS 2000 / UTM zone 13N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 13N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 11,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 12,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 13,
+        "\"31967\"]]");
+    p = add_epsg_def (filter, first, last, 31968, "epsg", 31968,
+        "SIRGAS 2000 / UTM zone 14N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 14N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31968\"]]");
+    p = add_epsg_def (filter, first, last, 31969, "epsg", 31969,
+        "SIRGAS 2000 / UTM zone 15N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 15N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31969\"]]");
+    p = add_epsg_def (filter, first, last, 31970, "epsg", 31970,
+        "SIRGAS 2000 / UTM zone 16N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 16N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31970\"]]");
+    p = add_epsg_def (filter, first, last, 31971, "epsg", 31971,
+        "SIRGAS 2000 / UTM zone 17N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 17N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31971\"]]");
+    p = add_epsg_def (filter, first, last, 31972, "epsg", 31972,
+        "SIRGAS 2000 / UTM zone 18N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 18N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31972\"]]");
+    p = add_epsg_def (filter, first, last, 31973, "epsg", 31973,
+        "SIRGAS 2000 / UTM zone 19N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 19N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31973\"]]");
+    p = add_epsg_def (filter, first, last, 31974, "epsg", 31974,
+        "SIRGAS 2000 / UTM zone 20N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 20N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31974\"]]");
+    p = add_epsg_def (filter, first, last, 31975, "epsg", 31975,
+        "SIRGAS 2000 / UTM zone 21N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 21N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31975\"]]");
+    p = add_epsg_def (filter, first, last, 31976, "epsg", 31976,
+        "SIRGAS 2000 / UTM zone 22N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 22N\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 11,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 12,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "31976\"]]");
+    p = add_epsg_def (filter, first, last, 31977, "epsg", 31977,
+        "SIRGAS 2000 / UTM zone 17S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 17S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31977\"]]");
+    p = add_epsg_def (filter, first, last, 31978, "epsg", 31978,
+        "SIRGAS 2000 / UTM zone 18S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 18S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31978\"]]");
+    p = add_epsg_def (filter, first, last, 31979, "epsg", 31979,
+        "SIRGAS 2000 / UTM zone 19S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 19S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31979\"]]");
+    p = add_epsg_def (filter, first, last, 31980, "epsg", 31980,
+        "SIRGAS 2000 / UTM zone 20S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 20S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31980\"]]");
+    p = add_epsg_def (filter, first, last, 31981, "epsg", 31981,
+        "SIRGAS 2000 / UTM zone 21S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 21S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31981\"]]");
+    p = add_epsg_def (filter, first, last, 31982, "epsg", 31982,
+        "SIRGAS 2000 / UTM zone 22S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 22S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31982\"]]");
+    p = add_epsg_def (filter, first, last, 31983, "epsg", 31983,
+        "SIRGAS 2000 / UTM zone 23S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 23S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31983\"]]");
+    p = add_epsg_def (filter, first, last, 31984, "epsg", 31984,
+        "SIRGAS 2000 / UTM zone 24S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 24S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31984\"]]");
+    p = add_epsg_def (filter, first, last, 31985, "epsg", 31985,
+        "SIRGAS 2000 / UTM zone 25S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 2000 / UTM zone 25S\",GEOGCS[\"SIRGAS 20");
+    add_srs_wkt (p, 1,
+        "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_");
+    add_srs_wkt (p, 2,
+        "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222");
+    add_srs_wkt (p, 3,
+        "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]");
+    add_srs_wkt (p, 4,
+        ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 5,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 6,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 7,
+        "\"4674\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 9,
+        ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 11,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"31985\"]]");
+    p = add_epsg_def (filter, first, last, 31986, "epsg", 31986,
+        "SIRGAS 1995 / UTM zone 17N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 17N\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+    add_srs_wkt (p, 12,
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31986\"]]");
+    p = add_epsg_def (filter, first, last, 31987, "epsg", 31987,
+        "SIRGAS 1995 / UTM zone 18N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 18N\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+    add_srs_wkt (p, 12,
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31987\"]]");
+    p = add_epsg_def (filter, first, last, 31988, "epsg", 31988,
+        "SIRGAS 1995 / UTM zone 19N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 19N\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+    add_srs_wkt (p, 12,
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31988\"]]");
+    p = add_epsg_def (filter, first, last, 31989, "epsg", 31989,
+        "SIRGAS 1995 / UTM zone 20N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 20N\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+    add_srs_wkt (p, 12,
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31989\"]]");
+    p = add_epsg_def (filter, first, last, 31990, "epsg", 31990,
+        "SIRGAS 1995 / UTM zone 21N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 21N\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+    add_srs_wkt (p, 12,
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31990\"]]");
+    p = add_epsg_def (filter, first, last, 31991, "epsg", 31991,
+        "SIRGAS 1995 / UTM zone 22N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +");
+    add_proj4text (p, 1,
+        "units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 22N\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 11,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea");
+    add_srs_wkt (p, 12,
+        "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"31991\"]]");
+    p = add_epsg_def (filter, first, last, 31992, "epsg", 31992,
+        "SIRGAS 1995 / UTM zone 17S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 17S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31992\"]]");
+    p = add_epsg_def (filter, first, last, 31993, "epsg", 31993,
+        "SIRGAS 1995 / UTM zone 18S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 18S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31993\"]]");
+    p = add_epsg_def (filter, first, last, 31994, "epsg", 31994,
+        "SIRGAS 1995 / UTM zone 19S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 19S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31994\"]]");
+    p = add_epsg_def (filter, first, last, 31995, "epsg", 31995,
+        "SIRGAS 1995 / UTM zone 20S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 20S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31995\"]]");
+    p = add_epsg_def (filter, first, last, 31996, "epsg", 31996,
+        "SIRGAS 1995 / UTM zone 21S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 21S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31996\"]]");
+    p = add_epsg_def (filter, first, last, 31997, "epsg", 31997,
+        "SIRGAS 1995 / UTM zone 22S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 22S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31997\"]]");
+    p = add_epsg_def (filter, first, last, 31998, "epsg", 31998,
+        "SIRGAS 1995 / UTM zone 23S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 23S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31998\"]]");
+    p = add_epsg_def (filter, first, last, 31999, "epsg", 31999,
+        "SIRGAS 1995 / UTM zone 24S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 24S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"31999\"]]");
+    p = add_epsg_def (filter, first, last, 32000, "epsg", 32000,
+        "SIRGAS 1995 / UTM zone 25S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,");
+    add_proj4text (p, 1,
+        "0,0,0 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"SIRGAS 1995 / UTM zone 25S\",GEOGCS[\"SIRGAS 19");
+    add_srs_wkt (p, 1,
+        "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer");
+    add_srs_wkt (p, 2,
+        "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257");
+    add_srs_wkt (p, 3,
+        "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0");
+    add_srs_wkt (p, 4,
+        ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532");
+    add_srs_wkt (p, 6,
+        "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 7,
+        "\",\"4170\"]],PROJECTION[\"Transverse_Mercator\"],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 9,
+        "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_easting\",500000],PARAMETER[\"false_northing\",100");
+    add_srs_wkt (p, 11,
+        "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 13,
+        "\"EPSG\",\"32000\"]]");
+    p = add_epsg_def (filter, first, last, 32001, "epsg", 32001,
+        "NAD27 / Montana North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=4");
+    add_proj4text (p, 1,
+        "7 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Montana North\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+    add_srs_wkt (p, 7,
+        "ARAMETER[\"standard_parallel_1\",48.71666666666667],PARA");
+    add_srs_wkt (p, 8,
+        "METER[\"standard_parallel_2\",47.85],PARAMETER[\"latitud");
+    add_srs_wkt (p, 9,
+        "e_of_origin\",47],PARAMETER[\"central_meridian\",-109.5]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_");
+    add_srs_wkt (p, 11,
+        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+    add_srs_wkt (p, 12,
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 13,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32001\"]]");
+    p = add_epsg_def (filter, first, last, 32002, "epsg", 32002,
+        "NAD27 / Montana Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=4");
+    add_proj4text (p, 1,
+        "5.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y");
+    add_proj4text (p, 2,
+        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Montana Central\",GEOGCS[\"NAD27\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",47.88333333333333],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",46.45],PARAMETER[\"latitu");
+    add_srs_wkt (p, 9,
+        "de_of_origin\",45.83333333333334],PARAMETER[\"central_me");
+    add_srs_wkt (p, 10,
+        "ridian\",-109.5],PARAMETER[\"false_easting\",2000000],PA");
+    add_srs_wkt (p, 11,
+        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+    add_srs_wkt (p, 12,
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32002\"]]");
+    p = add_epsg_def (filter, first, last, 32003, "epsg", 32003,
+        "NAD27 / Montana South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44");
+    add_proj4text (p, 1,
+        " +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2");
+    add_proj4text (p, 2,
+        "7 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Montana South\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+    add_srs_wkt (p, 7,
+        "ARAMETER[\"standard_parallel_1\",46.4],PARAMETER[\"stand");
+    add_srs_wkt (p, 8,
+        "ard_parallel_2\",44.86666666666667],PARAMETER[\"latitude");
+    add_srs_wkt (p, 9,
+        "_of_origin\",44],PARAMETER[\"central_meridian\",-109.5],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n");
+    add_srs_wkt (p, 11,
+        "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32003\"]]");
+    p = add_epsg_def (filter, first, last, 32005, "epsg", 32005,
+        "NAD27 / Nebraska North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=4");
+    add_proj4text (p, 1,
+        "1.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Nebraska North\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",41.85],PARAMETER[\"sta");
+    add_srs_wkt (p, 8,
+        "ndard_parallel_2\",42.81666666666667],PARAMETER[\"latitu");
+    add_srs_wkt (p, 9,
+        "de_of_origin\",41.33333333333334],PARAMETER[\"central_me");
+    add_srs_wkt (p, 10,
+        "ridian\",-100],PARAMETER[\"false_easting\",2000000],PARA");
+    add_srs_wkt (p, 11,
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+    add_srs_wkt (p, 12,
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 13,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32005\"]]");
+    p = add_epsg_def (filter, first, last, 32006, "epsg", 32006,
+        "NAD27 / Nebraska South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.21");
+    add_proj4text (p, 2,
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Nebraska South\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",40.28333333333333],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",41.71666666666667],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",39.66666666666666],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"central_meridian\",-99.5],PARAMETER[\"false_easting\",");
+    add_srs_wkt (p, 11,
+        "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
+    add_srs_wkt (p, 12,
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"32006\"]]");
+    p = add_epsg_def (filter, first, last, 32007, "epsg", 32007,
+        "NAD27 / Nevada East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Nevada East\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",34.75],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999");
+    add_srs_wkt (p, 9,
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+    add_srs_wkt (p, 10,
+        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+    add_srs_wkt (p, 11,
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32007\"]]");
+    p = add_epsg_def (filter, first, last, 32008, "epsg", 32008,
+        "NAD27 / Nevada Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Nevada Central\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",34.75],PARAMETER[\"central_meri");
+    add_srs_wkt (p, 8,
+        "dian\",-116.6666666666667],PARAMETER[\"scale_factor\",0.");
+    add_srs_wkt (p, 9,
+        "9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
+    add_srs_wkt (p, 11,
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 12,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32008\"]]");
+    p = add_epsg_def (filter, first, last, 32009, "epsg", 32009,
+        "NAD27 / Nevada West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Nevada West\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",34.75],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999");
+    add_srs_wkt (p, 9,
+        "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_");
+    add_srs_wkt (p, 10,
+        "northing\",0],UNIT[\"US survey foot\",0.3048006096012192");
+    add_srs_wkt (p, 11,
+        ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32009\"]]");
+    p = add_epsg_def (filter, first, last, 32010, "epsg", 32010,
+        "NAD27 / New Hampshire");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9");
+    add_proj4text (p, 1,
+        "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni");
+    add_proj4text (p, 2,
+        "ts=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New Hampshire\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",42.5],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 8,
+        "an\",-71.66666666666667],PARAMETER[\"scale_factor\",0.99");
+    add_srs_wkt (p, 9,
+        "9966667],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+    add_srs_wkt (p, 11,
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32010\"]]");
+    p = add_epsg_def (filter, first, last, 32011, "epsg", 32011,
+        "NAD27 / New Jersey");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666");
+    add_proj4text (p, 1,
+        "666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New Jersey\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-74.66666666666667],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.999975],PARAMETER[\"false_easting\",2000000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3");
+    add_srs_wkt (p, 11,
+        "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 12,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32011\"]]");
+    p = add_epsg_def (filter, first, last, 32012, "epsg", 32012,
+        "NAD27 / New Mexico East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "909091 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+    add_proj4text (p, 2,
+        "=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New Mexico East\",GEOGCS[\"NAD27\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia");
+    add_srs_wkt (p, 8,
+        "n\",-104.3333333333333],PARAMETER[\"scale_factor\",0.999");
+    add_srs_wkt (p, 9,
+        "909091],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+    add_srs_wkt (p, 11,
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32012\"]]");
+    p = add_epsg_def (filter, first, last, 32013, "epsg", 32013,
+        "NAD27 / New Mexico Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=1524");
+    add_proj4text (p, 1,
+        "00.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New Mexico Central\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARA");
+    add_srs_wkt (p, 7,
+        "METER[\"latitude_of_origin\",31],PARAMETER[\"central_mer");
+    add_srs_wkt (p, 8,
+        "idian\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"false_easting\",500000],PARAMETER[\"false_northi");
+    add_srs_wkt (p, 10,
+        "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 12,
+        "TH],AUTHORITY[\"EPSG\",\"32013\"]]");
+    p = add_epsg_def (filter, first, last, 32014, "epsg", 32014,
+        "NAD27 / New Mexico West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "916667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+    add_proj4text (p, 2,
+        "=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New Mexico West\",GEOGCS[\"NAD27\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",31],PARAMETER[\"central_meridia");
+    add_srs_wkt (p, 8,
+        "n\",-107.8333333333333],PARAMETER[\"scale_factor\",0.999");
+    add_srs_wkt (p, 9,
+        "916667],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+    add_srs_wkt (p, 11,
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32014\"]]");
+    p = add_epsg_def (filter, first, last, 32015, "epsg", 32015,
+        "NAD27 / New York East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+    add_proj4text (p, 2,
+        "=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New York East\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-74.33333333333333],PARAMETER[\"scale_factor\",0.9999");
+    add_srs_wkt (p, 9,
+        "66667],PARAMETER[\"false_easting\",500000],PARAMETER[\"f");
+    add_srs_wkt (p, 10,
+        "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960");
+    add_srs_wkt (p, 11,
+        "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 12,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32015\"]]");
+    p = add_epsg_def (filter, first, last, 32016, "epsg", 32016,
+        "NAD27 / New York Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New York Central\",GEOGCS[\"NAD27\",DAT");
+    add_srs_wkt (p, 1,
+        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",40],PARAMETER[\"central_meridia");
+    add_srs_wkt (p, 8,
+        "n\",-76.58333333333333],PARAMETER[\"scale_factor\",0.999");
+    add_srs_wkt (p, 9,
+        "9375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601");
+    add_srs_wkt (p, 11,
+        "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 12,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32016\"]]");
+    p = add_epsg_def (filter, first, last, 32017, "epsg", 32017,
+        "NAD27 / New York West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u");
+    add_proj4text (p, 2,
+        "s-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New York West\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",40],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-78.58333333333333],PARAMETER[\"scale_factor\",0.9999");
+    add_srs_wkt (p, 9,
+        "375],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 11,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32017\"]]");
+    p = add_epsg_def (filter, first, last, 32018, "epsg", 32018,
+        "NAD27 / New York Long Island (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666");
+    add_proj4text (p, 1,
+        "666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0");
+    add_proj4text (p, 2,
+        " +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / New York Long Island (deprecated)\",GEO");
+    add_srs_wkt (p, 1,
+        "GCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHERO");
+    add_srs_wkt (p, 2,
+        "ID[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY");
+    add_srs_wkt (p, 3,
+        "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIME");
+    add_srs_wkt (p, 4,
+        "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d");
+    add_srs_wkt (p, 5,
+        "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]");
+    add_srs_wkt (p, 6,
+        ",AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conf");
+    add_srs_wkt (p, 7,
+        "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.");
+    add_srs_wkt (p, 8,
+        "03333333333333],PARAMETER[\"standard_parallel_2\",40.666");
+    add_srs_wkt (p, 9,
+        "66666666666],PARAMETER[\"latitude_of_origin\",40.5],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"central_meridian\",-74],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 11,
+        "g\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+    add_srs_wkt (p, 12,
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+    add_srs_wkt (p, 13,
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 14,
+        "G\",\"32018\"]]");
+    p = add_epsg_def (filter, first, last, 32019, "epsg", 32019,
+        "NAD27 / North Carolina");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666");
+    add_proj4text (p, 1,
+        "666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=");
+    add_proj4text (p, 2,
+        "0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / North Carolina\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",34.33333333333334],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",36.16666666666666],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",33.75],PARAMETER[\"central_me");
+    add_srs_wkt (p, 10,
+        "ridian\",-79],PARAMETER[\"false_easting\",2000000],PARAM");
+    add_srs_wkt (p, 11,
+        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
+    add_srs_wkt (p, 12,
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 13,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32019\"]]");
+    p = add_epsg_def (filter, first, last, 32020, "epsg", 32020,
+        "NAD27 / North Dakota North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=");
+    add_proj4text (p, 2,
+        "0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / North Dakota North\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",47.43333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",48.73333333333333],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_m");
+    add_srs_wkt (p, 10,
+        "eridian\",-100.5],PARAMETER[\"false_easting\",2000000],P");
+    add_srs_wkt (p, 11,
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+    add_srs_wkt (p, 12,
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+    add_srs_wkt (p, 13,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32020\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 32021, "epsg", 32021,
+        "NAD27 / North Dakota South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2");
+    add_proj4text (p, 2,
+        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / North Dakota South\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",46.18333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",47.48333333333333],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",45.66666666666666],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"central_meridian\",-100.5],PARAMETER[\"false_easti");
+    add_srs_wkt (p, 11,
+        "ng\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US ");
+    add_srs_wkt (p, 12,
+        "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90");
+    add_srs_wkt (p, 13,
+        "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP");
+    add_srs_wkt (p, 14,
+        "SG\",\"32021\"]]");
+    p = add_epsg_def (filter, first, last, 32022, "epsg", 32022,
+        "NAD27 / Ohio North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39");
+    add_proj4text (p, 1,
+        ".66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Ohio North\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+    add_srs_wkt (p, 7,
+        "METER[\"standard_parallel_1\",40.43333333333333],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"standard_parallel_2\",41.7],PARAMETER[\"latitude_of");
+    add_srs_wkt (p, 9,
+        "_origin\",39.66666666666666],PARAMETER[\"central_meridia");
+    add_srs_wkt (p, 10,
+        "n\",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+    add_srs_wkt (p, 11,
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+    add_srs_wkt (p, 12,
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32022\"]]");
+    p = add_epsg_def (filter, first, last, 32023, "epsg", 32023,
+        "NAD27 / Ohio South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0");
+    add_proj4text (p, 2,
+        " +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Ohio South\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+    add_srs_wkt (p, 7,
+        "METER[\"standard_parallel_1\",38.73333333333333],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"standard_parallel_2\",40.03333333333333],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"latitude_of_origin\",38],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 10,
+        ",-82.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"");
+    add_srs_wkt (p, 11,
+        "false_northing\",0],UNIT[\"US survey foot\",0.3048006096");
+    add_srs_wkt (p, 12,
+        "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 13,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32023\"]]");
+    p = add_epsg_def (filter, first, last, 32024, "epsg", 32024,
+        "NAD27 / Oklahoma North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +");
+    add_proj4text (p, 2,
+        "datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Oklahoma North\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",35.56666666666667],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",36.76666666666667],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",35],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 10,
+        "ian\",-98],PARAMETER[\"false_easting\",2000000],PARAMETE");
+    add_srs_wkt (p, 11,
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+    add_srs_wkt (p, 12,
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32024\"]]");
+    p = add_epsg_def (filter, first, last, 32025, "epsg", 32025,
+        "NAD27 / Oklahoma South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192");
+    add_proj4text (p, 2,
+        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Oklahoma South\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",33.93333333333333],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",35.23333333333333],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",33.33333333333334],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"central_meridian\",-98],PARAMETER[\"false_easting\",20");
+    add_srs_wkt (p, 11,
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey ");
+    add_srs_wkt (p, 12,
+        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "32025\"]]");
+    p = add_epsg_def (filter, first, last, 32026, "epsg", 32026,
+        "NAD27 / Oregon North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.6");
+    add_proj4text (p, 1,
+        "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=");
+    add_proj4text (p, 2,
+        "0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Oregon North\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+    add_srs_wkt (p, 7,
+        "AMETER[\"standard_parallel_1\",44.33333333333334],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"standard_parallel_2\",46],PARAMETER[\"latitude_of_");
+    add_srs_wkt (p, 9,
+        "origin\",43.66666666666666],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 10,
+        "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+    add_srs_wkt (p, 11,
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+    add_srs_wkt (p, 12,
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32026\"]]");
+    p = add_epsg_def (filter, first, last, 32027, "epsg", 32027,
+        "NAD27 / Oregon South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.6");
+    add_proj4text (p, 1,
+        "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=");
+    add_proj4text (p, 2,
+        "0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Oregon South\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+    add_srs_wkt (p, 7,
+        "AMETER[\"standard_parallel_1\",42.33333333333334],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"standard_parallel_2\",44],PARAMETER[\"latitude_of_");
+    add_srs_wkt (p, 9,
+        "origin\",41.66666666666666],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 10,
+        "\",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETE");
+    add_srs_wkt (p, 11,
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+    add_srs_wkt (p, 12,
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32027\"]]");
+    p = add_epsg_def (filter, first, last, 32028, "epsg", 32028,
+        "NAD27 / Pennsylvania North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=4");
+    add_proj4text (p, 1,
+        "0.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y");
+    add_proj4text (p, 2,
+        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Pennsylvania North\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",40.88333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",41.95],PARAMETER[\"la");
+    add_srs_wkt (p, 9,
+        "titude_of_origin\",40.16666666666666],PARAMETER[\"centra");
+    add_srs_wkt (p, 10,
+        "l_meridian\",-77.75],PARAMETER[\"false_easting\",2000000");
+    add_srs_wkt (p, 11,
+        "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\"");
+    add_srs_wkt (p, 12,
+        ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32028\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32029, "epsg", 32029,
+        "NAD27 / Pennsylvania South (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39");
+    add_proj4text (p, 1,
+        ".33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_");
+    add_proj4text (p, 2,
+        "0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Pennsylvania South (deprecated)\",GEOGC");
+    add_srs_wkt (p, 1,
+        "S[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID");
+    add_srs_wkt (p, 2,
+        "[\"Clarke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"");
+    add_srs_wkt (p, 3,
+        "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conforma");
+    add_srs_wkt (p, 7,
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.9333");
+    add_srs_wkt (p, 8,
+        "3333333333],PARAMETER[\"standard_parallel_2\",40.8],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"central_meridian\",-77.75],PARAMETER[\"false_easting");
+    add_srs_wkt (p, 11,
+        "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su");
+    add_srs_wkt (p, 12,
+        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
+    add_srs_wkt (p, 13,
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"32029\"]]");
+    p = add_epsg_def (filter, first, last, 32030, "epsg", 32030,
+        "NAD27 / Rhode Island");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9");
+    add_proj4text (p, 1,
+        "999938 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units");
+    add_proj4text (p, 2,
+        "=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Rhode Island\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",41.08333333333334],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-71.5],PARAMETER[\"scale_factor\",0.99999");
+    add_srs_wkt (p, 9,
+        "38],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals");
+    add_srs_wkt (p, 10,
+        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
+    add_srs_wkt (p, 11,
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32030\"]]");
+    p = add_epsg_def (filter, first, last, 32031, "epsg", 32031,
+        "NAD27 / South Carolina North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +");
+    add_proj4text (p, 2,
+        "datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / South Carolina North\",GEOGCS[\"NAD27\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+    add_srs_wkt (p, 2,
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
+    add_srs_wkt (p, 3,
+        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+    add_srs_wkt (p, 4,
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+    add_srs_wkt (p, 5,
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+    add_srs_wkt (p, 7,
+        "SP\"],PARAMETER[\"standard_parallel_1\",33.7666666666666");
+    add_srs_wkt (p, 8,
+        "7],PARAMETER[\"standard_parallel_2\",34.96666666666667],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"latitude_of_origin\",33],PARAMETER[\"central");
+    add_srs_wkt (p, 10,
+        "_meridian\",-81],PARAMETER[\"false_easting\",2000000],PA");
+    add_srs_wkt (p, 11,
+        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+    add_srs_wkt (p, 12,
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32031\"]]");
+    p = add_epsg_def (filter, first, last, 32033, "epsg", 32033,
+        "NAD27 / South Carolina South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666");
+    add_proj4text (p, 1,
+        "666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192");
+    add_proj4text (p, 2,
+        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / South Carolina South\",GEOGCS[\"NAD27\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+    add_srs_wkt (p, 2,
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
+    add_srs_wkt (p, 3,
+        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+    add_srs_wkt (p, 4,
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+    add_srs_wkt (p, 5,
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+    add_srs_wkt (p, 7,
+        "SP\"],PARAMETER[\"standard_parallel_1\",32.3333333333333");
+    add_srs_wkt (p, 8,
+        "4],PARAMETER[\"standard_parallel_2\",33.66666666666666],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"latitude_of_origin\",31.83333333333333],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 11,
+        "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+    add_srs_wkt (p, 12,
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+    add_srs_wkt (p, 13,
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 14,
+        "G\",\"32033\"]]");
+    p = add_epsg_def (filter, first, last, 32034, "epsg", 32034,
+        "NAD27 / South Dakota North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.219");
+    add_proj4text (p, 2,
+        "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / South Dakota North\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",44.41666666666666]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",45.68333333333333],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",43.83333333333334],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"central_meridian\",-100],PARAMETER[\"false_easting");
+    add_srs_wkt (p, 11,
+        "\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US su");
+    add_srs_wkt (p, 12,
+        "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003");
+    add_srs_wkt (p, 13,
+        "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 14,
+        "\",\"32034\"]]");
+    p = add_epsg_def (filter, first, last, 32035, "epsg", 32035,
+        "NAD27 / South Dakota South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42");
+    add_proj4text (p, 1,
+        ".33333333333334 +lon_0=-100.3333333333333 +x_0=609601.21");
+    add_proj4text (p, 2,
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / South Dakota South\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",42.83333333333334]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",44.4],PARAMETER[\"lat");
+    add_srs_wkt (p, 9,
+        "itude_of_origin\",42.33333333333334],PARAMETER[\"central");
+    add_srs_wkt (p, 10,
+        "_meridian\",-100.3333333333333],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 11,
+        "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+    add_srs_wkt (p, 12,
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+    add_srs_wkt (p, 13,
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 14,
+        "G\",\"32035\"]]");
+    p = add_epsg_def (filter, first, last, 32036, "epsg", 32036,
+        "NAD27 / Tennessee (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3");
+    add_proj4text (p, 1,
+        "4.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=");
+    add_proj4text (p, 2,
+        "0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Tennessee (deprecated)\",GEOGCS[\"NAD27");
+    add_srs_wkt (p, 1,
+        "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke");
+    add_srs_wkt (p, 2,
+        " 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 3,
+        "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic");
+    add_srs_wkt (p, 4,
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+    add_srs_wkt (p, 5,
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+    add_srs_wkt (p, 7,
+        "SP\"],PARAMETER[\"standard_parallel_1\",35.25],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"standard_parallel_2\",36.41666666666666],PARAMETER[\"");
+    add_srs_wkt (p, 9,
+        "latitude_of_origin\",34.66666666666666],PARAMETER[\"cent");
+    add_srs_wkt (p, 10,
+        "ral_meridian\",-86],PARAMETER[\"false_easting\",100000],");
+    add_srs_wkt (p, 11,
+        "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",");
+    add_srs_wkt (p, 12,
+        "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32036\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32037, "epsg", 32037,
+        "NAD27 / Texas North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3");
+    add_proj4text (p, 1,
+        "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+    add_srs_wkt (p, 7,
+        "AMETER[\"standard_parallel_1\",34.65],PARAMETER[\"standa");
+    add_srs_wkt (p, 8,
+        "rd_parallel_2\",36.18333333333333],PARAMETER[\"latitude_");
+    add_srs_wkt (p, 9,
+        "of_origin\",34],PARAMETER[\"central_meridian\",-101.5],P");
+    add_srs_wkt (p, 10,
+        "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no");
+    add_srs_wkt (p, 11,
+        "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32037\"]]");
+    p = add_epsg_def (filter, first, last, 32038, "epsg", 32038,
+        "NAD27 / Texas North Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.21");
+    add_proj4text (p, 2,
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Texas North Central\",GEOGCS[\"NAD27\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+    add_srs_wkt (p, 2,
+        "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",32.13333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",33.96666666666667],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",31.66666666666667],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"central_meridian\",-97.5],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 11,
+        "g\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US s");
+    add_srs_wkt (p, 12,
+        "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900");
+    add_srs_wkt (p, 13,
+        "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 14,
+        "G\",\"32038\"]]");
+    p = add_epsg_def (filter, first, last, 32039, "epsg", 32039,
+        "NAD27 / Texas Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +");
+    add_proj4text (p, 2,
+        "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +");
+    add_proj4text (p, 3,
+        "no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Texas Central\",GEOGCS[\"NAD27\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6");
+    add_srs_wkt (p, 2,
+        "378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],P");
+    add_srs_wkt (p, 7,
+        "ARAMETER[\"standard_parallel_1\",30.11666666666667],PARA");
+    add_srs_wkt (p, 8,
+        "METER[\"standard_parallel_2\",31.88333333333333],PARAMET");
+    add_srs_wkt (p, 9,
+        "ER[\"latitude_of_origin\",29.66666666666667],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "central_meridian\",-100.3333333333333],PARAMETER[\"false");
+    add_srs_wkt (p, 11,
+        "_easting\",2000000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 12,
+        "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 13,
+        ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY");
+    add_srs_wkt (p, 14,
+        "[\"EPSG\",\"32039\"]]");
+    p = add_epsg_def (filter, first, last, 32040, "epsg", 32040,
+        "NAD27 / Texas South Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192");
+    add_proj4text (p, 2,
+        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Texas South Central\",GEOGCS[\"NAD27\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+    add_srs_wkt (p, 2,
+        "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",28.38333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",30.28333333333333],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",27.83333333333333],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"central_meridian\",-99],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 11,
+        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+    add_srs_wkt (p, 12,
+        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 14,
+        ",\"32040\"]]");
+    p = add_epsg_def (filter, first, last, 32041, "epsg", 32041,
+        "NAD27 / Texas South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.21");
+    add_proj4text (p, 2,
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Texas South\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+    add_srs_wkt (p, 7,
+        "AMETER[\"standard_parallel_1\",26.16666666666667],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"standard_parallel_2\",27.83333333333333],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"latitude_of_origin\",25.66666666666667],PARAMETER[\"c");
+    add_srs_wkt (p, 10,
+        "entral_meridian\",-98.5],PARAMETER[\"false_easting\",200");
+    add_srs_wkt (p, 11,
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f");
+    add_srs_wkt (p, 12,
+        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 14,
+        "2041\"]]");
+    p = add_epsg_def (filter, first, last, 32042, "epsg", 32042,
+        "NAD27 / Utah North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2");
+    add_proj4text (p, 2,
+        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Utah North\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+    add_srs_wkt (p, 7,
+        "METER[\"standard_parallel_1\",40.71666666666667],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"standard_parallel_2\",41.78333333333333],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"latitude_of_origin\",40.33333333333334],PARAMETER[\"ce");
+    add_srs_wkt (p, 10,
+        "ntral_meridian\",-111.5],PARAMETER[\"false_easting\",200");
+    add_srs_wkt (p, 11,
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f");
+    add_srs_wkt (p, 12,
+        "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 14,
+        "2042\"]]");
+    p = add_epsg_def (filter, first, last, 32043, "epsg", 32043,
+        "NAD27 / Utah Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=3");
+    add_proj4text (p, 1,
+        "8.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y");
+    add_proj4text (p, 2,
+        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Utah Central\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR");
+    add_srs_wkt (p, 7,
+        "AMETER[\"standard_parallel_1\",39.01666666666667],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"standard_parallel_2\",40.65],PARAMETER[\"latitude_");
+    add_srs_wkt (p, 9,
+        "of_origin\",38.33333333333334],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 10,
+        "ian\",-111.5],PARAMETER[\"false_easting\",2000000],PARAM");
+    add_srs_wkt (p, 11,
+        "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304");
+    add_srs_wkt (p, 12,
+        "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 13,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32043\"]]");
+    p = add_epsg_def (filter, first, last, 32044, "epsg", 32044,
+        "NAD27 / Utah South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=3");
+    add_proj4text (p, 1,
+        "6.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y");
+    add_proj4text (p, 2,
+        "_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Utah South\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARA");
+    add_srs_wkt (p, 7,
+        "METER[\"standard_parallel_1\",37.21666666666667],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"standard_parallel_2\",38.35],PARAMETER[\"latitude_o");
+    add_srs_wkt (p, 9,
+        "f_origin\",36.66666666666666],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 10,
+        "an\",-111.5],PARAMETER[\"false_easting\",2000000],PARAME");
+    add_srs_wkt (p, 11,
+        "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048");
+    add_srs_wkt (p, 12,
+        "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA");
+    add_srs_wkt (p, 13,
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32044\"]]");
+    p = add_epsg_def (filter, first, last, 32045, "epsg", 32045,
+        "NAD27 / Vermont");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
+    add_proj4text (p, 1,
+        "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_");
+    add_proj4text (p, 2,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Vermont\",GEOGCS[\"NAD27\",DATUM[\"Nort");
+    add_srs_wkt (p, 1,
+        "h_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206");
+    add_srs_wkt (p, 2,
+        ".4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AUTHO");
+    add_srs_wkt (p, 3,
+        "RITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORIT");
+    add_srs_wkt (p, 4,
+        "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433");
+    add_srs_wkt (p, 5,
+        ",AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4267");
+    add_srs_wkt (p, 6,
+        "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat");
+    add_srs_wkt (p, 7,
+        "itude_of_origin\",42.5],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "72.5],PARAMETER[\"scale_factor\",0.999964286],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"false_easting\",500000],PARAMETER[\"false_northing\",0");
+    add_srs_wkt (p, 10,
+        "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 12,
+        "HORITY[\"EPSG\",\"32045\"]]");
+    p = add_epsg_def (filter, first, last, 32046, "epsg", 32046,
+        "NAD27 / Virginia North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37");
+    add_proj4text (p, 1,
+        ".66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Virginia North\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",38.03333333333333],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",39.2],PARAMETER[\"latitud");
+    add_srs_wkt (p, 9,
+        "e_of_origin\",37.66666666666666],PARAMETER[\"central_mer");
+    add_srs_wkt (p, 10,
+        "idian\",-78.5],PARAMETER[\"false_easting\",2000000],PARA");
+    add_srs_wkt (p, 11,
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+    add_srs_wkt (p, 12,
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 13,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32046\"]]");
+    p = add_epsg_def (filter, first, last, 32047, "epsg", 32047,
+        "NAD27 / Virginia South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.21");
+    add_proj4text (p, 2,
+        "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Virginia South\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",36.76666666666667],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",37.96666666666667],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",36.33333333333334],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"central_meridian\",-78.5],PARAMETER[\"false_easting\",");
+    add_srs_wkt (p, 11,
+        "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve");
+    add_srs_wkt (p, 12,
+        "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 14,
+        "\"32047\"]]");
+    p = add_epsg_def (filter, first, last, 32048, "epsg", 32048,
+        "NAD27 / Washington North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47");
+    add_proj4text (p, 1,
+        " +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0");
+    add_proj4text (p, 2,
+        " +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Washington North\",GEOGCS[\"NAD27\",DAT");
+    add_srs_wkt (p, 1,
+        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",47.5],PARAMETER[\"stan");
+    add_srs_wkt (p, 8,
+        "dard_parallel_2\",48.73333333333333],PARAMETER[\"latitud");
+    add_srs_wkt (p, 9,
+        "e_of_origin\",47],PARAMETER[\"central_meridian\",-120.83");
+    add_srs_wkt (p, 10,
+        "33333333333],PARAMETER[\"false_easting\",2000000],PARAME");
+    add_srs_wkt (p, 11,
+        "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048");
+    add_srs_wkt (p, 12,
+        "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA");
+    add_srs_wkt (p, 13,
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32048\"]]");
+    p = add_epsg_def (filter, first, last, 32049, "epsg", 32049,
+        "NAD27 / Washington South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333");
+    add_proj4text (p, 1,
+        "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2");
+    add_proj4text (p, 2,
+        "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Washington South\",GEOGCS[\"NAD27\",DAT");
+    add_srs_wkt (p, 1,
+        "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",45.83333333333334],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",47.33333333333334],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",45.33333333333334],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"central_meridian\",-120.5],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 11,
+        ",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surv");
+    add_srs_wkt (p, 12,
+        "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"");
+    add_srs_wkt (p, 13,
+        "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 14,
+        ",\"32049\"]]");
+    p = add_epsg_def (filter, first, last, 32050, "epsg", 32050,
+        "NAD27 / West Virginia North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.");
+    add_proj4text (p, 1,
+        "5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-f");
+    add_proj4text (p, 2,
+        "t +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / West Virginia North\",GEOGCS[\"NAD27\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+    add_srs_wkt (p, 2,
+        "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",39],PARAMETER[\"st");
+    add_srs_wkt (p, 8,
+        "andard_parallel_2\",40.25],PARAMETER[\"latitude_of_origi");
+    add_srs_wkt (p, 9,
+        "n\",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"false_easting\",2000000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY");
+    add_srs_wkt (p, 12,
+        "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"32050\"]]");
+    p = add_epsg_def (filter, first, last, 32051, "epsg", 32051,
+        "NAD27 / West Virginia South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +");
+    add_proj4text (p, 2,
+        "datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / West Virginia South\",GEOGCS[\"NAD27\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18");
+    add_srs_wkt (p, 2,
+        "66\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"70");
+    add_srs_wkt (p, 3,
+        "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",37.48333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",38.88333333333333],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",37],PARAMETER[\"central_m");
+    add_srs_wkt (p, 10,
+        "eridian\",-81],PARAMETER[\"false_easting\",2000000],PARA");
+    add_srs_wkt (p, 11,
+        "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30");
+    add_srs_wkt (p, 12,
+        "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",");
+    add_srs_wkt (p, 13,
+        "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32051\"]]");
+    p = add_epsg_def (filter, first, last, 32052, "epsg", 32052,
+        "NAD27 / Wisconsin North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192");
+    add_proj4text (p, 2,
+        "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wisconsin North\",GEOGCS[\"NAD27\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",45.56666666666667],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",46.76666666666667],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",45.16666666666666],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"central_meridian\",-90],PARAMETER[\"false_easting\",20");
+    add_srs_wkt (p, 11,
+        "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey ");
+    add_srs_wkt (p, 12,
+        "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 14,
+        "32052\"]]");
+    p = add_epsg_def (filter, first, last, 32053, "epsg", 32053,
+        "NAD27 / Wisconsin Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333");
+    add_proj4text (p, 1,
+        "334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +datum=NAD2");
+    add_proj4text (p, 2,
+        "7 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wisconsin Central\",GEOGCS[\"NAD27\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866");
+    add_srs_wkt (p, 2,
+        "\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008");
+    add_srs_wkt (p, 3,
+        "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",");
+    add_srs_wkt (p, 4,
+        "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453");
+    add_srs_wkt (p, 5,
+        "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 6,
+        "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"standard_parallel_1\",44.25],PARAMETER[\"s");
+    add_srs_wkt (p, 8,
+        "tandard_parallel_2\",45.5],PARAMETER[\"latitude_of_origi");
+    add_srs_wkt (p, 9,
+        "n\",43.83333333333334],PARAMETER[\"central_meridian\",-9");
+    add_srs_wkt (p, 10,
+        "0],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals");
+    add_srs_wkt (p, 11,
+        "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121");
+    add_srs_wkt (p, 12,
+        "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32053\"]]");
+    p = add_epsg_def (filter, first, last, 32054, "epsg", 32054,
+        "NAD27 / Wisconsin South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +");
+    add_proj4text (p, 2,
+        "datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wisconsin South\",GEOGCS[\"NAD27\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\"");
+    add_srs_wkt (p, 2,
+        ",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"");
+    add_srs_wkt (p, 3,
+        "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt (p, 4,
+        "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329");
+    add_srs_wkt (p, 5,
+        "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",42.73333333333333],PAR");
+    add_srs_wkt (p, 8,
+        "AMETER[\"standard_parallel_2\",44.06666666666667],PARAME");
+    add_srs_wkt (p, 9,
+        "TER[\"latitude_of_origin\",42],PARAMETER[\"central_merid");
+    add_srs_wkt (p, 10,
+        "ian\",-90],PARAMETER[\"false_easting\",2000000],PARAMETE");
+    add_srs_wkt (p, 11,
+        "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800");
+    add_srs_wkt (p, 12,
+        "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST");
+    add_srs_wkt (p, 13,
+        "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32054\"]]");
+    p = add_epsg_def (filter, first, last, 32055, "epsg", 32055,
+        "NAD27 / Wyoming East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666");
+    add_proj4text (p, 1,
+        "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+    add_proj4text (p, 2,
+        "um=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wyoming East\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-105.1666666666667],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P");
+    add_srs_wkt (p, 10,
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+    add_srs_wkt (p, 11,
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+    add_srs_wkt (p, 12,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32055\"]");
+    add_srs_wkt (p, 13,
+        "]");
+    p = add_epsg_def (filter, first, last, 32056, "epsg", 32056,
+        "NAD27 / Wyoming East Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333");
+    add_proj4text (p, 1,
+        "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+    add_proj4text (p, 2,
+        "um=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wyoming East Central\",GEOGCS[\"NAD27\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+    add_srs_wkt (p, 2,
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
+    add_srs_wkt (p, 3,
+        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+    add_srs_wkt (p, 4,
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+    add_srs_wkt (p, 5,
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+    add_srs_wkt (p, 7,
+        "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"central_meridian\",-107.3333333333333],PARAMETER[\"");
+    add_srs_wkt (p, 9,
+        "scale_factor\",0.999941177],PARAMETER[\"false_easting\",");
+    add_srs_wkt (p, 10,
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"US survey");
+    add_srs_wkt (p, 11,
+        " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]");
+    add_srs_wkt (p, 12,
+        ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 13,
+        "32056\"]]");
+}
+
+#endif /* full EPSG initialization enabled/disabled */
+
diff --git a/src/srsinit/epsg_inlined_42.c b/src/srsinit/epsg_inlined_42.c
new file mode 100644
index 0000000..e79cc68
--- /dev/null
+++ b/src/srsinit/epsg_inlined_42.c
@@ -0,0 +1,3494 @@
+/*
+
+ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
+
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+
+Portions created by the Initial Developer are Copyright (C) 2008
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+
+*/
+
+#include <spatialite_private.h>
+
+#ifndef OMIT_EPSG    /* full EPSG initialization enabled */
+
+SPATIALITE_PRIVATE void
+initialize_epsg_42 (int filter, struct epsg_defs **first, struct epsg_defs **last)
+{
+/* initializing the EPSG defs list */
+    struct epsg_defs *p;
+    p = add_epsg_def (filter, first, last, 32057, "epsg", 32057,
+        "NAD27 / Wyoming West Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0");
+    add_proj4text (p, 1,
+        ".999941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u");
+    add_proj4text (p, 2,
+        "nits=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wyoming West Central\",GEOGCS[\"NAD27\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1");
+    add_srs_wkt (p, 2,
+        "866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7");
+    add_srs_wkt (p, 3,
+        "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich");
+    add_srs_wkt (p, 4,
+        "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017");
+    add_srs_wkt (p, 5,
+        "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+    add_srs_wkt (p, 7,
+        "RAMETER[\"latitude_of_origin\",40.66666666666666],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"central_meridian\",-108.75],PARAMETER[\"scale_fact");
+    add_srs_wkt (p, 9,
+        "or\",0.999941177],PARAMETER[\"false_easting\",500000],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.");
+    add_srs_wkt (p, 11,
+        "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 12,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32057\"]]");
+    p = add_epsg_def (filter, first, last, 32058, "epsg", 32058,
+        "NAD27 / Wyoming West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333");
+    add_proj4text (p, 1,
+        "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat");
+    add_proj4text (p, 2,
+        "um=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Wyoming West\",GEOGCS[\"NAD27\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637");
+    add_srs_wkt (p, 2,
+        "8206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],A");
+    add_srs_wkt (p, 3,
+        "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH");
+    add_srs_wkt (p, 4,
+        "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519");
+    add_srs_wkt (p, 5,
+        "9433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",40.66666666666666],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-110.0833333333333],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.999941177],PARAMETER[\"false_easting\",500000],P");
+    add_srs_wkt (p, 10,
+        "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0");
+    add_srs_wkt (p, 11,
+        ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X");
+    add_srs_wkt (p, 12,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32058\"]");
+    add_srs_wkt (p, 13,
+        "]");
+    p = add_epsg_def (filter, first, last, 32061, "epsg", 32061,
+        "NAD27 / Guatemala Norte (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666");
+    add_proj4text (p, 1,
+        "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000");
+    add_proj4text (p, 2,
+        "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Guatemala Norte (deprecated)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+    add_srs_wkt (p, 2,
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 7,
+        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",16.81666666");
+    add_srs_wkt (p, 8,
+        "666667],PARAMETER[\"central_meridian\",-90.3333333333333");
+    add_srs_wkt (p, 9,
+        "3],PARAMETER[\"scale_factor\",0.99992226],PARAMETER[\"fa");
+    add_srs_wkt (p, 10,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",29220");
+    add_srs_wkt (p, 11,
+        "9.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32");
+    add_srs_wkt (p, 13,
+        "061\"]]");
+    p = add_epsg_def (filter, first, last, 32062, "epsg", 32062,
+        "NAD27 / Guatemala Sur (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333");
+    add_proj4text (p, 1,
+        "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +datum=N");
+    add_proj4text (p, 2,
+        "AD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Guatemala Sur (deprecated)\",GEOGCS[\"N");
+    add_srs_wkt (p, 1,
+        "AD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Cl");
+    add_srs_wkt (p, 2,
+        "arke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG");
+    add_srs_wkt (p, 3,
+        "\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gre");
+    add_srs_wkt (p, 4,
+        "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 7,
+        "onic_1SP\"],PARAMETER[\"latitude_of_origin\",14.9],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"central_meridian\",-90.33333333333333],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"scale_factor\",0.99989906],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 10,
+        ",500000],PARAMETER[\"false_northing\",325992.681],UNIT[\"");
+    add_srs_wkt (p, 11,
+        "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]");
+    add_srs_wkt (p, 12,
+        ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32062\"]]");
+    p = add_epsg_def (filter, first, last, 32064, "epsg", 32064,
+        "NAD27 / BLM 14N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 14N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+    add_srs_wkt (p, 9,
+        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"32064\"]]");
+    p = add_epsg_def (filter, first, last, 32065, "epsg", 32065,
+        "NAD27 / BLM 15N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 15N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+    add_srs_wkt (p, 9,
+        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"32065\"]]");
+    p = add_epsg_def (filter, first, last, 32066, "epsg", 32066,
+        "NAD27 / BLM 16N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 16N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+    add_srs_wkt (p, 9,
+        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"32066\"]]");
+    p = add_epsg_def (filter, first, last, 32067, "epsg", 32067,
+        "NAD27 / BLM 17N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 17N (ftUS)\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE");
+    add_srs_wkt (p, 7,
+        "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian");
+    add_srs_wkt (p, 8,
+        "\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f");
+    add_srs_wkt (p, 9,
+        "alse_easting\",1640416.67],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"32067\"]]");
+    p = add_epsg_def (filter, first, last, 32074, "epsg", 32074,
+        "NAD27 / BLM 14N (feet) (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 14N (feet) (deprecated)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+    add_srs_wkt (p, 2,
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+    add_srs_wkt (p, 11,
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32074\"]]");
+    p = add_epsg_def (filter, first, last, 32075, "epsg", 32075,
+        "NAD27 / BLM 15N (feet) (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 15N (feet) (deprecated)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+    add_srs_wkt (p, 2,
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+    add_srs_wkt (p, 11,
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32075\"]]");
+    p = add_epsg_def (filter, first, last, 32076, "epsg", 32076,
+        "NAD27 / BLM 16N (feet) (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 16N (feet) (deprecated)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+    add_srs_wkt (p, 2,
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+    add_srs_wkt (p, 11,
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32076\"]]");
+    p = add_epsg_def (filter, first, last, 32077, "epsg", 32077,
+        "NAD27 / BLM 17N (feet) (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / BLM 17N (feet) (deprecated)\",GEOGCS[\"");
+    add_srs_wkt (p, 1,
+        "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C");
+    add_srs_wkt (p, 2,
+        "larke 1866\",6378206.4,294.9786982139006,AUTHORITY[\"EPS");
+    add_srs_wkt (p, 3,
+        "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent");
+    add_srs_wkt (p, 8,
+        "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",1640416.67],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_northing\",0],UNIT[\"US survey foot\",0.304800609601219");
+    add_srs_wkt (p, 11,
+        "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32077\"]]");
+    p = add_epsg_def (filter, first, last, 32081, "epsg", 32081,
+        "NAD27 / MTM zone 1");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / MTM zone 1\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "53],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false");
+    add_srs_wkt (p, 9,
+        "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT[");
+    add_srs_wkt (p, 10,
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 11,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 12,
+        "2081\"]]");
+    p = add_epsg_def (filter, first, last, 32082, "epsg", 32082,
+        "NAD27 / MTM zone 2");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / MTM zone 2\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "56],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false");
+    add_srs_wkt (p, 9,
+        "_easting\",304800],PARAMETER[\"false_northing\",0],UNIT[");
+    add_srs_wkt (p, 10,
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 11,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 12,
+        "2082\"]]");
+    p = add_epsg_def (filter, first, last, 32083, "epsg", 32083,
+        "NAD27 / MTM zone 3");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / MTM zone 3\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "58.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32083\"]]");
+    p = add_epsg_def (filter, first, last, 32084, "epsg", 32084,
+        "NAD27 / MTM zone 4");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / MTM zone 4\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "61.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32084\"]]");
+    p = add_epsg_def (filter, first, last, 32085, "epsg", 32085,
+        "NAD27 / MTM zone 5");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / MTM zone 5\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "64.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32085\"]]");
+    p = add_epsg_def (filter, first, last, 32086, "epsg", 32086,
+        "NAD27 / MTM zone 6");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / MTM zone 6\",GEOGCS[\"NAD27\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378");
+    add_srs_wkt (p, 2,
+        "206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]],AU");
+    add_srs_wkt (p, 3,
+        "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO");
+    add_srs_wkt (p, 4,
+        "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199");
+    add_srs_wkt (p, 5,
+        "433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4");
+    add_srs_wkt (p, 6,
+        "267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "67.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",304800],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32086\"]]");
+    p = add_epsg_def (filter, first, last, 32098, "epsg", 32098,
+        "NAD27 / Quebec Lambert");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
+    add_proj4text (p, 1,
+        "0=0 +y_0=0 +datum=NAD27 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Quebec Lambert\",GEOGCS[\"NAD27\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",");
+    add_srs_wkt (p, 2,
+        "6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"7008\"]");
+    add_srs_wkt (p, 3,
+        "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A");
+    add_srs_wkt (p, 4,
+        "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292");
+    add_srs_wkt (p, 5,
+        "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\"");
+    add_srs_wkt (p, 6,
+        ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],");
+    add_srs_wkt (p, 7,
+        "PARAMETER[\"standard_parallel_1\",60],PARAMETER[\"standa");
+    add_srs_wkt (p, 8,
+        "rd_parallel_2\",46],PARAMETER[\"latitude_of_origin\",44]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"central_meridian\",-68.5],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met");
+    add_srs_wkt (p, 11,
+        "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX");
+    add_srs_wkt (p, 12,
+        "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32098\"]]");
+    p = add_epsg_def (filter, first, last, 32099, "epsg", 32099,
+        "NAD27 / Louisiana Offshore");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +");
+    add_proj4text (p, 2,
+        "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +");
+    add_proj4text (p, 3,
+        "no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD27 / Louisiana Offshore\",GEOGCS[\"NAD27\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186");
+    add_srs_wkt (p, 2,
+        "6\",6378206.4,294.9786982139006,AUTHORITY[\"EPSG\",\"700");
+    add_srs_wkt (p, 3,
+        "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\"");
+    add_srs_wkt (p, 4,
+        ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745");
+    add_srs_wkt (p, 5,
+        "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EP");
+    add_srs_wkt (p, 6,
+        "SG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"standard_parallel_1\",27.83333333333333]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",26.16666666666667],PA");
+    add_srs_wkt (p, 9,
+        "RAMETER[\"latitude_of_origin\",25.66666666666667],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"central_meridian\",-91.33333333333333],PARAMETER[\"");
+    add_srs_wkt (p, 11,
+        "false_easting\",2000000],PARAMETER[\"false_northing\",0]");
+    add_srs_wkt (p, 12,
+        ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 14,
+        "HORITY[\"EPSG\",\"32099\"]]");
+    p = add_epsg_def (filter, first, last, 32100, "epsg", 32100,
+        "NAD83 / Montana");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5");
+    add_proj4text (p, 1,
+        " +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Montana\",GEOGCS[\"NAD83\",DATUM[\"Nort");
+    add_srs_wkt (p, 1,
+        "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29");
+    add_srs_wkt (p, 2,
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic");
+    add_srs_wkt (p, 4,
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+    add_srs_wkt (p, 5,
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2");
+    add_srs_wkt (p, 7,
+        "SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "standard_parallel_2\",45],PARAMETER[\"latitude_of_origin");
+    add_srs_wkt (p, 9,
+        "\",44.25],PARAMETER[\"central_meridian\",-109.5],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_easting\",600000],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32100");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 32104, "epsg", 32104,
+        "NAD83 / Nebraska");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +");
+    add_proj4text (p, 1,
+        "lon_0=-100 +x_0=500000 +y_0=0 +datum=NAD83 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Nebraska\",GEOGCS[\"NAD83\",DATUM[\"Nor");
+    add_srs_wkt (p, 1,
+        "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2");
+    add_srs_wkt (p, 2,
+        "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi");
+    add_srs_wkt (p, 4,
+        "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0");
+    add_srs_wkt (p, 5,
+        "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[");
+    add_srs_wkt (p, 6,
+        "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic");
+    add_srs_wkt (p, 7,
+        "_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER[");
+    add_srs_wkt (p, 8,
+        "\"standard_parallel_2\",40],PARAMETER[\"latitude_of_orig");
+    add_srs_wkt (p, 9,
+        "in\",39.83333333333334],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 10,
+        "100],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal");
+    add_srs_wkt (p, 11,
+        "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9");
+    add_srs_wkt (p, 12,
+        "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 13,
+        "PSG\",\"32104\"]]");
+    p = add_epsg_def (filter, first, last, 32107, "epsg", 32107,
+        "NAD83 / Nevada East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=200000 +y_0=8000000 +datum=NAD83 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Nevada East\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",-115.5833333333333],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",8000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 12,
+        "TH],AUTHORITY[\"EPSG\",\"32107\"]]");
+    p = add_epsg_def (filter, first, last, 32108, "epsg", 32108,
+        "NAD83 / Nevada Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=500000 +y_0=6000000 +datum=NAD83 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Nevada Central\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[");
+    add_srs_wkt (p, 8,
+        "\"central_meridian\",-116.6666666666667],PARAMETER[\"sca");
+    add_srs_wkt (p, 9,
+        "le_factor\",0.9999],PARAMETER[\"false_easting\",500000],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 11,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 12,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32108\"]]");
+    p = add_epsg_def (filter, first, last, 32109, "epsg", 32109,
+        "NAD83 / Nevada West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.");
+    add_proj4text (p, 1,
+        "9999 +x_0=800000 +y_0=4000000 +datum=NAD83 +units=m +no_");
+    add_proj4text (p, 2,
+        "defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Nevada West\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",-118.5833333333333],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9999],PARAMETER[\"false_easting\",800000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 12,
+        "TH],AUTHORITY[\"EPSG\",\"32109\"]]");
+    p = add_epsg_def (filter, first, last, 32110, "epsg", 32110,
+        "NAD83 / New Hampshire");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9");
+    add_proj4text (p, 1,
+        "99966667 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_de");
+    add_proj4text (p, 2,
+        "fs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New Hampshire\",GEOGCS[\"NAD83\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+    add_srs_wkt (p, 2,
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"c");
+    add_srs_wkt (p, 8,
+        "entral_meridian\",-71.66666666666667],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.999966667],PARAMETER[\"false_easting\",300000");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR");
+    add_srs_wkt (p, 12,
+        "TH],AUTHORITY[\"EPSG\",\"32110\"]]");
+    p = add_epsg_def (filter, first, last, 32111, "epsg", 32111,
+        "NAD83 / New Jersey");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+    add_proj4text (p, 1,
+        "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New Jersey\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",38.83333333333334],PA");
+    add_srs_wkt (p, 8,
+        "RAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9999],PARAMETER[\"false_easting\",150000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT");
+    add_srs_wkt (p, 12,
+        "HORITY[\"EPSG\",\"32111\"]]");
+    p = add_epsg_def (filter, first, last, 32112, "epsg", 32112,
+        "NAD83 / New Mexico East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "909091 +x_0=165000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New Mexico East\",GEOGCS[\"NAD83\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+    add_srs_wkt (p, 2,
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 7,
+        "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "central_meridian\",-104.3333333333333],PARAMETER[\"scale");
+    add_srs_wkt (p, 9,
+        "_factor\",0.999909091],PARAMETER[\"false_easting\",16500");
+    add_srs_wkt (p, 10,
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 12,
+        "RTH],AUTHORITY[\"EPSG\",\"32112\"]]");
+    p = add_epsg_def (filter, first, last, 32113, "epsg", 32113,
+        "NAD83 / New Mexico Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000");
+    add_proj4text (p, 1,
+        "00 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New Mexico Central\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me");
+    add_srs_wkt (p, 7,
+        "rcator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER");
+    add_srs_wkt (p, 8,
+        "[\"central_meridian\",-106.25],PARAMETER[\"scale_factor\"");
+    add_srs_wkt (p, 9,
+        ",0.9999],PARAMETER[\"false_easting\",500000],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 11,
+        "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[");
+    add_srs_wkt (p, 12,
+        "\"EPSG\",\"32113\"]]");
+    p = add_epsg_def (filter, first, last, 32114, "epsg", 32114,
+        "NAD83 / New Mexico West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "916667 +x_0=830000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New Mexico West\",GEOGCS[\"NAD83\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+    add_srs_wkt (p, 2,
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 7,
+        "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "central_meridian\",-107.8333333333333],PARAMETER[\"scale");
+    add_srs_wkt (p, 9,
+        "_factor\",0.999916667],PARAMETER[\"false_easting\",83000");
+    add_srs_wkt (p, 10,
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 12,
+        "RTH],AUTHORITY[\"EPSG\",\"32114\"]]");
+    p = add_epsg_def (filter, first, last, 32115, "epsg", 32115,
+        "NAD83 / New York East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9");
+    add_proj4text (p, 1,
+        "999 +x_0=150000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New York East\",GEOGCS[\"NAD83\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+    add_srs_wkt (p, 2,
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",38.83333333333334],");
+    add_srs_wkt (p, 8,
+        "PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9999],PARAMETER[\"false_easting\",150000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"32115\"]]");
+    p = add_epsg_def (filter, first, last, 32116, "epsg", 32116,
+        "NAD83 / New York Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "9375 +x_0=250000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New York Central\",GEOGCS[\"NAD83\",DAT");
+    add_srs_wkt (p, 1,
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+    add_srs_wkt (p, 2,
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+    add_srs_wkt (p, 3,
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca");
+    add_srs_wkt (p, 7,
+        "tor\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"");
+    add_srs_wkt (p, 8,
+        "central_meridian\",-76.58333333333333],PARAMETER[\"scale");
+    add_srs_wkt (p, 9,
+        "_factor\",0.9999375],PARAMETER[\"false_easting\",250000]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR");
+    add_srs_wkt (p, 11,
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT");
+    add_srs_wkt (p, 12,
+        "H],AUTHORITY[\"EPSG\",\"32116\"]]");
+    p = add_epsg_def (filter, first, last, 32117, "epsg", 32117,
+        "NAD83 / New York West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999");
+    add_proj4text (p, 1,
+        "9375 +x_0=350000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New York West\",GEOGCS[\"NAD83\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+    add_srs_wkt (p, 2,
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator");
+    add_srs_wkt (p, 7,
+        "\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cen");
+    add_srs_wkt (p, 8,
+        "tral_meridian\",-78.58333333333333],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9999375],PARAMETER[\"false_easting\",350000],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"32117\"]]");
+    p = add_epsg_def (filter, first, last, 32118, "epsg", 32118,
+        "NAD83 / New York Long Island");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666");
+    add_proj4text (p, 1,
+        "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / New York Long Island\",GEOGCS[\"NAD83\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+    add_srs_wkt (p, 2,
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+    add_srs_wkt (p, 4,
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+    add_srs_wkt (p, 5,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 6,
+        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con");
+    add_srs_wkt (p, 7,
+        "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41");
+    add_srs_wkt (p, 8,
+        ".03333333333333],PARAMETER[\"standard_parallel_2\",40.66");
+    add_srs_wkt (p, 9,
+        "666666666666],PARAMETER[\"latitude_of_origin\",40.166666");
+    add_srs_wkt (p, 10,
+        "66666666],PARAMETER[\"central_meridian\",-74],PARAMETER[");
+    add_srs_wkt (p, 11,
+        "\"false_easting\",300000],PARAMETER[\"false_northing\",0");
+    add_srs_wkt (p, 12,
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32118\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32119, "epsg", 32119,
+        "NAD83 / North Carolina");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333");
+    add_proj4text (p, 1,
+        "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +datum");
+    add_proj4text (p, 2,
+        "=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / North Carolina\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666");
+    add_srs_wkt (p, 8,
+        "666666666],PARAMETER[\"standard_parallel_2\",34.33333333");
+    add_srs_wkt (p, 9,
+        "333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETE");
+    add_srs_wkt (p, 10,
+        "R[\"central_meridian\",-79],PARAMETER[\"false_easting\",");
+    add_srs_wkt (p, 11,
+        "609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre\"");
+    add_srs_wkt (p, 12,
+        ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32119\"]]");
+    p = add_epsg_def (filter, first, last, 32120, "epsg", 32120,
+        "NAD83 / North Dakota North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +datum=NA");
+    add_proj4text (p, 2,
+        "D83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / North Dakota North\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7");
+    add_srs_wkt (p, 8,
+        "3333333333333],PARAMETER[\"standard_parallel_2\",47.4333");
+    add_srs_wkt (p, 9,
+        "3333333333],PARAMETER[\"latitude_of_origin\",47],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"central_meridian\",-100.5],PARAMETER[\"false_eastin");
+    add_srs_wkt (p, 11,
+        "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre");
+    add_srs_wkt (p, 12,
+        "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32120\"]]");
+    p = add_epsg_def (filter, first, last, 32121, "epsg", 32121,
+        "NAD83 / North Dakota South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / North Dakota South\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.4");
+    add_srs_wkt (p, 8,
+        "8333333333333],PARAMETER[\"standard_parallel_2\",46.1833");
+    add_srs_wkt (p, 9,
+        "3333333333],PARAMETER[\"latitude_of_origin\",45.66666666");
+    add_srs_wkt (p, 10,
+        "666666],PARAMETER[\"central_meridian\",-100.5],PARAMETER");
+    add_srs_wkt (p, 11,
+        "[\"false_easting\",600000],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 12,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32121\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32122, "epsg", 32122,
+        "NAD83 / Ohio North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39");
+    add_proj4text (p, 1,
+        ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=N");
+    add_proj4text (p, 2,
+        "AD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Ohio North\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+    add_srs_wkt (p, 7,
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAME");
+    add_srs_wkt (p, 8,
+        "TER[\"standard_parallel_2\",40.43333333333333],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"latitude_of_origin\",39.66666666666666],PARAMETER[\"c");
+    add_srs_wkt (p, 10,
+        "entral_meridian\",-82.5],PARAMETER[\"false_easting\",600");
+    add_srs_wkt (p, 11,
+        "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU");
+    add_srs_wkt (p, 12,
+        "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",");
+    add_srs_wkt (p, 13,
+        "NORTH],AUTHORITY[\"EPSG\",\"32122\"]]");
+    p = add_epsg_def (filter, first, last, 32123, "epsg", 32123,
+        "NAD83 / Ohio South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Ohio South\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+    add_srs_wkt (p, 7,
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",40.033333333");
+    add_srs_wkt (p, 8,
+        "33333],PARAMETER[\"standard_parallel_2\",38.733333333333");
+    add_srs_wkt (p, 9,
+        "33],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen");
+    add_srs_wkt (p, 10,
+        "tral_meridian\",-82.5],PARAMETER[\"false_easting\",60000");
+    add_srs_wkt (p, 11,
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 12,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"32123\"]]");
+    p = add_epsg_def (filter, first, last, 32124, "epsg", 32124,
+        "NAD83 / Oklahoma North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +datum=NAD83");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Oklahoma North\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666");
+    add_srs_wkt (p, 8,
+        "666666667],PARAMETER[\"standard_parallel_2\",35.56666666");
+    add_srs_wkt (p, 9,
+        "666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "central_meridian\",-98],PARAMETER[\"false_easting\",6000");
+    add_srs_wkt (p, 11,
+        "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 12,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N");
+    add_srs_wkt (p, 13,
+        "ORTH],AUTHORITY[\"EPSG\",\"32124\"]]");
+    p = add_epsg_def (filter, first, last, 32125, "epsg", 32125,
+        "NAD83 / Oklahoma South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Oklahoma South\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333");
+    add_srs_wkt (p, 8,
+        "333333333],PARAMETER[\"standard_parallel_2\",33.93333333");
+    add_srs_wkt (p, 9,
+        "333333],PARAMETER[\"latitude_of_origin\",33.333333333333");
+    add_srs_wkt (p, 10,
+        "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals");
+    add_srs_wkt (p, 11,
+        "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 12,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA");
+    add_srs_wkt (p, 13,
+        "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32125\"]]");
+    p = add_epsg_def (filter, first, last, 32126, "epsg", 32126,
+        "NAD83 / Oregon North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6");
+    add_proj4text (p, 1,
+        "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +datum=N");
+    add_proj4text (p, 2,
+        "AD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Oregon North\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+    add_srs_wkt (p, 7,
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"standard_parallel_2\",44.33333333333334],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"latitude_of_origin\",43.66666666666666],PARAMETER[\"ce");
+    add_srs_wkt (p, 10,
+        "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",250");
+    add_srs_wkt (p, 11,
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32126\"]]");
+    p = add_epsg_def (filter, first, last, 32127, "epsg", 32127,
+        "NAD83 / Oregon South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6");
+    add_proj4text (p, 1,
+        "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +datum=N");
+    add_proj4text (p, 2,
+        "AD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Oregon South\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+    add_srs_wkt (p, 7,
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARAMET");
+    add_srs_wkt (p, 8,
+        "ER[\"standard_parallel_2\",42.33333333333334],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"latitude_of_origin\",41.66666666666666],PARAMETER[\"ce");
+    add_srs_wkt (p, 10,
+        "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",150");
+    add_srs_wkt (p, 11,
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32127\"]]");
+    p = add_epsg_def (filter, first, last, 32128, "epsg", 32128,
+        "NAD83 / Pennsylvania North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4");
+    add_proj4text (p, 1,
+        "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +datum");
+    add_proj4text (p, 2,
+        "=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Pennsylvania North\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.9");
+    add_srs_wkt (p, 8,
+        "5],PARAMETER[\"standard_parallel_2\",40.88333333333333],");
+    add_srs_wkt (p, 9,
+        "PARAMETER[\"latitude_of_origin\",40.16666666666666],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"central_meridian\",-77.75],PARAMETER[\"false_eas");
+    add_srs_wkt (p, 11,
+        "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me");
+    add_srs_wkt (p, 12,
+        "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32128\"]]");
+    p = add_epsg_def (filter, first, last, 32129, "epsg", 32129,
+        "NAD83 / Pennsylvania South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Pennsylvania South\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9");
+    add_srs_wkt (p, 8,
+        "6666666666667],PARAMETER[\"standard_parallel_2\",39.9333");
+    add_srs_wkt (p, 9,
+        "3333333333],PARAMETER[\"latitude_of_origin\",39.33333333");
+    add_srs_wkt (p, 10,
+        "333334],PARAMETER[\"central_meridian\",-77.75],PARAMETER");
+    add_srs_wkt (p, 11,
+        "[\"false_easting\",600000],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 12,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32129\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32130, "epsg", 32130,
+        "NAD83 / Rhode Island");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9");
+    add_proj4text (p, 1,
+        "9999375 +x_0=100000 +y_0=0 +datum=NAD83 +units=m +no_def");
+    add_proj4text (p, 2,
+        "s");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Rhode Island\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",41.08333333333334],PA");
+    add_srs_wkt (p, 8,
+        "RAMETER[\"central_meridian\",-71.5],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.99999375],PARAMETER[\"false_easting\",100000],P");
+    add_srs_wkt (p, 10,
+        "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT");
+    add_srs_wkt (p, 11,
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+    add_srs_wkt (p, 12,
+        ",AUTHORITY[\"EPSG\",\"32130\"]]");
+    p = add_epsg_def (filter, first, last, 32133, "epsg", 32133,
+        "NAD83 / South Carolina");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31");
+    add_proj4text (p, 1,
+        ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / South Carolina\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.83333");
+    add_srs_wkt (p, 8,
+        "333333334],PARAMETER[\"standard_parallel_2\",32.5],PARAM");
+    add_srs_wkt (p, 9,
+        "ETER[\"latitude_of_origin\",31.83333333333333],PARAMETER");
+    add_srs_wkt (p, 10,
+        "[\"central_meridian\",-81],PARAMETER[\"false_easting\",6");
+    add_srs_wkt (p, 11,
+        "09600],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32133\"]]");
+    p = add_epsg_def (filter, first, last, 32134, "epsg", 32134,
+        "NAD83 / South Dakota North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666");
+    add_proj4text (p, 1,
+        "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_");
+    add_proj4text (p, 2,
+        "0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / South Dakota North\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6");
+    add_srs_wkt (p, 8,
+        "8333333333333],PARAMETER[\"standard_parallel_2\",44.4166");
+    add_srs_wkt (p, 9,
+        "6666666666],PARAMETER[\"latitude_of_origin\",43.83333333");
+    add_srs_wkt (p, 10,
+        "333334],PARAMETER[\"central_meridian\",-100],PARAMETER[\"");
+    add_srs_wkt (p, 11,
+        "false_easting\",600000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 12,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32134\"]]");
+    p = add_epsg_def (filter, first, last, 32135, "epsg", 32135,
+        "NAD83 / South Dakota South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42");
+    add_proj4text (p, 1,
+        ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y");
+    add_proj4text (p, 2,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / South Dakota South\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4");
+    add_srs_wkt (p, 8,
+        "],PARAMETER[\"standard_parallel_2\",42.83333333333334],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"latitude_of_origin\",42.33333333333334],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"central_meridian\",-100.3333333333333],PARAMETER[");
+    add_srs_wkt (p, 11,
+        "\"false_easting\",600000],PARAMETER[\"false_northing\",0");
+    add_srs_wkt (p, 12,
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32135\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32136, "epsg", 32136,
+        "NAD83 / Tennessee");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3");
+    add_proj4text (p, 1,
+        "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +datum=NA");
+    add_proj4text (p, 2,
+        "D83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Tennessee\",GEOGCS[\"NAD83\",DATUM[\"No");
+    add_srs_wkt (p, 1,
+        "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,");
+    add_srs_wkt (p, 2,
+        "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw");
+    add_srs_wkt (p, 4,
+        "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.");
+    add_srs_wkt (p, 5,
+        "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY");
+    add_srs_wkt (p, 6,
+        "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni");
+    add_srs_wkt (p, 7,
+        "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666");
+    add_srs_wkt (p, 8,
+        "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER");
+    add_srs_wkt (p, 9,
+        "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c");
+    add_srs_wkt (p, 10,
+        "entral_meridian\",-86],PARAMETER[\"false_easting\",60000");
+    add_srs_wkt (p, 11,
+        "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 12,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 13,
+        "RTH],AUTHORITY[\"EPSG\",\"32136\"]]");
+    p = add_epsg_def (filter, first, last, 32137, "epsg", 32137,
+        "NAD83 / Texas North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3");
+    add_proj4text (p, 1,
+        "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +datum=NAD83 +u");
+    add_proj4text (p, 2,
+        "nits=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Texas North\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+    add_srs_wkt (p, 7,
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",36.18333333");
+    add_srs_wkt (p, 8,
+        "333333],PARAMETER[\"standard_parallel_2\",34.65],PARAMET");
+    add_srs_wkt (p, 9,
+        "ER[\"latitude_of_origin\",34],PARAMETER[\"central_meridi");
+    add_srs_wkt (p, 10,
+        "an\",-101.5],PARAMETER[\"false_easting\",200000],PARAMET");
+    add_srs_wkt (p, 11,
+        "ER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]");
+    add_srs_wkt (p, 13,
+        ",AUTHORITY[\"EPSG\",\"32137\"]]");
+    p = add_epsg_def (filter, first, last, 32138, "epsg", 32138,
+        "NAD83 / Texas North Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y");
+    add_proj4text (p, 2,
+        "_0=2000000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Texas North Central\",GEOGCS[\"NAD83\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.9");
+    add_srs_wkt (p, 8,
+        "6666666666667],PARAMETER[\"standard_parallel_2\",32.1333");
+    add_srs_wkt (p, 9,
+        "3333333333],PARAMETER[\"latitude_of_origin\",31.66666666");
+    add_srs_wkt (p, 10,
+        "666667],PARAMETER[\"central_meridian\",-98.5],PARAMETER[");
+    add_srs_wkt (p, 11,
+        "\"false_easting\",600000],PARAMETER[\"false_northing\",2");
+    add_srs_wkt (p, 12,
+        "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A");
+    add_srs_wkt (p, 13,
+        "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 14,
+        "2138\"]]");
+    p = add_epsg_def (filter, first, last, 32139, "epsg", 32139,
+        "NAD83 / Texas Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +");
+    add_proj4text (p, 2,
+        "x_0=700000 +y_0=3000000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Texas Central\",GEOGCS[\"NAD83\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378");
+    add_srs_wkt (p, 2,
+        "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr");
+    add_srs_wkt (p, 4,
+        "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\"");
+    add_srs_wkt (p, 5,
+        ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHOR");
+    add_srs_wkt (p, 6,
+        "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C");
+    add_srs_wkt (p, 7,
+        "onic_2SP\"],PARAMETER[\"standard_parallel_1\",31.8833333");
+    add_srs_wkt (p, 8,
+        "3333333],PARAMETER[\"standard_parallel_2\",30.1166666666");
+    add_srs_wkt (p, 9,
+        "6667],PARAMETER[\"latitude_of_origin\",29.66666666666667");
+    add_srs_wkt (p, 10,
+        "],PARAMETER[\"central_meridian\",-100.3333333333333],PAR");
+    add_srs_wkt (p, 11,
+        "AMETER[\"false_easting\",700000],PARAMETER[\"false_north");
+    add_srs_wkt (p, 12,
+        "ing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+    add_srs_wkt (p, 13,
+        "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 14,
+        "G\",\"32139\"]]");
+    p = add_epsg_def (filter, first, last, 32140, "epsg", 32140,
+        "NAD83 / Texas South Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0");
+    add_proj4text (p, 2,
+        "=4000000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Texas South Central\",GEOGCS[\"NAD83\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.2");
+    add_srs_wkt (p, 8,
+        "8333333333333],PARAMETER[\"standard_parallel_2\",28.3833");
+    add_srs_wkt (p, 9,
+        "3333333333],PARAMETER[\"latitude_of_origin\",27.83333333");
+    add_srs_wkt (p, 10,
+        "333333],PARAMETER[\"central_meridian\",-99],PARAMETER[\"");
+    add_srs_wkt (p, 11,
+        "false_easting\",600000],PARAMETER[\"false_northing\",400");
+    add_srs_wkt (p, 12,
+        "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"321");
+    add_srs_wkt (p, 14,
+        "40\"]]");
+    p = add_epsg_def (filter, first, last, 32141, "epsg", 32141,
+        "NAD83 / Texas South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y");
+    add_proj4text (p, 2,
+        "_0=5000000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Texas South\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+    add_srs_wkt (p, 7,
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",27.83333333");
+    add_srs_wkt (p, 8,
+        "333333],PARAMETER[\"standard_parallel_2\",26.16666666666");
+    add_srs_wkt (p, 9,
+        "667],PARAMETER[\"latitude_of_origin\",25.66666666666667]");
+    add_srs_wkt (p, 10,
+        ",PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"false");
+    add_srs_wkt (p, 11,
+        "_easting\",300000],PARAMETER[\"false_northing\",5000000]");
+    add_srs_wkt (p, 12,
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+    add_srs_wkt (p, 13,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32141\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 32142, "epsg", 32142,
+        "NAD83 / Utah North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +");
+    add_proj4text (p, 2,
+        "y_0=1000000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Utah North\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+    add_srs_wkt (p, 7,
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",41.783333333");
+    add_srs_wkt (p, 8,
+        "33333],PARAMETER[\"standard_parallel_2\",40.716666666666");
+    add_srs_wkt (p, 9,
+        "67],PARAMETER[\"latitude_of_origin\",40.33333333333334],");
+    add_srs_wkt (p, 10,
+        "PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false");
+    add_srs_wkt (p, 11,
+        "_easting\",500000],PARAMETER[\"false_northing\",1000000]");
+    add_srs_wkt (p, 12,
+        ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X");
+    add_srs_wkt (p, 13,
+        "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32142\"]");
+    add_srs_wkt (p, 14,
+        "]");
+    p = add_epsg_def (filter, first, last, 32143, "epsg", 32143,
+        "NAD83 / Utah Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3");
+    add_proj4text (p, 1,
+        "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 ");
+    add_proj4text (p, 2,
+        "+datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Utah Central\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co");
+    add_srs_wkt (p, 7,
+        "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PARA");
+    add_srs_wkt (p, 8,
+        "METER[\"standard_parallel_2\",39.01666666666667],PARAMET");
+    add_srs_wkt (p, 9,
+        "ER[\"latitude_of_origin\",38.33333333333334],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "central_meridian\",-111.5],PARAMETER[\"false_easting\",5");
+    add_srs_wkt (p, 11,
+        "00000],PARAMETER[\"false_northing\",2000000],UNIT[\"metr");
+    add_srs_wkt (p, 12,
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32143\"]]");
+    p = add_epsg_def (filter, first, last, 32144, "epsg", 32144,
+        "NAD83 / Utah South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3");
+    add_proj4text (p, 1,
+        "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 ");
+    add_proj4text (p, 2,
+        "+datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Utah South\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Con");
+    add_srs_wkt (p, 7,
+        "ic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"standard_parallel_2\",37.21666666666667],PARAMETE");
+    add_srs_wkt (p, 9,
+        "R[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"");
+    add_srs_wkt (p, 10,
+        "central_meridian\",-111.5],PARAMETER[\"false_easting\",5");
+    add_srs_wkt (p, 11,
+        "00000],PARAMETER[\"false_northing\",3000000],UNIT[\"metr");
+    add_srs_wkt (p, 12,
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 13,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32144\"]]");
+    p = add_epsg_def (filter, first, last, 32145, "epsg", 32145,
+        "NAD83 / Vermont");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0");
+    add_proj4text (p, 1,
+        "=500000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Vermont\",GEOGCS[\"NAD83\",DATUM[\"Nort");
+    add_srs_wkt (p, 1,
+        "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29");
+    add_srs_wkt (p, 2,
+        "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic");
+    add_srs_wkt (p, 4,
+        "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01");
+    add_srs_wkt (p, 5,
+        "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"");
+    add_srs_wkt (p, 6,
+        "EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PA");
+    add_srs_wkt (p, 7,
+        "RAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"central");
+    add_srs_wkt (p, 8,
+        "_meridian\",-72.5],PARAMETER[\"scale_factor\",0.99996428");
+    add_srs_wkt (p, 9,
+        "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false");
+    add_srs_wkt (p, 10,
+        "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900");
+    add_srs_wkt (p, 11,
+        "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32145\"]]");
+    p = add_epsg_def (filter, first, last, 32146, "epsg", 32146,
+        "NAD83 / Virginia North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37");
+    add_proj4text (p, 1,
+        ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +");
+    add_proj4text (p, 2,
+        "datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Virginia North\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PA");
+    add_srs_wkt (p, 8,
+        "RAMETER[\"standard_parallel_2\",38.03333333333333],PARAM");
+    add_srs_wkt (p, 9,
+        "ETER[\"latitude_of_origin\",37.66666666666666],PARAMETER");
+    add_srs_wkt (p, 10,
+        "[\"central_meridian\",-78.5],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 11,
+        ",3500000],PARAMETER[\"false_northing\",2000000],UNIT[\"m");
+    add_srs_wkt (p, 12,
+        "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],");
+    add_srs_wkt (p, 13,
+        "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32146\"]]");
+    p = add_epsg_def (filter, first, last, 32147, "epsg", 32147,
+        "NAD83 / Virginia South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +");
+    add_proj4text (p, 2,
+        "y_0=1000000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Virginia South\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666");
+    add_srs_wkt (p, 8,
+        "666666667],PARAMETER[\"standard_parallel_2\",36.76666666");
+    add_srs_wkt (p, 9,
+        "666667],PARAMETER[\"latitude_of_origin\",36.333333333333");
+    add_srs_wkt (p, 10,
+        "34],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"fa");
+    add_srs_wkt (p, 11,
+        "lse_easting\",3500000],PARAMETER[\"false_northing\",1000");
+    add_srs_wkt (p, 12,
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 13,
+        "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3214");
+    add_srs_wkt (p, 14,
+        "7\"]]");
+    p = add_epsg_def (filter, first, last, 32148, "epsg", 32148,
+        "NAD83 / Washington North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47");
+    add_proj4text (p, 1,
+        " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +datum=NAD");
+    add_proj4text (p, 2,
+        "83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Washington North\",GEOGCS[\"NAD83\",DAT");
+    add_srs_wkt (p, 1,
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+    add_srs_wkt (p, 2,
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+    add_srs_wkt (p, 3,
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+    add_srs_wkt (p, 7,
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333");
+    add_srs_wkt (p, 8,
+        "3333333333],PARAMETER[\"standard_parallel_2\",47.5],PARA");
+    add_srs_wkt (p, 9,
+        "METER[\"latitude_of_origin\",47],PARAMETER[\"central_mer");
+    add_srs_wkt (p, 10,
+        "idian\",-120.8333333333333],PARAMETER[\"false_easting\",");
+    add_srs_wkt (p, 11,
+        "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1");
+    add_srs_wkt (p, 12,
+        ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y");
+    add_srs_wkt (p, 13,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32148\"]]");
+    p = add_epsg_def (filter, first, last, 32149, "epsg", 32149,
+        "NAD83 / Washington South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333");
+    add_proj4text (p, 1,
+        "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Washington South\",GEOGCS[\"NAD83\",DAT");
+    add_srs_wkt (p, 1,
+        "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6");
+    add_srs_wkt (p, 2,
+        "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS");
+    add_srs_wkt (p, 3,
+        "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+    add_srs_wkt (p, 7,
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.3333");
+    add_srs_wkt (p, 8,
+        "3333333334],PARAMETER[\"standard_parallel_2\",45.8333333");
+    add_srs_wkt (p, 9,
+        "3333334],PARAMETER[\"latitude_of_origin\",45.33333333333");
+    add_srs_wkt (p, 10,
+        "334],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"");
+    add_srs_wkt (p, 11,
+        "false_easting\",500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt (p, 12,
+        "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\"");
+    add_srs_wkt (p, 13,
+        ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32149\"]]");
+    p = add_epsg_def (filter, first, last, 32150, "epsg", 32150,
+        "NAD83 / West Virginia North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.");
+    add_proj4text (p, 1,
+        "5 +x_0=600000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / West Virginia North\",GEOGCS[\"NAD83\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.2");
+    add_srs_wkt (p, 8,
+        "5],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"lat");
+    add_srs_wkt (p, 9,
+        "itude_of_origin\",38.5],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 10,
+        "79.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa");
+    add_srs_wkt (p, 11,
+        "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 13,
+        "EPSG\",\"32150\"]]");
+    p = add_epsg_def (filter, first, last, 32151, "epsg", 32151,
+        "NAD83 / West Virginia South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +datum=NAD83");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / West Virginia South\",GEOGCS[\"NAD83\",");
+    add_srs_wkt (p, 1,
+        "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8");
+    add_srs_wkt (p, 8,
+        "8333333333333],PARAMETER[\"standard_parallel_2\",37.4833");
+    add_srs_wkt (p, 9,
+        "3333333333],PARAMETER[\"latitude_of_origin\",37],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"central_meridian\",-81],PARAMETER[\"false_easting\"");
+    add_srs_wkt (p, 11,
+        ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",");
+    add_srs_wkt (p, 12,
+        "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "Y\",NORTH],AUTHORITY[\"EPSG\",\"32151\"]]");
+    p = add_epsg_def (filter, first, last, 32152, "epsg", 32152,
+        "NAD83 / Wisconsin North");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0");
+    add_proj4text (p, 2,
+        "=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wisconsin North\",GEOGCS[\"NAD83\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+    add_srs_wkt (p, 2,
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+    add_srs_wkt (p, 7,
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666");
+    add_srs_wkt (p, 8,
+        "6666666667],PARAMETER[\"standard_parallel_2\",45.5666666");
+    add_srs_wkt (p, 9,
+        "6666667],PARAMETER[\"latitude_of_origin\",45.16666666666");
+    add_srs_wkt (p, 10,
+        "666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fal");
+    add_srs_wkt (p, 11,
+        "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 12,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E");
+    add_srs_wkt (p, 13,
+        "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32152\"]]");
+    p = add_epsg_def (filter, first, last, 32153, "epsg", 32153,
+        "NAD83 / Wisconsin Central");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333");
+    add_proj4text (p, 1,
+        "334 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83 +units=m ");
+    add_proj4text (p, 2,
+        "+no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wisconsin Central\",GEOGCS[\"NAD83\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",");
+    add_srs_wkt (p, 2,
+        "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG");
+    add_srs_wkt (p, 3,
+        "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[");
+    add_srs_wkt (p, 4,
+        "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg");
+    add_srs_wkt (p, 5,
+        "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A");
+    add_srs_wkt (p, 6,
+        "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor");
+    add_srs_wkt (p, 7,
+        "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\"la");
+    add_srs_wkt (p, 9,
+        "titude_of_origin\",43.83333333333334],PARAMETER[\"centra");
+    add_srs_wkt (p, 10,
+        "l_meridian\",-90],PARAMETER[\"false_easting\",600000],PA");
+    add_srs_wkt (p, 11,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 12,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 13,
+        "AUTHORITY[\"EPSG\",\"32153\"]]");
+    p = add_epsg_def (filter, first, last, 32154, "epsg", 32154,
+        "NAD83 / Wisconsin South");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +datum=NAD83");
+    add_proj4text (p, 2,
+        " +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wisconsin South\",GEOGCS[\"NAD83\",DATU");
+    add_srs_wkt (p, 1,
+        "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63");
+    add_srs_wkt (p, 2,
+        "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8");
+    add_srs_wkt (p, 3,
+        "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"");
+    add_srs_wkt (p, 4,
+        "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre");
+    add_srs_wkt (p, 5,
+        "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUT");
+    add_srs_wkt (p, 6,
+        "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma");
+    add_srs_wkt (p, 7,
+        "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666");
+    add_srs_wkt (p, 8,
+        "6666666667],PARAMETER[\"standard_parallel_2\",42.7333333");
+    add_srs_wkt (p, 9,
+        "3333333],PARAMETER[\"latitude_of_origin\",42],PARAMETER[");
+    add_srs_wkt (p, 10,
+        "\"central_meridian\",-90],PARAMETER[\"false_easting\",60");
+    add_srs_wkt (p, 11,
+        "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\"");
+    add_srs_wkt (p, 13,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32154\"]]");
+    p = add_epsg_def (filter, first, last, 32155, "epsg", 32155,
+        "NAD83 / Wyoming East");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9");
+    add_proj4text (p, 1,
+        "999375 +x_0=200000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wyoming East\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen");
+    add_srs_wkt (p, 8,
+        "tral_meridian\",-105.1666666666667],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9999375],PARAMETER[\"false_easting\",200000],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY");
+    add_srs_wkt (p, 11,
+        "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],");
+    add_srs_wkt (p, 12,
+        "AUTHORITY[\"EPSG\",\"32155\"]]");
+    p = add_epsg_def (filter, first, last, 32156, "epsg", 32156,
+        "NAD83 / Wyoming East Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9");
+    add_proj4text (p, 1,
+        "999375 +x_0=400000 +y_0=100000 +datum=NAD83 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wyoming East Central\",GEOGCS[\"NAD83\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+    add_srs_wkt (p, 2,
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+    add_srs_wkt (p, 4,
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+    add_srs_wkt (p, 5,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 6,
+        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_");
+    add_srs_wkt (p, 7,
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"central_meridian\",-107.3333333333333],PARAMETER[");
+    add_srs_wkt (p, 9,
+        "\"scale_factor\",0.9999375],PARAMETER[\"false_easting\",");
+    add_srs_wkt (p, 10,
+        "400000],PARAMETER[\"false_northing\",100000],UNIT[\"metr");
+    add_srs_wkt (p, 11,
+        "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI");
+    add_srs_wkt (p, 12,
+        "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32156\"]]");
+    p = add_epsg_def (filter, first, last, 32157, "epsg", 32157,
+        "NAD83 / Wyoming West Central");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0");
+    add_proj4text (p, 1,
+        "=600000 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wyoming West Central\",GEOGCS[\"NAD83\"");
+    add_srs_wkt (p, 1,
+        ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980");
+    add_srs_wkt (p, 2,
+        "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T");
+    add_srs_wkt (p, 3,
+        "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM");
+    add_srs_wkt (p, 4,
+        "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"");
+    add_srs_wkt (p, 5,
+        "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]");
+    add_srs_wkt (p, 6,
+        "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_");
+    add_srs_wkt (p, 7,
+        "Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARAM");
+    add_srs_wkt (p, 8,
+        "ETER[\"central_meridian\",-108.75],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.9999375],PARAMETER[\"false_easting\",600000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A");
+    add_srs_wkt (p, 12,
+        "UTHORITY[\"EPSG\",\"32157\"]]");
+    p = add_epsg_def (filter, first, last, 32158, "epsg", 32158,
+        "NAD83 / Wyoming West");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9");
+    add_proj4text (p, 1,
+        "999375 +x_0=800000 +y_0=100000 +datum=NAD83 +units=m +no");
+    add_proj4text (p, 2,
+        "_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Wyoming West\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"cen");
+    add_srs_wkt (p, 8,
+        "tral_meridian\",-110.0833333333333],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9999375],PARAMETER[\"false_easting\",800000],PA");
+    add_srs_wkt (p, 10,
+        "RAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO");
+    add_srs_wkt (p, 12,
+        "RTH],AUTHORITY[\"EPSG\",\"32158\"]]");
+    p = add_epsg_def (filter, first, last, 32161, "epsg", 32161,
+        "NAD83 / Puerto Rico & Virgin Is.");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333");
+    add_proj4text (p, 1,
+        "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +");
+    add_proj4text (p, 2,
+        "x_0=200000 +y_0=200000 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Puerto Rico & Virgin Is.\",GEOGCS[\"NAD");
+    add_srs_wkt (p, 1,
+        "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS ");
+    add_srs_wkt (p, 2,
+        "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
+    add_srs_wkt (p, 3,
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],");
+    add_srs_wkt (p, 4,
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+    add_srs_wkt (p, 5,
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+    add_srs_wkt (p, 6,
+        "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert");
+    add_srs_wkt (p, 7,
+        "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\"");
+    add_srs_wkt (p, 8,
+        ",18.43333333333333],PARAMETER[\"standard_parallel_2\",18");
+    add_srs_wkt (p, 9,
+        ".03333333333333],PARAMETER[\"latitude_of_origin\",17.833");
+    add_srs_wkt (p, 10,
+        "33333333333],PARAMETER[\"central_meridian\",-66.43333333");
+    add_srs_wkt (p, 11,
+        "333334],PARAMETER[\"false_easting\",200000],PARAMETER[\"");
+    add_srs_wkt (p, 12,
+        "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP");
+    add_srs_wkt (p, 13,
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+    add_srs_wkt (p, 14,
+        "RITY[\"EPSG\",\"32161\"]]");
+    p = add_epsg_def (filter, first, last, 32164, "epsg", 32164,
+        "NAD83 / BLM 14N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / BLM 14N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 11,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32164\"]]");
+    p = add_epsg_def (filter, first, last, 32165, "epsg", 32165,
+        "NAD83 / BLM 15N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / BLM 15N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 11,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32165\"]]");
+    p = add_epsg_def (filter, first, last, 32166, "epsg", 32166,
+        "NAD83 / BLM 16N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / BLM 16N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 11,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32166\"]]");
+    p = add_epsg_def (filter, first, last, 32167, "epsg", 32167,
+        "NAD83 / BLM 17N (ftUS)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00");
+    add_proj4text (p, 1,
+        "1016002 +y_0=0 +datum=NAD83 +units=us-ft +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / BLM 17N (ftUS)\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat");
+    add_srs_wkt (p, 7,
+        "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce");
+    add_srs_wkt (p, 8,
+        "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]");
+    add_srs_wkt (p, 9,
+        ",PARAMETER[\"false_easting\",1640416.67],PARAMETER[\"fal");
+    add_srs_wkt (p, 10,
+        "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012");
+    add_srs_wkt (p, 11,
+        "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32167\"]]");
+    p = add_epsg_def (filter, first, last, 32180, "epsg", 32180,
+        "NAD83 / SCoPQ zone 2 (deprecated)");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / SCoPQ zone 2 (deprecated)\",GEOGCS[\"NA");
+    add_srs_wkt (p, 1,
+        "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS");
+    add_srs_wkt (p, 2,
+        " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"");
+    add_srs_wkt (p, 3,
+        "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],");
+    add_srs_wkt (p, 4,
+        "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI");
+    add_srs_wkt (p, 5,
+        "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912");
+    add_srs_wkt (p, 6,
+        "2\"]],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve");
+    add_srs_wkt (p, 7,
+        "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA");
+    add_srs_wkt (p, 8,
+        "METER[\"central_meridian\",-55.5],PARAMETER[\"scale_fact");
+    add_srs_wkt (p, 9,
+        "or\",0.9999],PARAMETER[\"false_easting\",304800],PARAMET");
+    add_srs_wkt (p, 10,
+        "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP");
+    add_srs_wkt (p, 11,
+        "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO");
+    add_srs_wkt (p, 12,
+        "RITY[\"EPSG\",\"32180\"]]");
+    p = add_epsg_def (filter, first, last, 32181, "epsg", 32181,
+        "NAD83 / MTM zone 1");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 1\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-53],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32181\"]]");
+    p = add_epsg_def (filter, first, last, 32182, "epsg", 32182,
+        "NAD83 / MTM zone 2");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 2\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-56],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32182\"]]");
+    p = add_epsg_def (filter, first, last, 32183, "epsg", 32183,
+        "NAD83 / MTM zone 3");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 3\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-58.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32183\"]]");
+    p = add_epsg_def (filter, first, last, 32184, "epsg", 32184,
+        "NAD83 / MTM zone 4");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 4\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-61.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32184\"]]");
+    p = add_epsg_def (filter, first, last, 32185, "epsg", 32185,
+        "NAD83 / MTM zone 5");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 5\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-64.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32185\"]]");
+    p = add_epsg_def (filter, first, last, 32186, "epsg", 32186,
+        "NAD83 / MTM zone 6");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 6\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-67.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32186\"]]");
+    p = add_epsg_def (filter, first, last, 32187, "epsg", 32187,
+        "NAD83 / MTM zone 7");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 7\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-70.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32187\"]]");
+    p = add_epsg_def (filter, first, last, 32188, "epsg", 32188,
+        "NAD83 / MTM zone 8");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 8\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32188\"]]");
+    p = add_epsg_def (filter, first, last, 32189, "epsg", 32189,
+        "NAD83 / MTM zone 9");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 9\",GEOGCS[\"NAD83\",DATUM[\"N");
+    add_srs_wkt (p, 1,
+        "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137");
+    add_srs_wkt (p, 2,
+        ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0");
+    add_srs_wkt (p, 3,
+        ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green");
+    add_srs_wkt (p, 4,
+        "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0");
+    add_srs_wkt (p, 5,
+        ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORIT");
+    add_srs_wkt (p, 6,
+        "Y[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32189\"]]");
+    p = add_epsg_def (filter, first, last, 32190, "epsg", 32190,
+        "NAD83 / MTM zone 10");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 10\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32190\"]]");
+    p = add_epsg_def (filter, first, last, 32191, "epsg", 32191,
+        "NAD83 / MTM zone 11");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 ");
+    add_proj4text (p, 1,
+        "+y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 11\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-82.5],PARAMETER[\"scale_factor\",0.9999],P");
+    add_srs_wkt (p, 9,
+        "ARAMETER[\"false_easting\",304800],PARAMETER[\"false_nor");
+    add_srs_wkt (p, 10,
+        "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]");
+    add_srs_wkt (p, 11,
+        "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR");
+    add_srs_wkt (p, 12,
+        "ITY[\"EPSG\",\"32191\"]]");
+    p = add_epsg_def (filter, first, last, 32192, "epsg", 32192,
+        "NAD83 / MTM zone 12");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 12\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-81],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"32192\"]]");
+    p = add_epsg_def (filter, first, last, 32193, "epsg", 32193,
+        "NAD83 / MTM zone 13");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 13\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-84],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"32193\"]]");
+    p = add_epsg_def (filter, first, last, 32194, "epsg", 32194,
+        "NAD83 / MTM zone 14");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 14\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-87],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"32194\"]]");
+    p = add_epsg_def (filter, first, last, 32195, "epsg", 32195,
+        "NAD83 / MTM zone 15");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 15\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-90],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"32195\"]]");
+    p = add_epsg_def (filter, first, last, 32196, "epsg", 32196,
+        "NAD83 / MTM zone 16");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 16\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-93],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"32196\"]]");
+    p = add_epsg_def (filter, first, last, 32197, "epsg", 32197,
+        "NAD83 / MTM zone 17");
+    add_proj4text (p, 0,
+        "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y");
+    add_proj4text (p, 1,
+        "_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / MTM zone 17\",GEOGCS[\"NAD83\",DATUM[\"");
+    add_srs_wkt (p, 1,
+        "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813");
+    add_srs_wkt (p, 2,
+        "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,");
+    add_srs_wkt (p, 3,
+        "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree");
+    add_srs_wkt (p, 4,
+        "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",");
+    add_srs_wkt (p, 5,
+        "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORI");
+    add_srs_wkt (p, 6,
+        "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"");
+    add_srs_wkt (p, 7,
+        "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra");
+    add_srs_wkt (p, 8,
+        "l_meridian\",-96],PARAMETER[\"scale_factor\",0.9999],PAR");
+    add_srs_wkt (p, 9,
+        "AMETER[\"false_easting\",304800],PARAMETER[\"false_north");
+    add_srs_wkt (p, 10,
+        "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt (p, 11,
+        "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT");
+    add_srs_wkt (p, 12,
+        "Y[\"EPSG\",\"32197\"]]");
+    p = add_epsg_def (filter, first, last, 32198, "epsg", 32198,
+        "NAD83 / Quebec Lambert");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_");
+    add_proj4text (p, 1,
+        "0=0 +y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Quebec Lambert\",GEOGCS[\"NAD83\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637");
+    add_srs_wkt (p, 2,
+        "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84");
+    add_srs_wkt (p, 3,
+        "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G");
+    add_srs_wkt (p, 4,
+        "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree");
+    add_srs_wkt (p, 5,
+        "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTH");
+    add_srs_wkt (p, 6,
+        "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal");
+    add_srs_wkt (p, 7,
+        "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARA");
+    add_srs_wkt (p, 8,
+        "METER[\"standard_parallel_2\",46],PARAMETER[\"latitude_o");
+    add_srs_wkt (p, 9,
+        "f_origin\",44],PARAMETER[\"central_meridian\",-68.5],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\"");
+    add_srs_wkt (p, 11,
+        ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 12,
+        "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32198");
+    add_srs_wkt (p, 13,
+        "\"]]");
+    p = add_epsg_def (filter, first, last, 32199, "epsg", 32199,
+        "NAD83 / Louisiana Offshore");
+    add_proj4text (p, 0,
+        "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666");
+    add_proj4text (p, 1,
+        "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +");
+    add_proj4text (p, 2,
+        "y_0=0 +datum=NAD83 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"NAD83 / Louisiana Offshore\",GEOGCS[\"NAD83\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\"");
+    add_srs_wkt (p, 2,
+        ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW");
+    add_srs_wkt (p, 3,
+        "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM");
+    add_srs_wkt (p, 4,
+        "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de");
+    add_srs_wkt (p, 5,
+        "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt (p, 6,
+        "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo");
+    add_srs_wkt (p, 7,
+        "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8");
+    add_srs_wkt (p, 8,
+        "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666");
+    add_srs_wkt (p, 9,
+        "6666666667],PARAMETER[\"latitude_of_origin\",25.5],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"central_meridian\",-91.33333333333333],PARAMETER[");
+    add_srs_wkt (p, 11,
+        "\"false_easting\",1000000],PARAMETER[\"false_northing\",");
+    add_srs_wkt (p, 12,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 13,
+        "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32199\"");
+    add_srs_wkt (p, 14,
+        "]]");
+    p = add_epsg_def (filter, first, last, 32201, "epsg", 32201,
+        "WGS 72 / UTM zone 1N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 1N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32201\"]]");
+    p = add_epsg_def (filter, first, last, 32202, "epsg", 32202,
+        "WGS 72 / UTM zone 2N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 2N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32202\"]]");
+    p = add_epsg_def (filter, first, last, 32203, "epsg", 32203,
+        "WGS 72 / UTM zone 3N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 3N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32203\"]]");
+    p = add_epsg_def (filter, first, last, 32204, "epsg", 32204,
+        "WGS 72 / UTM zone 4N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 4N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32204\"]]");
+}
+
+#endif /* full EPSG initialization enabled/disabled */
+
diff --git a/src/srsinit/epsg_inlined_43.c b/src/srsinit/epsg_inlined_43.c
new file mode 100644
index 0000000..2e263a2
--- /dev/null
+++ b/src/srsinit/epsg_inlined_43.c
@@ -0,0 +1,3290 @@
+/*
+
+ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
+
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+
+Portions created by the Initial Developer are Copyright (C) 2008
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+
+*/
+
+#include <spatialite_private.h>
+
+#ifndef OMIT_EPSG    /* full EPSG initialization enabled */
+
+SPATIALITE_PRIVATE void
+initialize_epsg_43 (int filter, struct epsg_defs **first, struct epsg_defs **last)
+{
+/* initializing the EPSG defs list */
+    struct epsg_defs *p;
+    p = add_epsg_def (filter, first, last, 32205, "epsg", 32205,
+        "WGS 72 / UTM zone 5N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 5N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32205\"]]");
+    p = add_epsg_def (filter, first, last, 32206, "epsg", 32206,
+        "WGS 72 / UTM zone 6N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 6N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32206\"]]");
+    p = add_epsg_def (filter, first, last, 32207, "epsg", 32207,
+        "WGS 72 / UTM zone 7N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 7N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32207\"]]");
+    p = add_epsg_def (filter, first, last, 32208, "epsg", 32208,
+        "WGS 72 / UTM zone 8N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 8N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32208\"]]");
+    p = add_epsg_def (filter, first, last, 32209, "epsg", 32209,
+        "WGS 72 / UTM zone 9N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55");
+    add_proj4text (p, 1,
+        "4,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 9N\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32209\"]]");
+    p = add_epsg_def (filter, first, last, 32210, "epsg", 32210,
+        "WGS 72 / UTM zone 10N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 10N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 10,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 11,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 12,
+        "\"32210\"]]");
+    p = add_epsg_def (filter, first, last, 32211, "epsg", 32211,
+        "WGS 72 / UTM zone 11N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 11N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 10,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 11,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 12,
+        "\"32211\"]]");
+    p = add_epsg_def (filter, first, last, 32212, "epsg", 32212,
+        "WGS 72 / UTM zone 12N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 12N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 10,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 11,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 12,
+        "\"32212\"]]");
+    p = add_epsg_def (filter, first, last, 32213, "epsg", 32213,
+        "WGS 72 / UTM zone 13N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 13N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN");
+    add_srs_wkt (p, 10,
+        "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East");
+    add_srs_wkt (p, 11,
+        "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 12,
+        "\"32213\"]]");
+    p = add_epsg_def (filter, first, last, 32214, "epsg", 32214,
+        "WGS 72 / UTM zone 14N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 14N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32214\"]]");
+    p = add_epsg_def (filter, first, last, 32215, "epsg", 32215,
+        "WGS 72 / UTM zone 15N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 15N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32215\"]]");
+    p = add_epsg_def (filter, first, last, 32216, "epsg", 32216,
+        "WGS 72 / UTM zone 16N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 16N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32216\"]]");
+    p = add_epsg_def (filter, first, last, 32217, "epsg", 32217,
+        "WGS 72 / UTM zone 17N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 17N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32217\"]]");
+    p = add_epsg_def (filter, first, last, 32218, "epsg", 32218,
+        "WGS 72 / UTM zone 18N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 18N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32218\"]]");
+    p = add_epsg_def (filter, first, last, 32219, "epsg", 32219,
+        "WGS 72 / UTM zone 19N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 19N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32219\"]]");
+    p = add_epsg_def (filter, first, last, 32220, "epsg", 32220,
+        "WGS 72 / UTM zone 20N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 20N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32220\"]]");
+    p = add_epsg_def (filter, first, last, 32221, "epsg", 32221,
+        "WGS 72 / UTM zone 21N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 21N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32221\"]]");
+    p = add_epsg_def (filter, first, last, 32222, "epsg", 32222,
+        "WGS 72 / UTM zone 22N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 22N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32222\"]]");
+    p = add_epsg_def (filter, first, last, 32223, "epsg", 32223,
+        "WGS 72 / UTM zone 23N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 23N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32223\"]]");
+    p = add_epsg_def (filter, first, last, 32224, "epsg", 32224,
+        "WGS 72 / UTM zone 24N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 24N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32224\"]]");
+    p = add_epsg_def (filter, first, last, 32225, "epsg", 32225,
+        "WGS 72 / UTM zone 25N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 25N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32225\"]]");
+    p = add_epsg_def (filter, first, last, 32226, "epsg", 32226,
+        "WGS 72 / UTM zone 26N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 26N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32226\"]]");
+    p = add_epsg_def (filter, first, last, 32227, "epsg", 32227,
+        "WGS 72 / UTM zone 27N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 27N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32227\"]]");
+    p = add_epsg_def (filter, first, last, 32228, "epsg", 32228,
+        "WGS 72 / UTM zone 28N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 28N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32228\"]]");
+    p = add_epsg_def (filter, first, last, 32229, "epsg", 32229,
+        "WGS 72 / UTM zone 29N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 29N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32229\"]]");
+    p = add_epsg_def (filter, first, last, 32230, "epsg", 32230,
+        "WGS 72 / UTM zone 30N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 30N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32230\"]]");
+    p = add_epsg_def (filter, first, last, 32231, "epsg", 32231,
+        "WGS 72 / UTM zone 31N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 31N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+    add_srs_wkt (p, 9,
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+    add_srs_wkt (p, 10,
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 11,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 12,
+        "2231\"]]");
+    p = add_epsg_def (filter, first, last, 32232, "epsg", 32232,
+        "WGS 72 / UTM zone 32N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 32N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+    add_srs_wkt (p, 9,
+        "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[");
+    add_srs_wkt (p, 10,
+        "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting");
+    add_srs_wkt (p, 11,
+        "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3");
+    add_srs_wkt (p, 12,
+        "2232\"]]");
+    p = add_epsg_def (filter, first, last, 32233, "epsg", 32233,
+        "WGS 72 / UTM zone 33N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 33N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32233\"]]");
+    p = add_epsg_def (filter, first, last, 32234, "epsg", 32234,
+        "WGS 72 / UTM zone 34N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 34N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32234\"]]");
+    p = add_epsg_def (filter, first, last, 32235, "epsg", 32235,
+        "WGS 72 / UTM zone 35N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 35N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32235\"]]");
+    p = add_epsg_def (filter, first, last, 32236, "epsg", 32236,
+        "WGS 72 / UTM zone 36N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 36N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32236\"]]");
+    p = add_epsg_def (filter, first, last, 32237, "epsg", 32237,
+        "WGS 72 / UTM zone 37N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 37N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32237\"]]");
+    p = add_epsg_def (filter, first, last, 32238, "epsg", 32238,
+        "WGS 72 / UTM zone 38N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 38N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32238\"]]");
+    p = add_epsg_def (filter, first, last, 32239, "epsg", 32239,
+        "WGS 72 / UTM zone 39N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 39N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32239\"]]");
+    p = add_epsg_def (filter, first, last, 32240, "epsg", 32240,
+        "WGS 72 / UTM zone 40N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 40N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32240\"]]");
+    p = add_epsg_def (filter, first, last, 32241, "epsg", 32241,
+        "WGS 72 / UTM zone 41N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 41N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32241\"]]");
+    p = add_epsg_def (filter, first, last, 32242, "epsg", 32242,
+        "WGS 72 / UTM zone 42N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 42N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32242\"]]");
+    p = add_epsg_def (filter, first, last, 32243, "epsg", 32243,
+        "WGS 72 / UTM zone 43N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 43N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32243\"]]");
+    p = add_epsg_def (filter, first, last, 32244, "epsg", 32244,
+        "WGS 72 / UTM zone 44N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 44N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32244\"]]");
+    p = add_epsg_def (filter, first, last, 32245, "epsg", 32245,
+        "WGS 72 / UTM zone 45N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 45N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32245\"]]");
+    p = add_epsg_def (filter, first, last, 32246, "epsg", 32246,
+        "WGS 72 / UTM zone 46N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 46N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32246\"]]");
+    p = add_epsg_def (filter, first, last, 32247, "epsg", 32247,
+        "WGS 72 / UTM zone 47N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 47N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT");
+    add_srs_wkt (p, 10,
+        "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin");
+    add_srs_wkt (p, 11,
+        "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32247\"]]");
+    p = add_epsg_def (filter, first, last, 32248, "epsg", 32248,
+        "WGS 72 / UTM zone 48N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 48N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32248\"]]");
+    p = add_epsg_def (filter, first, last, 32249, "epsg", 32249,
+        "WGS 72 / UTM zone 49N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 49N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32249\"]]");
+    p = add_epsg_def (filter, first, last, 32250, "epsg", 32250,
+        "WGS 72 / UTM zone 50N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 50N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32250\"]]");
+    p = add_epsg_def (filter, first, last, 32251, "epsg", 32251,
+        "WGS 72 / UTM zone 51N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 51N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32251\"]]");
+    p = add_epsg_def (filter, first, last, 32252, "epsg", 32252,
+        "WGS 72 / UTM zone 52N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 52N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32252\"]]");
+    p = add_epsg_def (filter, first, last, 32253, "epsg", 32253,
+        "WGS 72 / UTM zone 53N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 53N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32253\"]]");
+    p = add_epsg_def (filter, first, last, 32254, "epsg", 32254,
+        "WGS 72 / UTM zone 54N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 54N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32254\"]]");
+    p = add_epsg_def (filter, first, last, 32255, "epsg", 32255,
+        "WGS 72 / UTM zone 55N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 55N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32255\"]]");
+    p = add_epsg_def (filter, first, last, 32256, "epsg", 32256,
+        "WGS 72 / UTM zone 56N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 56N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32256\"]]");
+    p = add_epsg_def (filter, first, last, 32257, "epsg", 32257,
+        "WGS 72 / UTM zone 57N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 57N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32257\"]]");
+    p = add_epsg_def (filter, first, last, 32258, "epsg", 32258,
+        "WGS 72 / UTM zone 58N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 58N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32258\"]]");
+    p = add_epsg_def (filter, first, last, 32259, "epsg", 32259,
+        "WGS 72 / UTM zone 59N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 59N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32259\"]]");
+    p = add_epsg_def (filter, first, last, 32260, "epsg", 32260,
+        "WGS 72 / UTM zone 60N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5");
+    add_proj4text (p, 1,
+        "54,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 60N\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI");
+    add_srs_wkt (p, 10,
+        "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti");
+    add_srs_wkt (p, 11,
+        "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 12,
+        "32260\"]]");
+    p = add_epsg_def (filter, first, last, 32301, "epsg", 32301,
+        "WGS 72 / UTM zone 1S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 1S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32301\"]]");
+    p = add_epsg_def (filter, first, last, 32302, "epsg", 32302,
+        "WGS 72 / UTM zone 2S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 2S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32302\"]]");
+    p = add_epsg_def (filter, first, last, 32303, "epsg", 32303,
+        "WGS 72 / UTM zone 3S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 3S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32303\"]]");
+    p = add_epsg_def (filter, first, last, 32304, "epsg", 32304,
+        "WGS 72 / UTM zone 4S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 4S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32304\"]]");
+    p = add_epsg_def (filter, first, last, 32305, "epsg", 32305,
+        "WGS 72 / UTM zone 5S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 5S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32305\"]]");
+    p = add_epsg_def (filter, first, last, 32306, "epsg", 32306,
+        "WGS 72 / UTM zone 6S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 6S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32306\"]]");
+    p = add_epsg_def (filter, first, last, 32307, "epsg", 32307,
+        "WGS 72 / UTM zone 7S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 7S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32307\"]]");
+    p = add_epsg_def (filter, first, last, 32308, "epsg", 32308,
+        "WGS 72 / UTM zone 8S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 8S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32308\"]]");
+    p = add_epsg_def (filter, first, last, 32309, "epsg", 32309,
+        "WGS 72 / UTM zone 9S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,4.5,0");
+    add_proj4text (p, 1,
+        ",0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 9S\",GEOGCS[\"WGS 72\",DATUM[");
+    add_srs_wkt (p, 1,
+        "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT");
+    add_srs_wkt (p, 2,
+        "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],");
+    add_srs_wkt (p, 3,
+        "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT");
+    add_srs_wkt (p, 4,
+        "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251");
+    add_srs_wkt (p, 5,
+        "99433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"");
+    add_srs_wkt (p, 6,
+        "4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"");
+    add_srs_wkt (p, 7,
+        "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-");
+    add_srs_wkt (p, 8,
+        "129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32309\"]]");
+    p = add_epsg_def (filter, first, last, 32310, "epsg", 32310,
+        "WGS 72 / UTM zone 10S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 10S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+    add_srs_wkt (p, 10,
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 11,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"32310\"]]");
+    p = add_epsg_def (filter, first, last, 32311, "epsg", 32311,
+        "WGS 72 / UTM zone 11S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 11S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+    add_srs_wkt (p, 10,
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 11,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"32311\"]]");
+    p = add_epsg_def (filter, first, last, 32312, "epsg", 32312,
+        "WGS 72 / UTM zone 12S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 12S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+    add_srs_wkt (p, 10,
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 11,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"32312\"]]");
+    p = add_epsg_def (filter, first, last, 32313, "epsg", 32313,
+        "WGS 72 / UTM zone 13S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 13S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fa");
+    add_srs_wkt (p, 9,
+        "lse_easting\",500000],PARAMETER[\"false_northing\",10000");
+    add_srs_wkt (p, 10,
+        "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS");
+    add_srs_wkt (p, 11,
+        "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"");
+    add_srs_wkt (p, 12,
+        "EPSG\",\"32313\"]]");
+    p = add_epsg_def (filter, first, last, 32314, "epsg", 32314,
+        "WGS 72 / UTM zone 14S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 14S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32314\"]]");
+    p = add_epsg_def (filter, first, last, 32315, "epsg", 32315,
+        "WGS 72 / UTM zone 15S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 15S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32315\"]]");
+    p = add_epsg_def (filter, first, last, 32316, "epsg", 32316,
+        "WGS 72 / UTM zone 16S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 16S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32316\"]]");
+    p = add_epsg_def (filter, first, last, 32317, "epsg", 32317,
+        "WGS 72 / UTM zone 17S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 17S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32317\"]]");
+    p = add_epsg_def (filter, first, last, 32318, "epsg", 32318,
+        "WGS 72 / UTM zone 18S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 18S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32318\"]]");
+    p = add_epsg_def (filter, first, last, 32319, "epsg", 32319,
+        "WGS 72 / UTM zone 19S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 19S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32319\"]]");
+    p = add_epsg_def (filter, first, last, 32320, "epsg", 32320,
+        "WGS 72 / UTM zone 20S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 20S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32320\"]]");
+    p = add_epsg_def (filter, first, last, 32321, "epsg", 32321,
+        "WGS 72 / UTM zone 21S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 21S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32321\"]]");
+    p = add_epsg_def (filter, first, last, 32322, "epsg", 32322,
+        "WGS 72 / UTM zone 22S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 22S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32322\"]]");
+    p = add_epsg_def (filter, first, last, 32323, "epsg", 32323,
+        "WGS 72 / UTM zone 23S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 23S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32323\"]]");
+    p = add_epsg_def (filter, first, last, 32324, "epsg", 32324,
+        "WGS 72 / UTM zone 24S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 24S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32324\"]]");
+    p = add_epsg_def (filter, first, last, 32325, "epsg", 32325,
+        "WGS 72 / UTM zone 25S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 25S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32325\"]]");
+    p = add_epsg_def (filter, first, last, 32326, "epsg", 32326,
+        "WGS 72 / UTM zone 26S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 26S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32326\"]]");
+    p = add_epsg_def (filter, first, last, 32327, "epsg", 32327,
+        "WGS 72 / UTM zone 27S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 27S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32327\"]]");
+    p = add_epsg_def (filter, first, last, 32328, "epsg", 32328,
+        "WGS 72 / UTM zone 28S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 28S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32328\"]]");
+    p = add_epsg_def (filter, first, last, 32329, "epsg", 32329,
+        "WGS 72 / UTM zone 29S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 29S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32329\"]]");
+    p = add_epsg_def (filter, first, last, 32330, "epsg", 32330,
+        "WGS 72 / UTM zone 30S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 30S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32330\"]]");
+    p = add_epsg_def (filter, first, last, 32331, "epsg", 32331,
+        "WGS 72 / UTM zone 31S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 31S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+    add_srs_wkt (p, 9,
+        "_easting\",500000],PARAMETER[\"false_northing\",10000000");
+    add_srs_wkt (p, 10,
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32331\"]]");
+    p = add_epsg_def (filter, first, last, 32332, "epsg", 32332,
+        "WGS 72 / UTM zone 32S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 32S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false");
+    add_srs_wkt (p, 9,
+        "_easting\",500000],PARAMETER[\"false_northing\",10000000");
+    add_srs_wkt (p, 10,
+        "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32332\"]]");
+    p = add_epsg_def (filter, first, last, 32333, "epsg", 32333,
+        "WGS 72 / UTM zone 33S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 33S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32333\"]]");
+    p = add_epsg_def (filter, first, last, 32334, "epsg", 32334,
+        "WGS 72 / UTM zone 34S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 34S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32334\"]]");
+    p = add_epsg_def (filter, first, last, 32335, "epsg", 32335,
+        "WGS 72 / UTM zone 35S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 35S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32335\"]]");
+    p = add_epsg_def (filter, first, last, 32336, "epsg", 32336,
+        "WGS 72 / UTM zone 36S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 36S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32336\"]]");
+    p = add_epsg_def (filter, first, last, 32337, "epsg", 32337,
+        "WGS 72 / UTM zone 37S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 37S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32337\"]]");
+    p = add_epsg_def (filter, first, last, 32338, "epsg", 32338,
+        "WGS 72 / UTM zone 38S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 38S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32338\"]]");
+    p = add_epsg_def (filter, first, last, 32339, "epsg", 32339,
+        "WGS 72 / UTM zone 39S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 39S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32339\"]]");
+    p = add_epsg_def (filter, first, last, 32340, "epsg", 32340,
+        "WGS 72 / UTM zone 40S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 40S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",57],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32340\"]]");
+    p = add_epsg_def (filter, first, last, 32341, "epsg", 32341,
+        "WGS 72 / UTM zone 41S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 41S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",63],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32341\"]]");
+    p = add_epsg_def (filter, first, last, 32342, "epsg", 32342,
+        "WGS 72 / UTM zone 42S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 42S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",69],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32342\"]]");
+    p = add_epsg_def (filter, first, last, 32343, "epsg", 32343,
+        "WGS 72 / UTM zone 43S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 43S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",75],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32343\"]]");
+    p = add_epsg_def (filter, first, last, 32344, "epsg", 32344,
+        "WGS 72 / UTM zone 44S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 44S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32344\"]]");
+    p = add_epsg_def (filter, first, last, 32345, "epsg", 32345,
+        "WGS 72 / UTM zone 45S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 45S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",87],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32345\"]]");
+}
+
+#endif /* full EPSG initialization enabled/disabled */
+
diff --git a/src/srsinit/epsg_inlined_44.c b/src/srsinit/epsg_inlined_44.c
new file mode 100644
index 0000000..be3c099
--- /dev/null
+++ b/src/srsinit/epsg_inlined_44.c
@@ -0,0 +1,3290 @@
+/*
+
+ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
+
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+
+Portions created by the Initial Developer are Copyright (C) 2008
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+
+*/
+
+#include <spatialite_private.h>
+
+#ifndef OMIT_EPSG    /* full EPSG initialization enabled */
+
+SPATIALITE_PRIVATE void
+initialize_epsg_44 (int filter, struct epsg_defs **first, struct epsg_defs **last)
+{
+/* initializing the EPSG defs list */
+    struct epsg_defs *p;
+    p = add_epsg_def (filter, first, last, 32346, "epsg", 32346,
+        "WGS 72 / UTM zone 46S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 46S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32346\"]]");
+    p = add_epsg_def (filter, first, last, 32347, "epsg", 32347,
+        "WGS 72 / UTM zone 47S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 47S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fals");
+    add_srs_wkt (p, 9,
+        "e_easting\",500000],PARAMETER[\"false_northing\",1000000");
+    add_srs_wkt (p, 10,
+        "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"");
+    add_srs_wkt (p, 11,
+        "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS");
+    add_srs_wkt (p, 12,
+        "G\",\"32347\"]]");
+    p = add_epsg_def (filter, first, last, 32348, "epsg", 32348,
+        "WGS 72 / UTM zone 48S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 48S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32348\"]]");
+    p = add_epsg_def (filter, first, last, 32349, "epsg", 32349,
+        "WGS 72 / UTM zone 49S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 49S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32349\"]]");
+    p = add_epsg_def (filter, first, last, 32350, "epsg", 32350,
+        "WGS 72 / UTM zone 50S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 50S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32350\"]]");
+    p = add_epsg_def (filter, first, last, 32351, "epsg", 32351,
+        "WGS 72 / UTM zone 51S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 51S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32351\"]]");
+    p = add_epsg_def (filter, first, last, 32352, "epsg", 32352,
+        "WGS 72 / UTM zone 52S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 52S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32352\"]]");
+    p = add_epsg_def (filter, first, last, 32353, "epsg", 32353,
+        "WGS 72 / UTM zone 53S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 53S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32353\"]]");
+    p = add_epsg_def (filter, first, last, 32354, "epsg", 32354,
+        "WGS 72 / UTM zone 54S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 54S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32354\"]]");
+    p = add_epsg_def (filter, first, last, 32355, "epsg", 32355,
+        "WGS 72 / UTM zone 55S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 55S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32355\"]]");
+    p = add_epsg_def (filter, first, last, 32356, "epsg", 32356,
+        "WGS 72 / UTM zone 56S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 56S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32356\"]]");
+    p = add_epsg_def (filter, first, last, 32357, "epsg", 32357,
+        "WGS 72 / UTM zone 57S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 57S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32357\"]]");
+    p = add_epsg_def (filter, first, last, 32358, "epsg", 32358,
+        "WGS 72 / UTM zone 58S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 58S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32358\"]]");
+    p = add_epsg_def (filter, first, last, 32359, "epsg", 32359,
+        "WGS 72 / UTM zone 59S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 59S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",171],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32359\"]]");
+    p = add_epsg_def (filter, first, last, 32360, "epsg", 32360,
+        "WGS 72 / UTM zone 60S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,4.5,");
+    add_proj4text (p, 1,
+        "0,0,0.554,0.2263 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72 / UTM zone 60S\",GEOGCS[\"WGS 72\",DATUM");
+    add_srs_wkt (p, 1,
+        "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI");
+    add_srs_wkt (p, 2,
+        "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]");
+    add_srs_wkt (p, 3,
+        ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU");
+    add_srs_wkt (p, 4,
+        "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925");
+    add_srs_wkt (p, 5,
+        "199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"4322\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER");
+    add_srs_wkt (p, 7,
+        "[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\"");
+    add_srs_wkt (p, 8,
+        ",177],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal");
+    add_srs_wkt (p, 9,
+        "se_easting\",500000],PARAMETER[\"false_northing\",100000");
+    add_srs_wkt (p, 10,
+        "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[");
+    add_srs_wkt (p, 11,
+        "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E");
+    add_srs_wkt (p, 12,
+        "PSG\",\"32360\"]]");
+    p = add_epsg_def (filter, first, last, 32401, "epsg", 32401,
+        "WGS 72BE / UTM zone 1N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 1N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32401\"]]");
+    p = add_epsg_def (filter, first, last, 32402, "epsg", 32402,
+        "WGS 72BE / UTM zone 2N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 2N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32402\"]]");
+    p = add_epsg_def (filter, first, last, 32403, "epsg", 32403,
+        "WGS 72BE / UTM zone 3N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 3N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32403\"]]");
+    p = add_epsg_def (filter, first, last, 32404, "epsg", 32404,
+        "WGS 72BE / UTM zone 4N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 4N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32404\"]]");
+    p = add_epsg_def (filter, first, last, 32405, "epsg", 32405,
+        "WGS 72BE / UTM zone 5N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 5N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32405\"]]");
+    p = add_epsg_def (filter, first, last, 32406, "epsg", 32406,
+        "WGS 72BE / UTM zone 6N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 6N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32406\"]]");
+    p = add_epsg_def (filter, first, last, 32407, "epsg", 32407,
+        "WGS 72BE / UTM zone 7N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 7N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32407\"]]");
+    p = add_epsg_def (filter, first, last, 32408, "epsg", 32408,
+        "WGS 72BE / UTM zone 8N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 8N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32408\"]]");
+    p = add_epsg_def (filter, first, last, 32409, "epsg", 32409,
+        "WGS 72BE / UTM zone 9N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81");
+    add_proj4text (p, 1,
+        "4,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 9N\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32409\"]]");
+    p = add_epsg_def (filter, first, last, 32410, "epsg", 32410,
+        "WGS 72BE / UTM zone 10N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 10N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32410\"]]");
+    p = add_epsg_def (filter, first, last, 32411, "epsg", 32411,
+        "WGS 72BE / UTM zone 11N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 11N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32411\"]]");
+    p = add_epsg_def (filter, first, last, 32412, "epsg", 32412,
+        "WGS 72BE / UTM zone 12N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 12N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32412\"]]");
+    p = add_epsg_def (filter, first, last, 32413, "epsg", 32413,
+        "WGS 72BE / UTM zone 13N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 13N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[");
+    add_srs_wkt (p, 11,
+        "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi");
+    add_srs_wkt (p, 12,
+        "ng\",NORTH],AUTHORITY[\"EPSG\",\"32413\"]]");
+    p = add_epsg_def (filter, first, last, 32414, "epsg", 32414,
+        "WGS 72BE / UTM zone 14N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 14N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32414\"]]");
+    p = add_epsg_def (filter, first, last, 32415, "epsg", 32415,
+        "WGS 72BE / UTM zone 15N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 15N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32415\"]]");
+    p = add_epsg_def (filter, first, last, 32416, "epsg", 32416,
+        "WGS 72BE / UTM zone 16N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 16N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32416\"]]");
+    p = add_epsg_def (filter, first, last, 32417, "epsg", 32417,
+        "WGS 72BE / UTM zone 17N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 17N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32417\"]]");
+    p = add_epsg_def (filter, first, last, 32418, "epsg", 32418,
+        "WGS 72BE / UTM zone 18N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 18N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32418\"]]");
+    p = add_epsg_def (filter, first, last, 32419, "epsg", 32419,
+        "WGS 72BE / UTM zone 19N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 19N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32419\"]]");
+    p = add_epsg_def (filter, first, last, 32420, "epsg", 32420,
+        "WGS 72BE / UTM zone 20N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 20N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32420\"]]");
+    p = add_epsg_def (filter, first, last, 32421, "epsg", 32421,
+        "WGS 72BE / UTM zone 21N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 21N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32421\"]]");
+    p = add_epsg_def (filter, first, last, 32422, "epsg", 32422,
+        "WGS 72BE / UTM zone 22N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 22N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32422\"]]");
+    p = add_epsg_def (filter, first, last, 32423, "epsg", 32423,
+        "WGS 72BE / UTM zone 23N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 23N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32423\"]]");
+    p = add_epsg_def (filter, first, last, 32424, "epsg", 32424,
+        "WGS 72BE / UTM zone 24N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 24N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32424\"]]");
+    p = add_epsg_def (filter, first, last, 32425, "epsg", 32425,
+        "WGS 72BE / UTM zone 25N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 25N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32425\"]]");
+    p = add_epsg_def (filter, first, last, 32426, "epsg", 32426,
+        "WGS 72BE / UTM zone 26N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 26N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32426\"]]");
+    p = add_epsg_def (filter, first, last, 32427, "epsg", 32427,
+        "WGS 72BE / UTM zone 27N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 27N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32427\"]]");
+    p = add_epsg_def (filter, first, last, 32428, "epsg", 32428,
+        "WGS 72BE / UTM zone 28N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 28N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32428\"]]");
+    p = add_epsg_def (filter, first, last, 32429, "epsg", 32429,
+        "WGS 72BE / UTM zone 29N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 29N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32429\"]]");
+    p = add_epsg_def (filter, first, last, 32430, "epsg", 32430,
+        "WGS 72BE / UTM zone 30N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 30N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32430\"]]");
+    p = add_epsg_def (filter, first, last, 32431, "epsg", 32431,
+        "WGS 72BE / UTM zone 31N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 31N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+    add_srs_wkt (p, 11,
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 12,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32431\"]]");
+    p = add_epsg_def (filter, first, last, 32432, "epsg", 32432,
+        "WGS 72BE / UTM zone 32N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 32N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E");
+    add_srs_wkt (p, 11,
+        "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\"");
+    add_srs_wkt (p, 12,
+        ",NORTH],AUTHORITY[\"EPSG\",\"32432\"]]");
+    p = add_epsg_def (filter, first, last, 32433, "epsg", 32433,
+        "WGS 72BE / UTM zone 33N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 33N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32433\"]]");
+    p = add_epsg_def (filter, first, last, 32434, "epsg", 32434,
+        "WGS 72BE / UTM zone 34N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 34N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32434\"]]");
+    p = add_epsg_def (filter, first, last, 32435, "epsg", 32435,
+        "WGS 72BE / UTM zone 35N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 35N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32435\"]]");
+    p = add_epsg_def (filter, first, last, 32436, "epsg", 32436,
+        "WGS 72BE / UTM zone 36N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 36N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32436\"]]");
+    p = add_epsg_def (filter, first, last, 32437, "epsg", 32437,
+        "WGS 72BE / UTM zone 37N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 37N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32437\"]]");
+    p = add_epsg_def (filter, first, last, 32438, "epsg", 32438,
+        "WGS 72BE / UTM zone 38N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 38N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32438\"]]");
+    p = add_epsg_def (filter, first, last, 32439, "epsg", 32439,
+        "WGS 72BE / UTM zone 39N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 39N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32439\"]]");
+    p = add_epsg_def (filter, first, last, 32440, "epsg", 32440,
+        "WGS 72BE / UTM zone 40N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 40N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32440\"]]");
+    p = add_epsg_def (filter, first, last, 32441, "epsg", 32441,
+        "WGS 72BE / UTM zone 41N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 41N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32441\"]]");
+    p = add_epsg_def (filter, first, last, 32442, "epsg", 32442,
+        "WGS 72BE / UTM zone 42N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 42N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32442\"]]");
+    p = add_epsg_def (filter, first, last, 32443, "epsg", 32443,
+        "WGS 72BE / UTM zone 43N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 43N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32443\"]]");
+    p = add_epsg_def (filter, first, last, 32444, "epsg", 32444,
+        "WGS 72BE / UTM zone 44N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 44N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32444\"]]");
+    p = add_epsg_def (filter, first, last, 32445, "epsg", 32445,
+        "WGS 72BE / UTM zone 45N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 45N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32445\"]]");
+    p = add_epsg_def (filter, first, last, 32446, "epsg", 32446,
+        "WGS 72BE / UTM zone 46N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 46N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32446\"]]");
+    p = add_epsg_def (filter, first, last, 32447, "epsg", 32447,
+        "WGS 72BE / UTM zone 47N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 47N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32447\"]]");
+    p = add_epsg_def (filter, first, last, 32448, "epsg", 32448,
+        "WGS 72BE / UTM zone 48N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 48N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32448\"]]");
+    p = add_epsg_def (filter, first, last, 32449, "epsg", 32449,
+        "WGS 72BE / UTM zone 49N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 49N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32449\"]]");
+    p = add_epsg_def (filter, first, last, 32450, "epsg", 32450,
+        "WGS 72BE / UTM zone 50N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 50N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32450\"]]");
+    p = add_epsg_def (filter, first, last, 32451, "epsg", 32451,
+        "WGS 72BE / UTM zone 51N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 51N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32451\"]]");
+    p = add_epsg_def (filter, first, last, 32452, "epsg", 32452,
+        "WGS 72BE / UTM zone 52N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 52N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32452\"]]");
+    p = add_epsg_def (filter, first, last, 32453, "epsg", 32453,
+        "WGS 72BE / UTM zone 53N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 53N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32453\"]]");
+    p = add_epsg_def (filter, first, last, 32454, "epsg", 32454,
+        "WGS 72BE / UTM zone 54N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 54N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32454\"]]");
+    p = add_epsg_def (filter, first, last, 32455, "epsg", 32455,
+        "WGS 72BE / UTM zone 55N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 55N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32455\"]]");
+    p = add_epsg_def (filter, first, last, 32456, "epsg", 32456,
+        "WGS 72BE / UTM zone 56N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 56N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32456\"]]");
+    p = add_epsg_def (filter, first, last, 32457, "epsg", 32457,
+        "WGS 72BE / UTM zone 57N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 57N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32457\"]]");
+    p = add_epsg_def (filter, first, last, 32458, "epsg", 32458,
+        "WGS 72BE / UTM zone 58N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 58N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32458\"]]");
+    p = add_epsg_def (filter, first, last, 32459, "epsg", 32459,
+        "WGS 72BE / UTM zone 59N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 59N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32459\"]]");
+    p = add_epsg_def (filter, first, last, 32460, "epsg", 32460,
+        "WGS 72BE / UTM zone 60N");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8");
+    add_proj4text (p, 1,
+        "14,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 60N\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"");
+    add_srs_wkt (p, 11,
+        "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing");
+    add_srs_wkt (p, 12,
+        "\",NORTH],AUTHORITY[\"EPSG\",\"32460\"]]");
+    p = add_epsg_def (filter, first, last, 32501, "epsg", 32501,
+        "WGS 72BE / UTM zone 1S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 1S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-177],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32501\"]]");
+    p = add_epsg_def (filter, first, last, 32502, "epsg", 32502,
+        "WGS 72BE / UTM zone 2S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 2S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32502\"]]");
+    p = add_epsg_def (filter, first, last, 32503, "epsg", 32503,
+        "WGS 72BE / UTM zone 3S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 3S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-165],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32503\"]]");
+    p = add_epsg_def (filter, first, last, 32504, "epsg", 32504,
+        "WGS 72BE / UTM zone 4S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 4S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32504\"]]");
+    p = add_epsg_def (filter, first, last, 32505, "epsg", 32505,
+        "WGS 72BE / UTM zone 5S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 5S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32505\"]]");
+    p = add_epsg_def (filter, first, last, 32506, "epsg", 32506,
+        "WGS 72BE / UTM zone 6S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 6S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-147],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32506\"]]");
+    p = add_epsg_def (filter, first, last, 32507, "epsg", 32507,
+        "WGS 72BE / UTM zone 7S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 7S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32507\"]]");
+    p = add_epsg_def (filter, first, last, 32508, "epsg", 32508,
+        "WGS 72BE / UTM zone 8S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 8S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32508\"]]");
+    p = add_epsg_def (filter, first, last, 32509, "epsg", 32509,
+        "WGS 72BE / UTM zone 9S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0");
+    add_proj4text (p, 1,
+        ",0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 9S\",GEOGCS[\"WGS 72BE\",DA");
+    add_srs_wkt (p, 1,
+        "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32509\"]]");
+    p = add_epsg_def (filter, first, last, 32510, "epsg", 32510,
+        "WGS 72BE / UTM zone 10S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 10S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32510\"]]");
+    p = add_epsg_def (filter, first, last, 32511, "epsg", 32511,
+        "WGS 72BE / UTM zone 11S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 11S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32511\"]]");
+    p = add_epsg_def (filter, first, last, 32512, "epsg", 32512,
+        "WGS 72BE / UTM zone 12S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 12S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32512\"]]");
+    p = add_epsg_def (filter, first, last, 32513, "epsg", 32513,
+        "WGS 72BE / UTM zone 13S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 13S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale_");
+    add_srs_wkt (p, 9,
+        "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR");
+    add_srs_wkt (p, 10,
+        "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT");
+    add_srs_wkt (p, 11,
+        "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32513\"]]");
+    p = add_epsg_def (filter, first, last, 32514, "epsg", 32514,
+        "WGS 72BE / UTM zone 14S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 14S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32514\"]]");
+    p = add_epsg_def (filter, first, last, 32515, "epsg", 32515,
+        "WGS 72BE / UTM zone 15S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 15S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32515\"]]");
+    p = add_epsg_def (filter, first, last, 32516, "epsg", 32516,
+        "WGS 72BE / UTM zone 16S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 16S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32516\"]]");
+    p = add_epsg_def (filter, first, last, 32517, "epsg", 32517,
+        "WGS 72BE / UTM zone 17S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 17S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32517\"]]");
+    p = add_epsg_def (filter, first, last, 32518, "epsg", 32518,
+        "WGS 72BE / UTM zone 18S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 18S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32518\"]]");
+    p = add_epsg_def (filter, first, last, 32519, "epsg", 32519,
+        "WGS 72BE / UTM zone 19S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 19S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32519\"]]");
+    p = add_epsg_def (filter, first, last, 32520, "epsg", 32520,
+        "WGS 72BE / UTM zone 20S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 20S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32520\"]]");
+    p = add_epsg_def (filter, first, last, 32521, "epsg", 32521,
+        "WGS 72BE / UTM zone 21S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 21S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32521\"]]");
+    p = add_epsg_def (filter, first, last, 32522, "epsg", 32522,
+        "WGS 72BE / UTM zone 22S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 22S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32522\"]]");
+    p = add_epsg_def (filter, first, last, 32523, "epsg", 32523,
+        "WGS 72BE / UTM zone 23S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 23S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32523\"]]");
+    p = add_epsg_def (filter, first, last, 32524, "epsg", 32524,
+        "WGS 72BE / UTM zone 24S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 24S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32524\"]]");
+    p = add_epsg_def (filter, first, last, 32525, "epsg", 32525,
+        "WGS 72BE / UTM zone 25S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 25S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32525\"]]");
+    p = add_epsg_def (filter, first, last, 32526, "epsg", 32526,
+        "WGS 72BE / UTM zone 26S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 26S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32526\"]]");
+}
+
+#endif /* full EPSG initialization enabled/disabled */
+
diff --git a/src/srsinit/epsg_inlined_45.c b/src/srsinit/epsg_inlined_45.c
new file mode 100644
index 0000000..7775252
--- /dev/null
+++ b/src/srsinit/epsg_inlined_45.c
@@ -0,0 +1,1146 @@
+/*
+
+ helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
+
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
+
+ Author: Sandro Furieri a.furieri at lqt.it
+
+ -----------------------------------------------------------------------------
+
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+
+Portions created by the Initial Developer are Copyright (C) 2008
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+
+*/
+
+#include <spatialite_private.h>
+
+#ifndef OMIT_EPSG    /* full EPSG initialization enabled */
+
+SPATIALITE_PRIVATE void
+initialize_epsg_45 (int filter, struct epsg_defs **first, struct epsg_defs **last)
+{
+/* initializing the EPSG defs list */
+    struct epsg_defs *p;
+    p = add_epsg_def (filter, first, last, 32527, "epsg", 32527,
+        "WGS 72BE / UTM zone 27S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 27S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32527\"]]");
+    p = add_epsg_def (filter, first, last, 32528, "epsg", 32528,
+        "WGS 72BE / UTM zone 28S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 28S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32528\"]]");
+    p = add_epsg_def (filter, first, last, 32529, "epsg", 32529,
+        "WGS 72BE / UTM zone 29S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 29S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32529\"]]");
+    p = add_epsg_def (filter, first, last, 32530, "epsg", 32530,
+        "WGS 72BE / UTM zone 30S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 30S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32530\"]]");
+    p = add_epsg_def (filter, first, last, 32531, "epsg", 32531,
+        "WGS 72BE / UTM zone 31S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 31S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+    add_srs_wkt (p, 11,
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+    add_srs_wkt (p, 12,
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32531\"]]");
+    p = add_epsg_def (filter, first, last, 32532, "epsg", 32532,
+        "WGS 72BE / UTM zone 32S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 32S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac");
+    add_srs_wkt (p, 9,
+        "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME");
+    add_srs_wkt (p, 10,
+        "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR");
+    add_srs_wkt (p, 11,
+        "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No");
+    add_srs_wkt (p, 12,
+        "rthing\",NORTH],AUTHORITY[\"EPSG\",\"32532\"]]");
+    p = add_epsg_def (filter, first, last, 32533, "epsg", 32533,
+        "WGS 72BE / UTM zone 33S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 33S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32533\"]]");
+    p = add_epsg_def (filter, first, last, 32534, "epsg", 32534,
+        "WGS 72BE / UTM zone 34S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 34S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32534\"]]");
+    p = add_epsg_def (filter, first, last, 32535, "epsg", 32535,
+        "WGS 72BE / UTM zone 35S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 35S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32535\"]]");
+    p = add_epsg_def (filter, first, last, 32536, "epsg", 32536,
+        "WGS 72BE / UTM zone 36S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 36S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32536\"]]");
+    p = add_epsg_def (filter, first, last, 32537, "epsg", 32537,
+        "WGS 72BE / UTM zone 37S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 37S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32537\"]]");
+    p = add_epsg_def (filter, first, last, 32538, "epsg", 32538,
+        "WGS 72BE / UTM zone 38S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 38S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32538\"]]");
+    p = add_epsg_def (filter, first, last, 32539, "epsg", 32539,
+        "WGS 72BE / UTM zone 39S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 39S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32539\"]]");
+    p = add_epsg_def (filter, first, last, 32540, "epsg", 32540,
+        "WGS 72BE / UTM zone 40S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 40S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32540\"]]");
+    p = add_epsg_def (filter, first, last, 32541, "epsg", 32541,
+        "WGS 72BE / UTM zone 41S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 41S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",63],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32541\"]]");
+    p = add_epsg_def (filter, first, last, 32542, "epsg", 32542,
+        "WGS 72BE / UTM zone 42S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 42S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32542\"]]");
+    p = add_epsg_def (filter, first, last, 32543, "epsg", 32543,
+        "WGS 72BE / UTM zone 43S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 43S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32543\"]]");
+    p = add_epsg_def (filter, first, last, 32544, "epsg", 32544,
+        "WGS 72BE / UTM zone 44S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 44S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32544\"]]");
+    p = add_epsg_def (filter, first, last, 32545, "epsg", 32545,
+        "WGS 72BE / UTM zone 45S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 45S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32545\"]]");
+    p = add_epsg_def (filter, first, last, 32546, "epsg", 32546,
+        "WGS 72BE / UTM zone 46S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 46S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32546\"]]");
+    p = add_epsg_def (filter, first, last, 32547, "epsg", 32547,
+        "WGS 72BE / UTM zone 47S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 47S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_fa");
+    add_srs_wkt (p, 9,
+        "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM");
+    add_srs_wkt (p, 10,
+        "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO");
+    add_srs_wkt (p, 11,
+        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N");
+    add_srs_wkt (p, 12,
+        "orthing\",NORTH],AUTHORITY[\"EPSG\",\"32547\"]]");
+    p = add_epsg_def (filter, first, last, 32548, "epsg", 32548,
+        "WGS 72BE / UTM zone 48S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 48S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32548\"]]");
+    p = add_epsg_def (filter, first, last, 32549, "epsg", 32549,
+        "WGS 72BE / UTM zone 49S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 49S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32549\"]]");
+    p = add_epsg_def (filter, first, last, 32550, "epsg", 32550,
+        "WGS 72BE / UTM zone 50S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 50S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32550\"]]");
+    p = add_epsg_def (filter, first, last, 32551, "epsg", 32551,
+        "WGS 72BE / UTM zone 51S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 51S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32551\"]]");
+    p = add_epsg_def (filter, first, last, 32552, "epsg", 32552,
+        "WGS 72BE / UTM zone 52S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 52S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32552\"]]");
+    p = add_epsg_def (filter, first, last, 32553, "epsg", 32553,
+        "WGS 72BE / UTM zone 53S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 53S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32553\"]]");
+    p = add_epsg_def (filter, first, last, 32554, "epsg", 32554,
+        "WGS 72BE / UTM zone 54S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 54S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32554\"]]");
+    p = add_epsg_def (filter, first, last, 32555, "epsg", 32555,
+        "WGS 72BE / UTM zone 55S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 55S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32555\"]]");
+    p = add_epsg_def (filter, first, last, 32556, "epsg", 32556,
+        "WGS 72BE / UTM zone 56S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 56S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32556\"]]");
+    p = add_epsg_def (filter, first, last, 32557, "epsg", 32557,
+        "WGS 72BE / UTM zone 57S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 57S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",159],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32557\"]]");
+    p = add_epsg_def (filter, first, last, 32558, "epsg", 32558,
+        "WGS 72BE / UTM zone 58S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 58S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32558\"]]");
+    p = add_epsg_def (filter, first, last, 32559, "epsg", 32559,
+        "WGS 72BE / UTM zone 59S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 59S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",171],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32559\"]]");
+    p = add_epsg_def (filter, first, last, 32560, "epsg", 32560,
+        "WGS 72BE / UTM zone 60S");
+    add_proj4text (p, 0,
+        "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,");
+    add_proj4text (p, 1,
+        "0,0,0.814,-0.38 +units=m +no_defs");
+    add_srs_wkt (p, 0,
+        "PROJCS[\"WGS 72BE / UTM zone 60S\",GEOGCS[\"WGS 72BE\",D");
+    add_srs_wkt (p, 1,
+        "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"");
+    add_srs_wkt (p, 2,
+        "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO");
+    add_srs_wkt (p, 3,
+        "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324");
+    add_srs_wkt (p, 4,
+        "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]");
+    add_srs_wkt (p, 5,
+        "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",");
+    add_srs_wkt (p, 6,
+        "\"9122\"]],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Tr");
+    add_srs_wkt (p, 7,
+        "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]");
+    add_srs_wkt (p, 8,
+        ",PARAMETER[\"central_meridian\",177],PARAMETER[\"scale_f");
+    add_srs_wkt (p, 9,
+        "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA");
+    add_srs_wkt (p, 10,
+        "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH");
+    add_srs_wkt (p, 11,
+        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"");
+    add_srs_wkt (p, 12,
+        "Northing\",NORTH],AUTHORITY[\"EPSG\",\"32560\"]]");
+}
+
+#endif /* full EPSG initialization enabled/disabled */
+
diff --git a/src/srsinit/epsg_inlined_extra.c b/src/srsinit/epsg_inlined_extra.c
index 2a9697f..cda02b2 100644
--- a/src/srsinit/epsg_inlined_extra.c
+++ b/src/srsinit/epsg_inlined_extra.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -128,6 +128,16 @@ SPATIALITE_PRIVATE void initialize_epsg_39 (
 	int filter, struct epsg_defs **first, struct epsg_defs **last);
 SPATIALITE_PRIVATE void initialize_epsg_40 (
 	int filter, struct epsg_defs **first, struct epsg_defs **last);
+SPATIALITE_PRIVATE void initialize_epsg_41 (
+	int filter, struct epsg_defs **first, struct epsg_defs **last);
+SPATIALITE_PRIVATE void initialize_epsg_42 (
+	int filter, struct epsg_defs **first, struct epsg_defs **last);
+SPATIALITE_PRIVATE void initialize_epsg_43 (
+	int filter, struct epsg_defs **first, struct epsg_defs **last);
+SPATIALITE_PRIVATE void initialize_epsg_44 (
+	int filter, struct epsg_defs **first, struct epsg_defs **last);
+SPATIALITE_PRIVATE void initialize_epsg_45 (
+	int filter, struct epsg_defs **first, struct epsg_defs **last);
 SPATIALITE_PRIVATE void initialize_epsg_wgs84_00 (
 	int filter, struct epsg_defs **first, struct epsg_defs **last);
 SPATIALITE_PRIVATE void initialize_epsg_wgs84_01 (
@@ -234,6 +244,11 @@ initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last)
         initialize_epsg_38 (filter, first, last);
         initialize_epsg_39 (filter, first, last);
         initialize_epsg_40 (filter, first, last);
+        initialize_epsg_41 (filter, first, last);
+        initialize_epsg_42 (filter, first, last);
+        initialize_epsg_43 (filter, first, last);
+        initialize_epsg_44 (filter, first, last);
+        initialize_epsg_45 (filter, first, last);
         initialize_epsg_prussian (filter, first, last);
         initialize_epsg_extra (filter, first, last);
 #endif /* full EPSG initialization enabled/disabled */
diff --git a/src/srsinit/epsg_inlined_prussian.c b/src/srsinit/epsg_inlined_prussian.c
index 13173c1..5067ec0 100644
--- a/src/srsinit/epsg_inlined_prussian.c
+++ b/src/srsinit/epsg_inlined_prussian.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -28,7 +28,6 @@ Portions created by the Initial Developer are Copyright (C) 2008
 the Initial Developer. All Rights Reserved.
 
 Contributor(s):
-Mark Johnson <mj10777 at googlemail.com>
 
 Alternatively, the contents of this file may be used under the terms of
 either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -46,1107 +45,727 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include <spatialite_private.h>
 
-#ifndef OMIT_EPSG		/* full EPSG initialization enabled */
+#ifndef OMIT_EPSG    /* full EPSG initialization enabled */
 
 SPATIALITE_PRIVATE void
-initialize_epsg_prussian (int filter, struct epsg_defs **first,
-			  struct epsg_defs **last)
+initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last)
 {
 /* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */
     struct epsg_defs *p;
-    p = add_epsg_def (filter, first, last, 187900, "mj10777.de", 187900,
-		      "DHDN / Soldner Rathausnetz 660");
-    add_proj4text (p, 0,
-		   "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
-    add_proj4text (p, 1,
-		   "+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Rathausnetz 660\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",14741.77],PARAMETER[\"false_northing\",-11288.28],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187900\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187901, "mj10777.de", 187901,
-		      "DHDN / Soldner 1 Kucklinsberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 1 Kucklinsberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.46022375],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",21.95509736],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187901\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187902, "mj10777.de", 187902,
-		      "DHDN / Soldner 2 Paulinen");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 2 Paulinen\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.28921067],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",20.73315431],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187902\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187903, "mj10777.de", 187903,
-		      "DHDN / Soldner 3 Markushof I");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 3 Markushof I\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.05881333],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",19.37343583],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187903\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187904, "mj10777.de", 187904,
-		      "DHDN / Soldner 4 Thurmberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 4 Thurmberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.22552092],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.12569375],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187904\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187905, "mj10777.de", 187905,
-		      "DHDN / Soldner 5 Kauernick I");
-    add_proj4text (p, 0, "+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 5 Kauernick I\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.38933197],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",19.59810438],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187905\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187906, "mj10777.de", 187906,
-		      "DHDN / Soldner 6 Thorn, Rathausturm");
-    add_proj4text (p, 0, "+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 6 Thorn, Rathausturm\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.01181586],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.60725428],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187906\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187907, "mj10777.de", 187907,
-		      "DHDN / Soldner 7 Heinrichsthal");
-    add_proj4text (p, 0, "+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 7 Heinrichsthal\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.71289217],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.49676781],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187907\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187908, "mj10777.de", 187908,
-		      "DHDN / Soldner 8 Gollenberg, Denkmal");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 8 Gollenberg, Denkmal\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.20857178],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",16.22956781],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187908\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187909, "mj10777.de", 187909,
-		      "DHDN / Soldner 9 Gnesen");
-    add_proj4text (p, 0, "+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 9 Gnesen\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.53820406],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.59450500],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187909\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187910, "mj10777.de", 187910,
-		      "DHDN / Soldner 10 Josefsberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 10 Josefsberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.98768806],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",16.20044389],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187910\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187911, "mj10777.de", 187911,
-		      "DHDN / Soldner 11 Schroda");
-    add_proj4text (p, 0, "+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 11 Schroda\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.23137372],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.27795372],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187911\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187912, "mj10777.de", 187912,
-		      "DHDN / Soldner 12 Pschow");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 12 Pschow\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.04206544],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",18.39610692],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187912\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187913, "mj10777.de", 187913,
-		      "DHDN / Soldner 13 Rummelsberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 13 Rummelsberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.70352314],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",17.11233917],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187914, "mj10777.de", 187914,
-		      "DHDN / Soldner 14 Gröditzberg I");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 14 Gröditzberg I\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.17819342],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",15.76127086],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187914\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187915, "mj10777.de", 187915,
-		      "DHDN / Soldner 15 Kaltenborn");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 15 Kaltenborn\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.92903708],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",14.66212942],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187915\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187917, "mj10777.de", 187917,
-		      "DHDN / Soldner 17 Greifswald, Nikolaikirche");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0,
-		 "PROJCS[\"DHDN / Soldner 17 Greifswald, Nikolaikirche\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.09698872],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.37880703],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187917\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187916, "mj10777.de", 187916,
-		      "DHDN / Soldner 16 Bahn I");
-    add_proj4text (p, 0, "+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 16 Bahn I\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.10184583],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",14.70144539],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187918, "mj10777.de", 187918,
-		      "DHDN / Soldner 18 Müggelberg 600");
-    add_proj4text (p, 0,
-		   "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 18 Müggelberg 600\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187919, "mj10777.de", 187919,
-		      "DHDN / Soldner 19 Götzer Berg 650");
-    add_proj4text (p, 0,
-		   "+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.43725961111112],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",12.72882972222223],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187919\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187920, "mj10777.de", 187920,
-		      "DHDN / Soldner 20 Torgau, Stadtkirche");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 20 Torgau, Stadtkirche\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.56136217],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.00760264],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187920\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187921, "mj10777.de", 187921,
-		      "DHDN / Soldner 21 Burkersroda, Kirchturm");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 21 Burkersroda, Kirchturm\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.17656322],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.64139367],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187921\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187922, "mj10777.de", 187922,
-		      "DHDN / Soldner 22 Inselsberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 22 Inselsberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.85237983],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.46776506],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187922\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187923, "mj10777.de", 187923,
-		      "DHDN / Soldner 23 Magdeburg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 23 Magdeburg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.12625311],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.63550325],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187923\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187924, "mj10777.de", 187924,
-		      "DHDN / Soldner 24 Ostenfeld I");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 24 Ostenfeld I\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.47018733],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.23411097],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187925, "mj10777.de", 187925,
-		      "DHDN / Soldner 25 Rathkrügen");
-    add_proj4text (p, 0, "+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 25 Rathkrügen\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.81839364],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.04220189],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187925\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187926, "mj10777.de", 187926,
-		      "DHDN / Soldner 26 Bungsberg, Aussichtsturm");
-    add_proj4text (p, 0, "+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0,
-		 "PROJCS[\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",54.21110653],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.72636431],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187926\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187927, "mj10777.de", 187927,
-		      "DHDN / Soldner 27 Celle, Stadtkirche");
-    add_proj4text (p, 0, "+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 27 Celle, Stadtkirche\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.62574192],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.08190214],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187927\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187928, "mj10777.de", 187928,
-		      "DHDN / Soldner 28 Kaltenborn");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 28 Kaltenborn\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.79646722],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",10.27322494],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187928\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187929, "mj10777.de", 187929,
-		      "DHDN / Soldner 29 Silberberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 29 Silberberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",53.73123461],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.05774925],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187929\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187930, "mj10777.de", 187930,
-		      "DHDN / Soldner 30 Windberg");
-    add_proj4text (p, 0, "+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 30 Windberg\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.88088372],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.53062114],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187930\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187931, "mj10777.de", 187931,
-		      "DHDN / Soldner 31 Hermannsdenkmal");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 31 Hermannsdenkmal\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.91301647],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",8.84051853],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187932, "mj10777.de", 187932,
-		      "DHDN / Soldner 32 Münster");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 32 Münster\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.96547642],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.62334994],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187932\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187933, "mj10777.de", 187933,
-		      "DHDN / Soldner 33 Bochum, Peter-Paul-Kirche");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0,
-		 "PROJCS[\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.48373533],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.22115822],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187933\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187934, "mj10777.de", 187934,
-		      "DHDN / Soldner 34 Homert");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 34 Homert\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.26480147],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",8.10687050],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187934\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187935, "mj10777.de", 187935,
-		      "DHDN / Soldner 35 Kassel, Martinskirche");
-    add_proj4text (p, 0, "+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 35 Kassel, Martinskirche\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",51.31846489],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",9.50203072],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187936, "mj10777.de", 187936,
-		      "DHDN / Soldner 36 Schaumburg, Schloßturm");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.34048964],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.97808156],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187936\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187937, "mj10777.de", 187937,
-		      "DHDN / Soldner 37 Fleckert");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 37 Fleckert\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.18762544],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",7.60594289],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187938, "mj10777.de", 187938,
-		      "DHDN / Soldner 38 Cöln, Dom");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 38 Cöln, Dom\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.94257242],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.95897600],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187939, "mj10777.de", 187939,
-		      "DHDN / Soldner 39 Langschoß");
-    add_proj4text (p, 0, "+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 39 Langschoß\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",50.66738711],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.28935703],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187939\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187940, "mj10777.de", 187940,
-		      "DHDN / Soldner 40 Rissenthal");
-    add_proj4text (p, 0, "+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner 40 Rissenthal\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",49.47801819],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",6.75864339],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187940\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187941, "mj10777.de", 187941,
-		      "DHDN / Soldner Bayern");
-    add_proj4text (p, 0, "+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 ");
-    add_proj4text (p, 1,
-		   "+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Bayern\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",48.13959111],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",11.57437083],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187941\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 187997, "mj10777.de", 187997,
-		      "NAD27 / Washington Capitol");
-    add_proj4text (p, 0,
-		   "+proj=longlat +ellps=clrk66 +datum=NAD27 +pm=-77.0093576 +no_defs");
-    add_srs_wkt (p, 0,
-		 "GEOGCS[\"NAD27 / Washington Capitol\",DATUM[\"North_American_Datum_1927\",");
-    add_srs_wkt (p, 1, "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,");
-    add_srs_wkt (p, 2,
-		 "AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],");
-    add_srs_wkt (p, 3,
-		 "PRIMEM[\"Washington\",-77.0093576,AUTHORITY[\"mj10777.de\",\"188000\"]],");
-    add_srs_wkt (p, 4,
-		 "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],");
-    add_srs_wkt (p, 6, "AUTHORITY[\"mj10777.de\",\"187997\"]]");
-    p = add_epsg_def (filter, first, last, 187998, "mj10777.de", 187998,
-		      "DHDN / Ferro / Deutsches_Hauptdreiecksnetz");
-    add_proj4text (p, 0,
-		   "+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs");
-    add_srs_wkt (p, 0,
-		 "PROJCS[\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2, "DATUM[\"Deutsches_Hauptdreiecksnetz\",");
-    add_srs_wkt (p, 3,
-		 "SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4,
-		 "AUTHORITY[\"EPSG\",\"6314\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 5,
-		 "PRIMEM[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],");
-    add_srs_wkt (p, 6,
-		 "UNIT[\"Degree\",0.017453292519943295,AUTHORITY[\"EPSG\",\"9122\"],");
-    add_srs_wkt (p, 7, "AUTHORITY[\"mj10777.de\",\"187998\"]]");
-/* mj10777: Not existing System, used for testing purposes. */
-    p = add_epsg_def (filter, first, last, 187999, "mj10777.de", 187999,
-		      "DHDN / Brandenburger Tor");
-    add_proj4text (p, 0,
-		   "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
-    add_proj4text (p, 1,
-		   "+x_0=16816.4833410610881 +y_0=-11047.016016734 +ellps=bessel +datum=potsdam +units=m +no_defs");
-    add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Brandenburger Tor\",");
-    add_srs_wkt (p, 1, "GEOGCS[\"DHDN\",");
-    add_srs_wkt (p, 2,
-		 "DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
-    add_srs_wkt (p, 3,
-		 "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
-    add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
-    add_srs_wkt (p, 5,
-		 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
-    add_srs_wkt (p, 6,
-		 "AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
-    add_srs_wkt (p, 7, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
-    add_srs_wkt (p, 8, "PROJECTION[\"Cassini_Soldner\"],");
-    add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",52.41864827777778],");
-    add_srs_wkt (p, 10, "PARAMETER[\"central_meridian\",13.62720366666667],");
-    add_srs_wkt (p, 11,
-		 "PARAMETER[\"false_easting\",16816.4833410610881],PARAMETER[\"false_northing\",-11047.016016734],");
-    add_srs_wkt (p, 12,
-		 "AUTHORITY[\"mj10777.de\",\"187999\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
-    p = add_epsg_def (filter, first, last, 325833, "mj10777.de", 325833,
-		      "ETRS89 / UTM zone 33N (Brandenburg)");
-    add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs");
-    add_srs_wkt (p, 0,
-		 "PROJCS[\"ETRS89 / UTM zone 33N (Brandenburg)\",GEOGCS[\"ETRS89\",");
-    add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",");
-    add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,");
-    add_srs_wkt (p, 3,
-		 "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6258\"]],");
-    add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
-    add_srs_wkt (p, 5,
-		 "UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],");
-    add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4258\"]],UNIT[\"metre\",1,");
-    add_srs_wkt (p, 7,
-		 "AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],");
-    add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],");
-    add_srs_wkt (p, 9,
-		 "PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],");
-    add_srs_wkt (p, 10,
-		 "PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_northing\",0],");
-    add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"325833\"],");
-    add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]");
+    p = add_epsg_def(filter,first,last,187900,"mj10777.de",187900,"DHDN / Soldner Rathausnetz 660");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
+    add_proj4text(p,1,"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Rathausnetz 660\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",14741.77],PARAMETER[\"false_northing\",-11288.28],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187900\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187901,"mj10777.de",187901,"DHDN / Soldner 1 Kucklinsberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 1 Kucklinsberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.46022375],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",21.95509736],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187901\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187902,"mj10777.de",187902,"DHDN / Soldner 2 Paulinen");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 2 Paulinen\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.28921067],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",20.73315431],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187902\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187903,"mj10777.de",187903,"DHDN / Soldner 3 Markushof I");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 3 Markushof I\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.05881333],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",19.37343583],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187903\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187904,"mj10777.de",187904,"DHDN / Soldner 4 Thurmberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 4 Thurmberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.22552092],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.12569375],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187904\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187905,"mj10777.de",187905,"DHDN / Soldner 5 Kauernick I");
+    add_proj4text(p,0,"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 5 Kauernick I\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.38933197],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",19.59810438],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187905\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187906,"mj10777.de",187906,"DHDN / Soldner 6 Thorn, Rathausturm");
+    add_proj4text(p,0,"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 6 Thorn, Rathausturm\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.01181586],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.60725428],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187906\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187907,"mj10777.de",187907,"DHDN / Soldner 7 Heinrichsthal");
+    add_proj4text(p,0,"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 7 Heinrichsthal\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.71289217],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.49676781],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187907\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187908,"mj10777.de",187908,"DHDN / Soldner 8 Gollenberg, Denkmal");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 8 Gollenberg, Denkmal\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.20857178],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",16.22956781],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187908\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187909,"mj10777.de",187909,"DHDN / Soldner 9 Gnesen");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 9 Gnesen\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.53820406],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.59450500],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187909\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187910,"mj10777.de",187910,"DHDN / Soldner 10 Josefsberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 10 Josefsberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.98768806],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",16.20044389],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187910\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187911,"mj10777.de",187911,"DHDN / Soldner 11 Schroda");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 11 Schroda\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.23137372],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.27795372],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187911\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187912,"mj10777.de",187912,"DHDN / Soldner 12 Pschow");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 12 Pschow\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.04206544],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.39610692],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187912\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187913,"mj10777.de",187913,"DHDN / Soldner 13 Rummelsberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 13 Rummelsberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.70352314],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.11233917],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187914,"mj10777.de",187914,"DHDN / Soldner 14 Gröditzberg I");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 14 Gröditzberg I\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.17819342],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",15.76127086],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187914\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187915,"mj10777.de",187915,"DHDN / Soldner 15 Kaltenborn");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 15 Kaltenborn\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.92903708],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.66212942],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187915\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187917,"mj10777.de",187917,"DHDN / Soldner 17 Greifswald, Nikolaikirche");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 17 Greifswald, Nikolaikirche\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.09698872],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.37880703],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187917\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187916,"mj10777.de",187916,"DHDN / Soldner 16 Bahn I");
+    add_proj4text(p,0,"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 16 Bahn I\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.10184583],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.70144539],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187918,"mj10777.de",187918,"DHDN / Soldner 18 Müggelberg 600");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 18 Müggelberg 600\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187919,"mj10777.de",187919,"DHDN / Soldner 19 Götzer Berg 650");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.43725961111112],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",12.72882972222223],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187919\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187920,"mj10777.de",187920,"DHDN / Soldner 20 Torgau, Stadtkirche");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 20 Torgau, Stadtkirche\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.56136217],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.00760264],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187920\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187921,"mj10777.de",187921,"DHDN / Soldner 21 Burkersroda, Kirchturm");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 21 Burkersroda, Kirchturm\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.17656322],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.64139367],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187921\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187922,"mj10777.de",187922,"DHDN / Soldner 22 Inselsberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 22 Inselsberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.85237983],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.46776506],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187922\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187923,"mj10777.de",187923,"DHDN / Soldner 23 Magdeburg");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 23 Magdeburg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.12625311],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.63550325],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187923\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187924,"mj10777.de",187924,"DHDN / Soldner 24 Ostenfeld I");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 24 Ostenfeld I\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.47018733],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.23411097],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187925,"mj10777.de",187925,"DHDN / Soldner 25 Rathkrügen");
+    add_proj4text(p,0,"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 25 Rathkrügen\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.81839364],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.04220189],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187925\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187926,"mj10777.de",187926,"DHDN / Soldner 26 Bungsberg, Aussichtsturm");
+    add_proj4text(p,0,"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.21110653],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.72636431],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187926\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187927,"mj10777.de",187927,"DHDN / Soldner 27 Celle, Stadtkirche");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 27 Celle, Stadtkirche\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.62574192],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.08190214],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187927\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187928,"mj10777.de",187928,"DHDN / Soldner 28 Kaltenborn");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 28 Kaltenborn\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.79646722],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.27322494],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187928\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187929,"mj10777.de",187929,"DHDN / Soldner 29 Silberberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 29 Silberberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.73123461],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.05774925],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187929\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187930,"mj10777.de",187930,"DHDN / Soldner 30 Windberg");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 30 Windberg\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.88088372],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.53062114],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187930\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187931,"mj10777.de",187931,"DHDN / Soldner 31 Hermannsdenkmal");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 31 Hermannsdenkmal\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.91301647],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.84051853],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187932,"mj10777.de",187932,"DHDN / Soldner 32 Münster");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 32 Münster\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.96547642],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.62334994],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187932\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187933,"mj10777.de",187933,"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.48373533],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.22115822],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187933\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187934,"mj10777.de",187934,"DHDN / Soldner 34 Homert");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 34 Homert\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.26480147],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.10687050],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187934\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187935,"mj10777.de",187935,"DHDN / Soldner 35 Kassel, Martinskirche");
+    add_proj4text(p,0,"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 35 Kassel, Martinskirche\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.31846489],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.50203072],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187936,"mj10777.de",187936,"DHDN / Soldner 36 Schaumburg, Schloßturm");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.34048964],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.97808156],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187936\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187937,"mj10777.de",187937,"DHDN / Soldner 37 Fleckert");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 37 Fleckert\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.18762544],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.60594289],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187938,"mj10777.de",187938,"DHDN / Soldner 38 Cöln, Dom");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 38 Cöln, Dom\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.94257242],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.95897600],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187939,"mj10777.de",187939,"DHDN / Soldner 39 Langschoß");
+    add_proj4text(p,0,"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 39 Langschoß\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.66738711],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.28935703],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187939\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187940,"mj10777.de",187940,"DHDN / Soldner 40 Rissenthal");
+    add_proj4text(p,0,"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 40 Rissenthal\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",49.47801819],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.75864339],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187940\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def(filter,first,last,187941,"mj10777.de",187941,"DHDN / Soldner Bayern");
+    add_proj4text(p,0,"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 ");
+    add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Bayern\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",48.13959111],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.57437083],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187941\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def (filter,first, last, 187998, "mj10777.de", 187998,"DHDN / Ferro / Deutsches_Hauptdreiecksnetz");
+    add_proj4text(p,0,"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",");
+    add_srs_wkt(p,3,"SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"7004\"]], AUTHORITY[\"EPSG\",\"6314\"]],");
+    add_srs_wkt(p,5,"PRIMEM[\"ferro\",-17.66666666666667],UNIT[\"Degree\",0.017453292519943295,");
+    add_srs_wkt(p,6,"AUTHORITY[\"mj10777.de\",\"187998\"]],AUTHORITY[\"EPSG\",\"4314\"]]");
+/* mj10777: Not exsiting System, used for testing purposes. */
+    p = add_epsg_def(filter,first,last,187999,"mj10777.de",187999,"DHDN / Brandenburger Tor");
+    add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
+    add_proj4text(p,1,"+x_0=16819.76033675660074 +y_0=-11046.08218553455117 +ellps=bessel +datum=potsdam +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Brandenburger Tor\",");
+    add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+    add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+    add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+    add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,");
+    add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],");
+    add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],");
+    add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],");
+    add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],");
+    add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],");
+    add_srs_wkt(p,11,"PARAMETER[\"false_easting\",16819.76033675660074],PARAMETER[\"false_northing\",-11046.08218553455117],");
+    add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187999\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+    p = add_epsg_def (filter,first, last, 325833, "mj10777.de", 325833,"ETRS89 / UTM zone 33N (Brandenburg)");
+    add_proj4text(p,0,"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs");
+    add_srs_wkt(p,0,"PROJCS[\"ETRS89 / UTM zone 33N (Brandenburg)\",GEOGCS[\"ETRS89\",");
+    add_srs_wkt(p,1,"DATUM[\"European_Terrestrial_Reference_System_1989\",");
+    add_srs_wkt(p,2,"SPHEROID[\"GRS 1980\",6378137,298.257222101,");
+    add_srs_wkt(p,3,"AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6258\"]],");
+    add_srs_wkt(p,4,"PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],");
+    add_srs_wkt(p,5,"UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],");
+    add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"4258\"]],UNIT[\"metre\",1,");
+    add_srs_wkt(p,7,"AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],");
+    add_srs_wkt(p,8,"PARAMETER[\"latitude_of_origin\",0],");
+    add_srs_wkt(p,9,"PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],");
+    add_srs_wkt(p,10,"PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_northing\",0],");
+    add_srs_wkt(p,11,"AUTHORITY[\"EPSG\",\"325833\"],");
+    add_srs_wkt(p,12,"AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]");
 }
 
 #endif /* full EPSG initialization enabled/disabled */
+
diff --git a/src/srsinit/epsg_inlined_wgs84_00.c b/src/srsinit/epsg_inlined_wgs84_00.c
index cf4f319..9c98ce6 100644
--- a/src/srsinit/epsg_inlined_wgs84_00.c
+++ b/src/srsinit/epsg_inlined_wgs84_00.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -1773,9 +1773,7 @@ initialize_epsg_wgs84_00 (int filter, struct epsg_defs **first, struct epsg_defs
     add_srs_wkt (p, 9,
         "METER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHO");
     add_srs_wkt (p, 10,
-        "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"");
-    add_srs_wkt (p, 11,
-        "Easting\",EAST],AUTHORITY[\"EPSG\",\"32661\"]]");
+        "RITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"32661\"]]");
     p = add_epsg_def (filter, first, last, 32662, "epsg", 32662,
         "WGS 84 / Plate Carree (deprecated)");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_inlined_wgs84_01.c b/src/srsinit/epsg_inlined_wgs84_01.c
index a9b1eeb..ddc9f0e 100644
--- a/src/srsinit/epsg_inlined_wgs84_01.c
+++ b/src/srsinit/epsg_inlined_wgs84_01.c
@@ -2,7 +2,7 @@
 
  helper function for srs_init.c -- populating the SPATIAL_REF_SYS table
 
- this code was autogenerated by "auto_epsg" on Wed Aug  1 15:15:05 2012
+ this code was autogenerated by "auto_epsg" on Fri May 16 09:57:30 2014
 
  Author: Sandro Furieri a.furieri at lqt.it
 
@@ -805,9 +805,7 @@ initialize_epsg_wgs84_01 (int filter, struct epsg_defs **first, struct epsg_defs
     add_srs_wkt (p, 9,
         "AMETER[\"false_northing\",2000000],UNIT[\"metre\",1,AUTH");
     add_srs_wkt (p, 10,
-        "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[");
-    add_srs_wkt (p, 11,
-        "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"32761\"]]");
+        "ORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"32761\"]]");
     p = add_epsg_def (filter, first, last, 32766, "epsg", 32766,
         "WGS 84 / TM 36 SE");
     add_proj4text (p, 0,
diff --git a/src/srsinit/epsg_update/Makefile.in b/src/srsinit/epsg_update/Makefile.in
index ac9dbaf..d9390fd 100644
--- a/src/srsinit/epsg_update/Makefile.in
+++ b/src/srsinit/epsg_update/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/srsinit/epsg_update
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -238,11 +280,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -380,15 +420,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/srsinit/epsg_update/README.txt b/src/srsinit/epsg_update/README.txt
index c3a33db..b07d746 100644
--- a/src/srsinit/epsg_update/README.txt
+++ b/src/srsinit/epsg_update/README.txt
@@ -50,8 +50,8 @@ at the end of this step several "epsg_inlined_*.c" files will be generated
 STEP #4: final setup
 --------
 - copy the generated file into the parent dir:
-  rm ../epsg_inlined_*.c
-  cp epsg_inlined.c ..
+  rm ../epsg_inlined*.c
+  cp epsg_inlined*.c ..
 - be sure to update as required the repository (ADD/DEL)
 - be sure to update as required Makefile.am
 - and finally commit into the repository
diff --git a/src/srsinit/srs_init.c b/src/srsinit/srs_init.c
index 69ca192..0af52b7 100644
--- a/src/srsinit/srs_init.c
+++ b/src/srsinit/srs_init.c
@@ -189,7 +189,7 @@ add_srs_wkt (struct epsg_defs *p, int count, const char *text)
     strcat (p->srs_wkt, text);
 }
 
-static void
+SPATIALITE_PRIVATE void
 free_epsg (struct epsg_defs *first)
 {
 /* memory cleanup - destroying the EPSG list */
diff --git a/src/versioninfo/version.c b/src/versioninfo/version.c
index 0ea8786..3dfe07c 100644
--- a/src/versioninfo/version.c
+++ b/src/versioninfo/version.c
@@ -53,9 +53,16 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <spatialite.h>
 
 const char spatialiteversion[] = VERSION;
+const char spatialitetargetcpu[] = TARGET_CPU;
 
 SPATIALITE_DECLARE const char *
 spatialite_version (void)
 {
     return spatialiteversion;
 }
+
+SPATIALITE_DECLARE const char *
+spatialite_target_cpu (void)
+{
+    return spatialitetargetcpu;
+}
diff --git a/src/virtualtext/Makefile.am b/src/virtualtext/Makefile.am
index 396c87f..938c81f 100644
--- a/src/virtualtext/Makefile.am
+++ b/src/virtualtext/Makefile.am
@@ -1,9 +1,17 @@
 
-INCLUDES = @CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS = @CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libvirtualtext.la
+noinst_LTLIBRARIES = libvirtualtext.la virtualtext.la
 
 libvirtualtext_la_SOURCES = virtualtext.c
 
+virtualtext_la_SOURCES = virtualtext.c
+
+virtualtext_la_CPPFLAGS = @CFLAGS@
+virtualtext_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+virtualtext_la_CPPFLAGS += -DLOADABLE_EXTENSION
+virtualtext_la_LDFLAGS = -module
+virtualtext_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/virtualtext/Makefile.in b/src/virtualtext/Makefile.in
index b3721b6..3967fa1 100644
--- a/src/virtualtext/Makefile.in
+++ b/src/virtualtext/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/virtualtext
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -68,31 +96,81 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
 libvirtualtext_la_LIBADD =
 am_libvirtualtext_la_OBJECTS = virtualtext.lo
 libvirtualtext_la_OBJECTS = $(am_libvirtualtext_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+virtualtext_la_LIBADD =
+am_virtualtext_la_OBJECTS = virtualtext_la-virtualtext.lo
+virtualtext_la_OBJECTS = $(am_virtualtext_la_OBJECTS)
+virtualtext_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(virtualtext_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libvirtualtext_la_SOURCES)
-DIST_SOURCES = $(libvirtualtext_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libvirtualtext_la_SOURCES) $(virtualtext_la_SOURCES)
+DIST_SOURCES = $(libvirtualtext_la_SOURCES) $(virtualtext_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -219,9 +297,14 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libvirtualtext.la
+AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libvirtualtext.la virtualtext.la
 libvirtualtext_la_SOURCES = virtualtext.c
+virtualtext_la_SOURCES = virtualtext.c
+virtualtext_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \
+	-DLOADABLE_EXTENSION
+virtualtext_la_LDFLAGS = -module
+virtualtext_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -268,8 +351,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libvirtualtext.la: $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_DEPENDENCIES) $(EXTRA_libvirtualtext_la_DEPENDENCIES) 
-	$(LINK)  $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_LIBADD) $(LIBS)
+
+virtualtext.la: $(virtualtext_la_OBJECTS) $(virtualtext_la_DEPENDENCIES) $(EXTRA_virtualtext_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(virtualtext_la_LINK)  $(virtualtext_la_OBJECTS) $(virtualtext_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -278,27 +365,35 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/virtualtext.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/virtualtext_la-virtualtext.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+virtualtext_la-virtualtext.lo: virtualtext.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(virtualtext_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT virtualtext_la-virtualtext.lo -MD -MP -MF $(DEPDIR)/virtualtext_la-virtualtext.Tpo -c -o virtualtext_la-virtualtext.lo `test -f 'virtualtext.c' || echo '$(srcdir)/'`virtualtext.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/virtualtext_la-virtualtext.Tpo $(DEPDIR)/virtualtext_la-virtualtext.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='virtualtext.c' object='virtualtext_la-virtualtext.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(virtualtext_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o virtualtext_la-virtualtext.lo `test -f 'virtualtext.c' || echo '$(srcdir)/'`virtualtext.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -306,26 +401,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -337,15 +421,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -354,9 +434,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -510,9 +591,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -522,7 +603,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/virtualtext/virtualtext.c b/src/virtualtext/virtualtext.c
index 105c28c..1ac284c 100644
--- a/src/virtualtext/virtualtext.c
+++ b/src/virtualtext/virtualtext.c
@@ -942,7 +942,7 @@ vtxt_rollback (sqlite3_vtab * pVTab)
     return SQLITE_OK;
 }
 
-int
+static int
 sqlite3VirtualTextInit (sqlite3 * db)
 {
     int rc = SQLITE_OK;
@@ -969,9 +969,10 @@ sqlite3VirtualTextInit (sqlite3 * db)
     return rc;
 }
 
-int
-virtualtext_extension_init (sqlite3 * db)
+SPATIALITE_PRIVATE int
+virtualtext_extension_init (void * xdb)
 {
+sqlite3 * db = (sqlite3 *)xdb;
     return sqlite3VirtualTextInit (db);
 }
 
diff --git a/src/wfs/Makefile.am b/src/wfs/Makefile.am
index 72bec2d..c793e99 100644
--- a/src/wfs/Makefile.am
+++ b/src/wfs/Makefile.am
@@ -1,9 +1,17 @@
 
-INCLUDES = @CFLAGS@ @LIBXML2_CFLAGS@
-INCLUDES += -I$(top_srcdir)/src/headers
+AM_CPPFLAGS= @CFLAGS@ @LIBXML2_CFLAGS@
+AM_CPPFLAGS += -I$(top_srcdir)/src/headers
 
-noinst_LTLIBRARIES = libwfs.la
+noinst_LTLIBRARIES = libwfs.la wfs.la
 
 libwfs_la_SOURCES = wfs_in.c
 
+wfs_la_SOURCES = wfs_in.c
+
+wfs_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@
+wfs_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I.
+wfs_la_CPPFLAGS += -DLOADABLE_EXTENSION
+wfs_la_LDFLAGS = -module
+wfs_la_LIBTOOLFLAGS = --tag=disable-static
+
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
diff --git a/src/wfs/Makefile.in b/src/wfs/Makefile.in
index 6ccb52e..7349796 100644
--- a/src/wfs/Makefile.in
+++ b/src/wfs/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = src/wfs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -68,31 +96,80 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
 libwfs_la_LIBADD =
 am_libwfs_la_OBJECTS = wfs_in.lo
 libwfs_la_OBJECTS = $(am_libwfs_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+wfs_la_LIBADD =
+am_wfs_la_OBJECTS = wfs_la-wfs_in.lo
+wfs_la_OBJECTS = $(am_wfs_la_OBJECTS)
+wfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(wfs_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libwfs_la_SOURCES)
-DIST_SOURCES = $(libwfs_la_SOURCES)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libwfs_la_SOURCES) $(wfs_la_SOURCES)
+DIST_SOURCES = $(libwfs_la_SOURCES) $(wfs_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -219,9 +296,14 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers
-noinst_LTLIBRARIES = libwfs.la
+AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers
+noinst_LTLIBRARIES = libwfs.la wfs.la
 libwfs_la_SOURCES = wfs_in.c
+wfs_la_SOURCES = wfs_in.c
+wfs_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ \
+	-I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION
+wfs_la_LDFLAGS = -module
+wfs_la_LIBTOOLFLAGS = --tag=disable-static
 MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
 all: all-am
 
@@ -268,8 +350,12 @@ clean-noinstLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 libwfs.la: $(libwfs_la_OBJECTS) $(libwfs_la_DEPENDENCIES) $(EXTRA_libwfs_la_DEPENDENCIES) 
-	$(LINK)  $(libwfs_la_OBJECTS) $(libwfs_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK)  $(libwfs_la_OBJECTS) $(libwfs_la_LIBADD) $(LIBS)
+
+wfs.la: $(wfs_la_OBJECTS) $(wfs_la_DEPENDENCIES) $(EXTRA_wfs_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(wfs_la_LINK)  $(wfs_la_OBJECTS) $(wfs_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -278,27 +364,35 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wfs_in.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wfs_la-wfs_in.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+wfs_la-wfs_in.lo: wfs_in.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(wfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wfs_la-wfs_in.lo -MD -MP -MF $(DEPDIR)/wfs_la-wfs_in.Tpo -c -o wfs_la-wfs_in.lo `test -f 'wfs_in.c' || echo '$(srcdir)/'`wfs_in.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/wfs_la-wfs_in.Tpo $(DEPDIR)/wfs_la-wfs_in.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='wfs_in.c' object='wfs_la-wfs_in.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(wfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wfs_la-wfs_in.lo `test -f 'wfs_in.c' || echo '$(srcdir)/'`wfs_in.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -306,26 +400,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -337,15 +420,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -354,9 +433,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -510,9 +590,9 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES cscopelist ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -522,7 +602,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/wfs/wfs_in.c b/src/wfs/wfs_in.c
index c816c79..c4519ac 100644
--- a/src/wfs/wfs_in.c
+++ b/src/wfs/wfs_in.c
@@ -76,6 +76,7 @@ Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
 #ifdef ENABLE_LIBXML2		/* LIBXML2 enabled: supporting XML documents */
 
 #include <libxml/parser.h>
+#include <libxml/nanohttp.h>
 
 #define MAX_GTYPES	28
 
@@ -4268,6 +4269,13 @@ get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name,
     return 1;
 }
 
+SPATIALITE_DECLARE void
+reset_wfs_http_connection (void)
+{
+/* Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings */
+    xmlNanoHTTPCleanup ();
+}
+
 #else /* LIBXML2 isn't enabled */
 
 SPATIALITE_DECLARE int
@@ -4569,4 +4577,11 @@ get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name,
     return 0;
 }
 
+SPATIALITE_DECLARE void
+reset_wfs_http_connection (void)
+{
+/* LIBXML2 isn't enabled: does absolutely nothing */
+    return;
+}
+
 #endif /* end LIBXML2 conditionals */
diff --git a/test-driver b/test-driver
new file mode 100755
index 0000000..32bf39e
--- /dev/null
+++ b/test-driver
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='' # Red.
+  grn='' # Green.
+  lgn='' # Light green.
+  blu='' # Blue.
+  mgn='' # Magenta.
+  std=''     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/test/Makefile.am b/test/Makefile.am
index 60ba5f5..f4bece8 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,4 +1,4 @@
-INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
+AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
 
 check_PROGRAMS = check_endian \
 		check_version \
@@ -7,11 +7,11 @@ check_PROGRAMS = check_endian \
 		check_geom_aux \
 		check_geometry_cols \
 		check_create \
-                check_bufovflw \
+		check_bufovflw \
 		check_fdo1 \
 		check_fdo2 \
 		check_fdo3 \
-                check_fdo_bufovflw \
+		check_fdo_bufovflw \
 		check_md5 \
 		check_dbf_load \
 		check_shp_load \
@@ -29,13 +29,14 @@ check_PROGRAMS = check_endian \
 		check_extension \
 		check_recover_geom \
 		check_sql_stmt \
+		check_multithread \
 		check_virtualtable1 \
 		check_virtualtable2 \
 		check_virtualtable3 \
 		check_virtualtable4 \
 		check_virtualtable5 \
 		check_virtualtable6 \
-                check_virtual_ovflw \
+		check_virtual_ovflw \
 		check_mbrcache \
 		check_spatialindex \
 		check_exif \
@@ -46,16 +47,26 @@ check_PROGRAMS = check_endian \
 		check_libxml2 \
 		check_styling \
 		check_virtualxpath \
+		check_virtualbbox \
 		check_wfsin \
-		check_dxf 
+		check_dxf \
+		check_metacatalog
+		
 if ENABLE_GEOPACKAGE
 check_PROGRAMS += \
 		check_createBaseTables \
+		check_gpkgCreateTilesTable \
+		check_gpkgCreateTilesTableMissingSRID \
+		check_gpkgCreateTilesZoomLevel \
+		check_gpkgInsertEpsgSRID \
+		check_gpkgCreateFeaturesTable \
+		check_gpkg_base_core_container_data_file_format_application_id \
+		check_gpkg_base_core_spatial_ref_sys_data_table_def \
+		check_gpkg_base_core_spatial_ref_sys_data_values_default \
+		check_gpkg_base_core_contents_data_table_def \
+		check_gpkg_opt_extension_mechanism_extensions_data_table_def \
 		check_add_tile_triggers \
 		check_add_tile_triggers_bad_table_name \
-		check_add_rt_metadata_triggers_bad_table_name \
-		check_add_rt_metadata_triggers_wrong_arg_type \
-		check_add_rt_metadata_triggers \
 		check_get_normal_row \
 		check_get_normal_row_bad_geopackage \
 		check_get_normal_row_bad_geopackage2 \
@@ -63,22 +74,14 @@ check_PROGRAMS += \
 		check_get_normal_zoom_extension_load \
 		check_get_normal_zoom_bad_geopackage \
 		check_get_normal_zoom_bad_geopackage2 \
-		check_point_to_tile_wrong_arg_type \
-		check_point_to_tile \
-		check_point_to_tile_integer_coordinates \
-		check_point_to_tile_bad_tablename \
-		check_point_to_tile_broken_geopackage \
-		check_point_to_tile_broken_geopackage2 \
-		check_point_to_tile_no_tile \
-		check_point_to_tile_multiresult \
-		check_point_to_tile_different_srid \
-		check_point_to_tile_broken_srid \
 		check_gpkgGetImageFormat \
 		check_gpkgGetImageFormat_nonimage \
 		check_gpkgGetImageFormat_nonblob \
 		check_gpkgGetImageFormat_png \
 		check_gpkgGetImageFormat_tiff \
-		check_gpkgGetImageFormat_webp
+		check_gpkgGetImageFormat_webp \
+		check_gpkgConvert \
+		check_gpkgVirtual
 endif
 
 AM_CFLAGS = -I at srcdir@/../src/headers -I at srcdir@
@@ -103,6 +106,7 @@ EXTRA_DIST = asprintf4win.h \
 	test-legacy-2.3.1.sqlite \
 	test-legacy-3.0.1.sqlite \
 	test-invalid.sqlite \
+	test_geos.sqlite \
 	shp/new-caledonia/buildings.dbf \
 	shp/new-caledonia/buildings.prj \
 	shp/new-caledonia/buildings.shp \
@@ -159,7 +163,7 @@ EXTRA_DIST = asprintf4win.h \
 	books.xml books.xsd opera.xml opera.xsd \
 	movies.xml movies.xsd books-bad.xml books-bad.xsd \
 	inspire-data-example.xml stazioni_se.xml \
-	raster_se.xml thunderstorm_mild.svg \
+	raster_se.xml sld_sample.xml thunderstorm_mild.svg \
 	tile000.jpeg  tile101.jpeg  tile111.jpeg \
 	test.webp tile100.jpeg  tile110.jpeg \
 	Apple-iPhone-4.jpg empty.png  empty.tif \
@@ -169,10 +173,10 @@ EXTRA_DIST = asprintf4win.h \
 	describefeaturetype.wfs	\
 	22.dxf f06.dxf l02.dxf p05.dxf \
 	archaic.dxf linked.dxf hatch.dxf \
-	symbol.dxf
+	symbol.dxf gpkg_test.sqlite gpkg_test.gpkg
 
 SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \
-	sql_stmt_geostrunk_tests sql_stmt_libxml2_tests \
-	sql_stmt_lwgeom_tests sql_stmt_mathsql_tests \
-	sql_stmt_proj_tests sql_stmt_security_tests \
-	sql_stmt_tests sql_stmt_xmlsec_tests
+	sql_stmt_libxml2_tests sql_stmt_lwgeom_tests \
+	sql_stmt_mathsql_tests sql_stmt_proj_tests \
+	sql_stmt_security_tests sql_stmt_tests \
+	sql_stmt_xmlsec_tests sql_stmt_geopackage_tests
diff --git a/test/Makefile.in b/test/Makefile.in
index 3cc1874..818a4ec 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -63,23 +91,32 @@ check_PROGRAMS = check_endian$(EXEEXT) check_version$(EXEEXT) \
 	check_math_funcs$(EXEEXT) check_gaia_util$(EXEEXT) \
 	check_gaia_utf8$(EXEEXT) check_extension$(EXEEXT) \
 	check_recover_geom$(EXEEXT) check_sql_stmt$(EXEEXT) \
-	check_virtualtable1$(EXEEXT) check_virtualtable2$(EXEEXT) \
-	check_virtualtable3$(EXEEXT) check_virtualtable4$(EXEEXT) \
-	check_virtualtable5$(EXEEXT) check_virtualtable6$(EXEEXT) \
-	check_virtual_ovflw$(EXEEXT) check_mbrcache$(EXEEXT) \
-	check_spatialindex$(EXEEXT) check_exif$(EXEEXT) \
-	check_exif2$(EXEEXT) check_relations_fncts$(EXEEXT) \
+	check_multithread$(EXEEXT) check_virtualtable1$(EXEEXT) \
+	check_virtualtable2$(EXEEXT) check_virtualtable3$(EXEEXT) \
+	check_virtualtable4$(EXEEXT) check_virtualtable5$(EXEEXT) \
+	check_virtualtable6$(EXEEXT) check_virtual_ovflw$(EXEEXT) \
+	check_mbrcache$(EXEEXT) check_spatialindex$(EXEEXT) \
+	check_exif$(EXEEXT) check_exif2$(EXEEXT) \
+	check_relations_fncts$(EXEEXT) \
 	check_extra_relations_fncts$(EXEEXT) \
 	check_geoscvt_fncts$(EXEEXT) check_libxml2$(EXEEXT) \
 	check_styling$(EXEEXT) check_virtualxpath$(EXEEXT) \
-	check_wfsin$(EXEEXT) check_dxf$(EXEEXT) $(am__EXEEXT_1)
+	check_virtualbbox$(EXEEXT) check_wfsin$(EXEEXT) \
+	check_dxf$(EXEEXT) check_metacatalog$(EXEEXT) $(am__EXEEXT_1)
 @ENABLE_GEOPACKAGE_TRUE at am__append_1 = \
 @ENABLE_GEOPACKAGE_TRUE@		check_createBaseTables \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgCreateTilesTable \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgCreateTilesTableMissingSRID \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgCreateTilesZoomLevel \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgInsertEpsgSRID \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgCreateFeaturesTable \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkg_base_core_container_data_file_format_application_id \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkg_base_core_spatial_ref_sys_data_table_def \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkg_base_core_spatial_ref_sys_data_values_default \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkg_base_core_contents_data_table_def \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkg_opt_extension_mechanism_extensions_data_table_def \
 @ENABLE_GEOPACKAGE_TRUE@		check_add_tile_triggers \
 @ENABLE_GEOPACKAGE_TRUE@		check_add_tile_triggers_bad_table_name \
- at ENABLE_GEOPACKAGE_TRUE@		check_add_rt_metadata_triggers_bad_table_name \
- at ENABLE_GEOPACKAGE_TRUE@		check_add_rt_metadata_triggers_wrong_arg_type \
- at ENABLE_GEOPACKAGE_TRUE@		check_add_rt_metadata_triggers \
 @ENABLE_GEOPACKAGE_TRUE@		check_get_normal_row \
 @ENABLE_GEOPACKAGE_TRUE@		check_get_normal_row_bad_geopackage \
 @ENABLE_GEOPACKAGE_TRUE@		check_get_normal_row_bad_geopackage2 \
@@ -87,26 +124,18 @@ check_PROGRAMS = check_endian$(EXEEXT) check_version$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@		check_get_normal_zoom_extension_load \
 @ENABLE_GEOPACKAGE_TRUE@		check_get_normal_zoom_bad_geopackage \
 @ENABLE_GEOPACKAGE_TRUE@		check_get_normal_zoom_bad_geopackage2 \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_wrong_arg_type \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_integer_coordinates \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_bad_tablename \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_broken_geopackage \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_broken_geopackage2 \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_no_tile \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_multiresult \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_different_srid \
- at ENABLE_GEOPACKAGE_TRUE@		check_point_to_tile_broken_srid \
 @ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat \
 @ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat_nonimage \
 @ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat_nonblob \
 @ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat_png \
 @ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat_tiff \
- at ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat_webp
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgGetImageFormat_webp \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgConvert \
+ at ENABLE_GEOPACKAGE_TRUE@		check_gpkgVirtual
 
 subdir = test
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/depcomp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(top_srcdir)/test-driver
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -120,11 +149,18 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 @ENABLE_GEOPACKAGE_TRUE at am__EXEEXT_1 =  \
 @ENABLE_GEOPACKAGE_TRUE@	check_createBaseTables$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgCreateTilesTable$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgCreateTilesTableMissingSRID$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgCreateTilesZoomLevel$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgInsertEpsgSRID$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgCreateFeaturesTable$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkg_base_core_contents_data_table_def$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_add_tile_triggers$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_add_tile_triggers_bad_table_name$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_add_rt_metadata_triggers_bad_table_name$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_add_rt_metadata_triggers_wrong_arg_type$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_add_rt_metadata_triggers$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_get_normal_row$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_get_normal_row_bad_geopackage$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_get_normal_row_bad_geopackage2$(EXEEXT) \
@@ -132,40 +168,21 @@ CONFIG_CLEAN_VPATH_FILES =
 @ENABLE_GEOPACKAGE_TRUE@	check_get_normal_zoom_extension_load$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_get_normal_zoom_bad_geopackage$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_get_normal_zoom_bad_geopackage2$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_wrong_arg_type$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_integer_coordinates$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_bad_tablename$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_broken_geopackage$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_broken_geopackage2$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_no_tile$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_multiresult$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_different_srid$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_point_to_tile_broken_srid$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat_nonimage$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat_nonblob$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat_png$(EXEEXT) \
 @ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat_tiff$(EXEEXT) \
- at ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat_webp$(EXEEXT)
-check_add_rt_metadata_triggers_SOURCES =  \
-	check_add_rt_metadata_triggers.c
-check_add_rt_metadata_triggers_OBJECTS =  \
-	check_add_rt_metadata_triggers.$(OBJEXT)
-check_add_rt_metadata_triggers_LDADD = $(LDADD)
-check_add_rt_metadata_triggers_bad_table_name_SOURCES =  \
-	check_add_rt_metadata_triggers_bad_table_name.c
-check_add_rt_metadata_triggers_bad_table_name_OBJECTS =  \
-	check_add_rt_metadata_triggers_bad_table_name.$(OBJEXT)
-check_add_rt_metadata_triggers_bad_table_name_LDADD = $(LDADD)
-check_add_rt_metadata_triggers_wrong_arg_type_SOURCES =  \
-	check_add_rt_metadata_triggers_wrong_arg_type.c
-check_add_rt_metadata_triggers_wrong_arg_type_OBJECTS =  \
-	check_add_rt_metadata_triggers_wrong_arg_type.$(OBJEXT)
-check_add_rt_metadata_triggers_wrong_arg_type_LDADD = $(LDADD)
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgGetImageFormat_webp$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgConvert$(EXEEXT) \
+ at ENABLE_GEOPACKAGE_TRUE@	check_gpkgVirtual$(EXEEXT)
 check_add_tile_triggers_SOURCES = check_add_tile_triggers.c
 check_add_tile_triggers_OBJECTS = check_add_tile_triggers.$(OBJEXT)
 check_add_tile_triggers_LDADD = $(LDADD)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
 check_add_tile_triggers_bad_table_name_SOURCES =  \
 	check_add_tile_triggers_bad_table_name.c
 check_add_tile_triggers_bad_table_name_OBJECTS =  \
@@ -260,6 +277,28 @@ check_get_normal_zoom_extension_load_SOURCES =  \
 check_get_normal_zoom_extension_load_OBJECTS =  \
 	check_get_normal_zoom_extension_load.$(OBJEXT)
 check_get_normal_zoom_extension_load_LDADD = $(LDADD)
+check_gpkgConvert_SOURCES = check_gpkgConvert.c
+check_gpkgConvert_OBJECTS = check_gpkgConvert.$(OBJEXT)
+check_gpkgConvert_LDADD = $(LDADD)
+check_gpkgCreateFeaturesTable_SOURCES =  \
+	check_gpkgCreateFeaturesTable.c
+check_gpkgCreateFeaturesTable_OBJECTS =  \
+	check_gpkgCreateFeaturesTable.$(OBJEXT)
+check_gpkgCreateFeaturesTable_LDADD = $(LDADD)
+check_gpkgCreateTilesTable_SOURCES = check_gpkgCreateTilesTable.c
+check_gpkgCreateTilesTable_OBJECTS =  \
+	check_gpkgCreateTilesTable.$(OBJEXT)
+check_gpkgCreateTilesTable_LDADD = $(LDADD)
+check_gpkgCreateTilesTableMissingSRID_SOURCES =  \
+	check_gpkgCreateTilesTableMissingSRID.c
+check_gpkgCreateTilesTableMissingSRID_OBJECTS =  \
+	check_gpkgCreateTilesTableMissingSRID.$(OBJEXT)
+check_gpkgCreateTilesTableMissingSRID_LDADD = $(LDADD)
+check_gpkgCreateTilesZoomLevel_SOURCES =  \
+	check_gpkgCreateTilesZoomLevel.c
+check_gpkgCreateTilesZoomLevel_OBJECTS =  \
+	check_gpkgCreateTilesZoomLevel.$(OBJEXT)
+check_gpkgCreateTilesZoomLevel_LDADD = $(LDADD)
 check_gpkgGetImageFormat_SOURCES = check_gpkgGetImageFormat.c
 check_gpkgGetImageFormat_OBJECTS = check_gpkgGetImageFormat.$(OBJEXT)
 check_gpkgGetImageFormat_LDADD = $(LDADD)
@@ -287,6 +326,35 @@ check_gpkgGetImageFormat_webp_SOURCES =  \
 check_gpkgGetImageFormat_webp_OBJECTS =  \
 	check_gpkgGetImageFormat_webp.$(OBJEXT)
 check_gpkgGetImageFormat_webp_LDADD = $(LDADD)
+check_gpkgInsertEpsgSRID_SOURCES = check_gpkgInsertEpsgSRID.c
+check_gpkgInsertEpsgSRID_OBJECTS = check_gpkgInsertEpsgSRID.$(OBJEXT)
+check_gpkgInsertEpsgSRID_LDADD = $(LDADD)
+check_gpkgVirtual_SOURCES = check_gpkgVirtual.c
+check_gpkgVirtual_OBJECTS = check_gpkgVirtual.$(OBJEXT)
+check_gpkgVirtual_LDADD = $(LDADD)
+check_gpkg_base_core_container_data_file_format_application_id_SOURCES = check_gpkg_base_core_container_data_file_format_application_id.c
+check_gpkg_base_core_container_data_file_format_application_id_OBJECTS = check_gpkg_base_core_container_data_file_format_application_id.$(OBJEXT)
+check_gpkg_base_core_container_data_file_format_application_id_LDADD =  \
+	$(LDADD)
+check_gpkg_base_core_contents_data_table_def_SOURCES =  \
+	check_gpkg_base_core_contents_data_table_def.c
+check_gpkg_base_core_contents_data_table_def_OBJECTS =  \
+	check_gpkg_base_core_contents_data_table_def.$(OBJEXT)
+check_gpkg_base_core_contents_data_table_def_LDADD = $(LDADD)
+check_gpkg_base_core_spatial_ref_sys_data_table_def_SOURCES =  \
+	check_gpkg_base_core_spatial_ref_sys_data_table_def.c
+check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS =  \
+	check_gpkg_base_core_spatial_ref_sys_data_table_def.$(OBJEXT)
+check_gpkg_base_core_spatial_ref_sys_data_table_def_LDADD = $(LDADD)
+check_gpkg_base_core_spatial_ref_sys_data_values_default_SOURCES =  \
+	check_gpkg_base_core_spatial_ref_sys_data_values_default.c
+check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS = check_gpkg_base_core_spatial_ref_sys_data_values_default.$(OBJEXT)
+check_gpkg_base_core_spatial_ref_sys_data_values_default_LDADD =  \
+	$(LDADD)
+check_gpkg_opt_extension_mechanism_extensions_data_table_def_SOURCES = check_gpkg_opt_extension_mechanism_extensions_data_table_def.c
+check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS = check_gpkg_opt_extension_mechanism_extensions_data_table_def.$(OBJEXT)
+check_gpkg_opt_extension_mechanism_extensions_data_table_def_LDADD =  \
+	$(LDADD)
 check_init_SOURCES = check_init.c
 check_init_OBJECTS = check_init.$(OBJEXT)
 check_init_LDADD = $(LDADD)
@@ -305,53 +373,12 @@ check_mbrcache_LDADD = $(LDADD)
 check_md5_SOURCES = check_md5.c
 check_md5_OBJECTS = check_md5.$(OBJEXT)
 check_md5_LDADD = $(LDADD)
-check_point_to_tile_SOURCES = check_point_to_tile.c
-check_point_to_tile_OBJECTS = check_point_to_tile.$(OBJEXT)
-check_point_to_tile_LDADD = $(LDADD)
-check_point_to_tile_bad_tablename_SOURCES =  \
-	check_point_to_tile_bad_tablename.c
-check_point_to_tile_bad_tablename_OBJECTS =  \
-	check_point_to_tile_bad_tablename.$(OBJEXT)
-check_point_to_tile_bad_tablename_LDADD = $(LDADD)
-check_point_to_tile_broken_geopackage_SOURCES =  \
-	check_point_to_tile_broken_geopackage.c
-check_point_to_tile_broken_geopackage_OBJECTS =  \
-	check_point_to_tile_broken_geopackage.$(OBJEXT)
-check_point_to_tile_broken_geopackage_LDADD = $(LDADD)
-check_point_to_tile_broken_geopackage2_SOURCES =  \
-	check_point_to_tile_broken_geopackage2.c
-check_point_to_tile_broken_geopackage2_OBJECTS =  \
-	check_point_to_tile_broken_geopackage2.$(OBJEXT)
-check_point_to_tile_broken_geopackage2_LDADD = $(LDADD)
-check_point_to_tile_broken_srid_SOURCES =  \
-	check_point_to_tile_broken_srid.c
-check_point_to_tile_broken_srid_OBJECTS =  \
-	check_point_to_tile_broken_srid.$(OBJEXT)
-check_point_to_tile_broken_srid_LDADD = $(LDADD)
-check_point_to_tile_different_srid_SOURCES =  \
-	check_point_to_tile_different_srid.c
-check_point_to_tile_different_srid_OBJECTS =  \
-	check_point_to_tile_different_srid.$(OBJEXT)
-check_point_to_tile_different_srid_LDADD = $(LDADD)
-check_point_to_tile_integer_coordinates_SOURCES =  \
-	check_point_to_tile_integer_coordinates.c
-check_point_to_tile_integer_coordinates_OBJECTS =  \
-	check_point_to_tile_integer_coordinates.$(OBJEXT)
-check_point_to_tile_integer_coordinates_LDADD = $(LDADD)
-check_point_to_tile_multiresult_SOURCES =  \
-	check_point_to_tile_multiresult.c
-check_point_to_tile_multiresult_OBJECTS =  \
-	check_point_to_tile_multiresult.$(OBJEXT)
-check_point_to_tile_multiresult_LDADD = $(LDADD)
-check_point_to_tile_no_tile_SOURCES = check_point_to_tile_no_tile.c
-check_point_to_tile_no_tile_OBJECTS =  \
-	check_point_to_tile_no_tile.$(OBJEXT)
-check_point_to_tile_no_tile_LDADD = $(LDADD)
-check_point_to_tile_wrong_arg_type_SOURCES =  \
-	check_point_to_tile_wrong_arg_type.c
-check_point_to_tile_wrong_arg_type_OBJECTS =  \
-	check_point_to_tile_wrong_arg_type.$(OBJEXT)
-check_point_to_tile_wrong_arg_type_LDADD = $(LDADD)
+check_metacatalog_SOURCES = check_metacatalog.c
+check_metacatalog_OBJECTS = check_metacatalog.$(OBJEXT)
+check_metacatalog_LDADD = $(LDADD)
+check_multithread_SOURCES = check_multithread.c
+check_multithread_OBJECTS = check_multithread.$(OBJEXT)
+check_multithread_LDADD = $(LDADD)
 check_recover_geom_SOURCES = check_recover_geom.c
 check_recover_geom_OBJECTS = check_recover_geom.$(OBJEXT)
 check_recover_geom_LDADD = $(LDADD)
@@ -379,6 +406,9 @@ check_version_LDADD = $(LDADD)
 check_virtual_ovflw_SOURCES = check_virtual_ovflw.c
 check_virtual_ovflw_OBJECTS = check_virtual_ovflw.$(OBJEXT)
 check_virtual_ovflw_LDADD = $(LDADD)
+check_virtualbbox_SOURCES = check_virtualbbox.c
+check_virtualbbox_OBJECTS = check_virtualbbox.$(OBJEXT)
+check_virtualbbox_LDADD = $(LDADD)
 check_virtualtable1_SOURCES = check_virtualtable1.c
 check_virtualtable1_OBJECTS = check_virtualtable1.$(OBJEXT)
 check_virtualtable1_LDADD = $(LDADD)
@@ -424,23 +454,41 @@ shape_utf8_1ex_LDADD = $(LDADD)
 shape_utf8_2_SOURCES = shape_utf8_2.c
 shape_utf8_2_OBJECTS = shape_utf8_2.$(OBJEXT)
 shape_utf8_2_LDADD = $(LDADD)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = check_add_rt_metadata_triggers.c \
-	check_add_rt_metadata_triggers_bad_table_name.c \
-	check_add_rt_metadata_triggers_wrong_arg_type.c \
-	check_add_tile_triggers.c \
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = check_add_tile_triggers.c \
 	check_add_tile_triggers_bad_table_name.c check_bufovflw.c \
 	check_create.c check_createBaseTables.c check_dbf_load.c \
 	check_dxf.c check_endian.c check_exif.c check_exif2.c \
@@ -452,34 +500,33 @@ SOURCES = check_add_rt_metadata_triggers.c \
 	check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \
 	check_get_normal_zoom_bad_geopackage.c \
 	check_get_normal_zoom_bad_geopackage2.c \
-	check_get_normal_zoom_extension_load.c \
-	check_gpkgGetImageFormat.c check_gpkgGetImageFormat_nonblob.c \
+	check_get_normal_zoom_extension_load.c check_gpkgConvert.c \
+	check_gpkgCreateFeaturesTable.c check_gpkgCreateTilesTable.c \
+	check_gpkgCreateTilesTableMissingSRID.c \
+	check_gpkgCreateTilesZoomLevel.c check_gpkgGetImageFormat.c \
+	check_gpkgGetImageFormat_nonblob.c \
 	check_gpkgGetImageFormat_nonimage.c \
 	check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \
-	check_gpkgGetImageFormat_webp.c check_init.c check_init2.c \
-	check_libxml2.c check_math_funcs.c check_mbrcache.c \
-	check_md5.c check_point_to_tile.c \
-	check_point_to_tile_bad_tablename.c \
-	check_point_to_tile_broken_geopackage.c \
-	check_point_to_tile_broken_geopackage2.c \
-	check_point_to_tile_broken_srid.c \
-	check_point_to_tile_different_srid.c \
-	check_point_to_tile_integer_coordinates.c \
-	check_point_to_tile_multiresult.c \
-	check_point_to_tile_no_tile.c \
-	check_point_to_tile_wrong_arg_type.c check_recover_geom.c \
+	check_gpkgGetImageFormat_webp.c check_gpkgInsertEpsgSRID.c \
+	check_gpkgVirtual.c \
+	check_gpkg_base_core_container_data_file_format_application_id.c \
+	check_gpkg_base_core_contents_data_table_def.c \
+	check_gpkg_base_core_spatial_ref_sys_data_table_def.c \
+	check_gpkg_base_core_spatial_ref_sys_data_values_default.c \
+	check_gpkg_opt_extension_mechanism_extensions_data_table_def.c \
+	check_init.c check_init2.c check_libxml2.c check_math_funcs.c \
+	check_mbrcache.c check_md5.c check_metacatalog.c \
+	check_multithread.c check_recover_geom.c \
 	check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \
 	check_spatialindex.c check_sql_stmt.c check_styling.c \
-	check_version.c check_virtual_ovflw.c check_virtualtable1.c \
-	check_virtualtable2.c check_virtualtable3.c \
-	check_virtualtable4.c check_virtualtable5.c \
-	check_virtualtable6.c check_virtualxpath.c check_wfsin.c \
-	check_xls_load.c shape_3d.c shape_cp1252.c shape_primitives.c \
-	shape_utf8_1.c shape_utf8_1ex.c shape_utf8_2.c
-DIST_SOURCES = check_add_rt_metadata_triggers.c \
-	check_add_rt_metadata_triggers_bad_table_name.c \
-	check_add_rt_metadata_triggers_wrong_arg_type.c \
-	check_add_tile_triggers.c \
+	check_version.c check_virtual_ovflw.c check_virtualbbox.c \
+	check_virtualtable1.c check_virtualtable2.c \
+	check_virtualtable3.c check_virtualtable4.c \
+	check_virtualtable5.c check_virtualtable6.c \
+	check_virtualxpath.c check_wfsin.c check_xls_load.c shape_3d.c \
+	shape_cp1252.c shape_primitives.c shape_utf8_1.c \
+	shape_utf8_1ex.c shape_utf8_2.c
+DIST_SOURCES = check_add_tile_triggers.c \
 	check_add_tile_triggers_bad_table_name.c check_bufovflw.c \
 	check_create.c check_createBaseTables.c check_dbf_load.c \
 	check_dxf.c check_endian.c check_exif.c check_exif2.c \
@@ -491,37 +538,40 @@ DIST_SOURCES = check_add_rt_metadata_triggers.c \
 	check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \
 	check_get_normal_zoom_bad_geopackage.c \
 	check_get_normal_zoom_bad_geopackage2.c \
-	check_get_normal_zoom_extension_load.c \
-	check_gpkgGetImageFormat.c check_gpkgGetImageFormat_nonblob.c \
+	check_get_normal_zoom_extension_load.c check_gpkgConvert.c \
+	check_gpkgCreateFeaturesTable.c check_gpkgCreateTilesTable.c \
+	check_gpkgCreateTilesTableMissingSRID.c \
+	check_gpkgCreateTilesZoomLevel.c check_gpkgGetImageFormat.c \
+	check_gpkgGetImageFormat_nonblob.c \
 	check_gpkgGetImageFormat_nonimage.c \
 	check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \
-	check_gpkgGetImageFormat_webp.c check_init.c check_init2.c \
-	check_libxml2.c check_math_funcs.c check_mbrcache.c \
-	check_md5.c check_point_to_tile.c \
-	check_point_to_tile_bad_tablename.c \
-	check_point_to_tile_broken_geopackage.c \
-	check_point_to_tile_broken_geopackage2.c \
-	check_point_to_tile_broken_srid.c \
-	check_point_to_tile_different_srid.c \
-	check_point_to_tile_integer_coordinates.c \
-	check_point_to_tile_multiresult.c \
-	check_point_to_tile_no_tile.c \
-	check_point_to_tile_wrong_arg_type.c check_recover_geom.c \
+	check_gpkgGetImageFormat_webp.c check_gpkgInsertEpsgSRID.c \
+	check_gpkgVirtual.c \
+	check_gpkg_base_core_container_data_file_format_application_id.c \
+	check_gpkg_base_core_contents_data_table_def.c \
+	check_gpkg_base_core_spatial_ref_sys_data_table_def.c \
+	check_gpkg_base_core_spatial_ref_sys_data_values_default.c \
+	check_gpkg_opt_extension_mechanism_extensions_data_table_def.c \
+	check_init.c check_init2.c check_libxml2.c check_math_funcs.c \
+	check_mbrcache.c check_md5.c check_metacatalog.c \
+	check_multithread.c check_recover_geom.c \
 	check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \
 	check_spatialindex.c check_sql_stmt.c check_styling.c \
-	check_version.c check_virtual_ovflw.c check_virtualtable1.c \
-	check_virtualtable2.c check_virtualtable3.c \
-	check_virtualtable4.c check_virtualtable5.c \
-	check_virtualtable6.c check_virtualxpath.c check_wfsin.c \
-	check_xls_load.c shape_3d.c shape_cp1252.c shape_primitives.c \
-	shape_utf8_1.c shape_utf8_1ex.c shape_utf8_2.c
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+	check_version.c check_virtual_ovflw.c check_virtualbbox.c \
+	check_virtualtable1.c check_virtualtable2.c \
+	check_virtualtable3.c check_virtualtable4.c \
+	check_virtualtable5.c check_virtualtable6.c \
+	check_virtualxpath.c check_wfsin.c check_xls_load.c shape_3d.c \
+	shape_cp1252.c shape_primitives.c shape_utf8_1.c \
+	shape_utf8_1ex.c shape_utf8_2.c
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -529,15 +579,234 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	check recheck distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors_dummy = \
   mgn= red= grn= lgn= blu= brg= std=; \
   am__color_tests=no
-am__tty_colors = $(am__tty_colors_dummy)
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
@@ -567,6 +836,7 @@ am__relativize = \
   reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -693,7 +963,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
+AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@
 AM_CFLAGS = -I at srcdir@/../src/headers -I at srcdir@
 AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS)
 TESTS = $(check_PROGRAMS)
@@ -713,6 +983,7 @@ EXTRA_DIST = asprintf4win.h \
 	test-legacy-2.3.1.sqlite \
 	test-legacy-3.0.1.sqlite \
 	test-invalid.sqlite \
+	test_geos.sqlite \
 	shp/new-caledonia/buildings.dbf \
 	shp/new-caledonia/buildings.prj \
 	shp/new-caledonia/buildings.shp \
@@ -769,7 +1040,7 @@ EXTRA_DIST = asprintf4win.h \
 	books.xml books.xsd opera.xml opera.xsd \
 	movies.xml movies.xsd books-bad.xml books-bad.xsd \
 	inspire-data-example.xml stazioni_se.xml \
-	raster_se.xml thunderstorm_mild.svg \
+	raster_se.xml sld_sample.xml thunderstorm_mild.svg \
 	tile000.jpeg  tile101.jpeg  tile111.jpeg \
 	test.webp tile100.jpeg  tile110.jpeg \
 	Apple-iPhone-4.jpg empty.png  empty.tif \
@@ -779,18 +1050,18 @@ EXTRA_DIST = asprintf4win.h \
 	describefeaturetype.wfs	\
 	22.dxf f06.dxf l02.dxf p05.dxf \
 	archaic.dxf linked.dxf hatch.dxf \
-	symbol.dxf
+	symbol.dxf gpkg_test.sqlite gpkg_test.gpkg
 
 SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \
-	sql_stmt_geostrunk_tests sql_stmt_libxml2_tests \
-	sql_stmt_lwgeom_tests sql_stmt_mathsql_tests \
-	sql_stmt_proj_tests sql_stmt_security_tests \
-	sql_stmt_tests sql_stmt_xmlsec_tests
+	sql_stmt_libxml2_tests sql_stmt_lwgeom_tests \
+	sql_stmt_mathsql_tests sql_stmt_proj_tests \
+	sql_stmt_security_tests sql_stmt_tests \
+	sql_stmt_xmlsec_tests sql_stmt_geopackage_tests
 
 all: all-recursive
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -830,237 +1101,322 @@ clean-checkPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-check_add_rt_metadata_triggers$(EXEEXT): $(check_add_rt_metadata_triggers_OBJECTS) $(check_add_rt_metadata_triggers_DEPENDENCIES) $(EXTRA_check_add_rt_metadata_triggers_DEPENDENCIES) 
-	@rm -f check_add_rt_metadata_triggers$(EXEEXT)
-	$(LINK) $(check_add_rt_metadata_triggers_OBJECTS) $(check_add_rt_metadata_triggers_LDADD) $(LIBS)
-check_add_rt_metadata_triggers_bad_table_name$(EXEEXT): $(check_add_rt_metadata_triggers_bad_table_name_OBJECTS) $(check_add_rt_metadata_triggers_bad_table_name_DEPENDENCIES) $(EXTRA_check_add_rt_metadata_triggers_bad_table_name_DEPENDENCIES) 
-	@rm -f check_add_rt_metadata_triggers_bad_table_name$(EXEEXT)
-	$(LINK) $(check_add_rt_metadata_triggers_bad_table_name_OBJECTS) $(check_add_rt_metadata_triggers_bad_table_name_LDADD) $(LIBS)
-check_add_rt_metadata_triggers_wrong_arg_type$(EXEEXT): $(check_add_rt_metadata_triggers_wrong_arg_type_OBJECTS) $(check_add_rt_metadata_triggers_wrong_arg_type_DEPENDENCIES) $(EXTRA_check_add_rt_metadata_triggers_wrong_arg_type_DEPENDENCIES) 
-	@rm -f check_add_rt_metadata_triggers_wrong_arg_type$(EXEEXT)
-	$(LINK) $(check_add_rt_metadata_triggers_wrong_arg_type_OBJECTS) $(check_add_rt_metadata_triggers_wrong_arg_type_LDADD) $(LIBS)
+
 check_add_tile_triggers$(EXEEXT): $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_DEPENDENCIES) 
 	@rm -f check_add_tile_triggers$(EXEEXT)
-	$(LINK) $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_LDADD) $(LIBS)
+
 check_add_tile_triggers_bad_table_name$(EXEEXT): $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_bad_table_name_DEPENDENCIES) 
 	@rm -f check_add_tile_triggers_bad_table_name$(EXEEXT)
-	$(LINK) $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_LDADD) $(LIBS)
+
 check_bufovflw$(EXEEXT): $(check_bufovflw_OBJECTS) $(check_bufovflw_DEPENDENCIES) $(EXTRA_check_bufovflw_DEPENDENCIES) 
 	@rm -f check_bufovflw$(EXEEXT)
-	$(LINK) $(check_bufovflw_OBJECTS) $(check_bufovflw_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_bufovflw_OBJECTS) $(check_bufovflw_LDADD) $(LIBS)
+
 check_create$(EXEEXT): $(check_create_OBJECTS) $(check_create_DEPENDENCIES) $(EXTRA_check_create_DEPENDENCIES) 
 	@rm -f check_create$(EXEEXT)
-	$(LINK) $(check_create_OBJECTS) $(check_create_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_create_OBJECTS) $(check_create_LDADD) $(LIBS)
+
 check_createBaseTables$(EXEEXT): $(check_createBaseTables_OBJECTS) $(check_createBaseTables_DEPENDENCIES) $(EXTRA_check_createBaseTables_DEPENDENCIES) 
 	@rm -f check_createBaseTables$(EXEEXT)
-	$(LINK) $(check_createBaseTables_OBJECTS) $(check_createBaseTables_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_createBaseTables_OBJECTS) $(check_createBaseTables_LDADD) $(LIBS)
+
 check_dbf_load$(EXEEXT): $(check_dbf_load_OBJECTS) $(check_dbf_load_DEPENDENCIES) $(EXTRA_check_dbf_load_DEPENDENCIES) 
 	@rm -f check_dbf_load$(EXEEXT)
-	$(LINK) $(check_dbf_load_OBJECTS) $(check_dbf_load_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_dbf_load_OBJECTS) $(check_dbf_load_LDADD) $(LIBS)
+
 check_dxf$(EXEEXT): $(check_dxf_OBJECTS) $(check_dxf_DEPENDENCIES) $(EXTRA_check_dxf_DEPENDENCIES) 
 	@rm -f check_dxf$(EXEEXT)
-	$(LINK) $(check_dxf_OBJECTS) $(check_dxf_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_dxf_OBJECTS) $(check_dxf_LDADD) $(LIBS)
+
 check_endian$(EXEEXT): $(check_endian_OBJECTS) $(check_endian_DEPENDENCIES) $(EXTRA_check_endian_DEPENDENCIES) 
 	@rm -f check_endian$(EXEEXT)
-	$(LINK) $(check_endian_OBJECTS) $(check_endian_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_endian_OBJECTS) $(check_endian_LDADD) $(LIBS)
+
 check_exif$(EXEEXT): $(check_exif_OBJECTS) $(check_exif_DEPENDENCIES) $(EXTRA_check_exif_DEPENDENCIES) 
 	@rm -f check_exif$(EXEEXT)
-	$(LINK) $(check_exif_OBJECTS) $(check_exif_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_exif_OBJECTS) $(check_exif_LDADD) $(LIBS)
+
 check_exif2$(EXEEXT): $(check_exif2_OBJECTS) $(check_exif2_DEPENDENCIES) $(EXTRA_check_exif2_DEPENDENCIES) 
 	@rm -f check_exif2$(EXEEXT)
-	$(LINK) $(check_exif2_OBJECTS) $(check_exif2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_exif2_OBJECTS) $(check_exif2_LDADD) $(LIBS)
+
 check_extension$(EXEEXT): $(check_extension_OBJECTS) $(check_extension_DEPENDENCIES) $(EXTRA_check_extension_DEPENDENCIES) 
 	@rm -f check_extension$(EXEEXT)
-	$(LINK) $(check_extension_OBJECTS) $(check_extension_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_extension_OBJECTS) $(check_extension_LDADD) $(LIBS)
+
 check_extra_relations_fncts$(EXEEXT): $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_DEPENDENCIES) $(EXTRA_check_extra_relations_fncts_DEPENDENCIES) 
 	@rm -f check_extra_relations_fncts$(EXEEXT)
-	$(LINK) $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_LDADD) $(LIBS)
+
 check_fdo1$(EXEEXT): $(check_fdo1_OBJECTS) $(check_fdo1_DEPENDENCIES) $(EXTRA_check_fdo1_DEPENDENCIES) 
 	@rm -f check_fdo1$(EXEEXT)
-	$(LINK) $(check_fdo1_OBJECTS) $(check_fdo1_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_fdo1_OBJECTS) $(check_fdo1_LDADD) $(LIBS)
+
 check_fdo2$(EXEEXT): $(check_fdo2_OBJECTS) $(check_fdo2_DEPENDENCIES) $(EXTRA_check_fdo2_DEPENDENCIES) 
 	@rm -f check_fdo2$(EXEEXT)
-	$(LINK) $(check_fdo2_OBJECTS) $(check_fdo2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_fdo2_OBJECTS) $(check_fdo2_LDADD) $(LIBS)
+
 check_fdo3$(EXEEXT): $(check_fdo3_OBJECTS) $(check_fdo3_DEPENDENCIES) $(EXTRA_check_fdo3_DEPENDENCIES) 
 	@rm -f check_fdo3$(EXEEXT)
-	$(LINK) $(check_fdo3_OBJECTS) $(check_fdo3_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_fdo3_OBJECTS) $(check_fdo3_LDADD) $(LIBS)
+
 check_fdo_bufovflw$(EXEEXT): $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_DEPENDENCIES) $(EXTRA_check_fdo_bufovflw_DEPENDENCIES) 
 	@rm -f check_fdo_bufovflw$(EXEEXT)
-	$(LINK) $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_LDADD) $(LIBS)
+
 check_gaia_utf8$(EXEEXT): $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_DEPENDENCIES) $(EXTRA_check_gaia_utf8_DEPENDENCIES) 
 	@rm -f check_gaia_utf8$(EXEEXT)
-	$(LINK) $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_LDADD) $(LIBS)
+
 check_gaia_util$(EXEEXT): $(check_gaia_util_OBJECTS) $(check_gaia_util_DEPENDENCIES) $(EXTRA_check_gaia_util_DEPENDENCIES) 
 	@rm -f check_gaia_util$(EXEEXT)
-	$(LINK) $(check_gaia_util_OBJECTS) $(check_gaia_util_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gaia_util_OBJECTS) $(check_gaia_util_LDADD) $(LIBS)
+
 check_geom_aux$(EXEEXT): $(check_geom_aux_OBJECTS) $(check_geom_aux_DEPENDENCIES) $(EXTRA_check_geom_aux_DEPENDENCIES) 
 	@rm -f check_geom_aux$(EXEEXT)
-	$(LINK) $(check_geom_aux_OBJECTS) $(check_geom_aux_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_geom_aux_OBJECTS) $(check_geom_aux_LDADD) $(LIBS)
+
 check_geometry_cols$(EXEEXT): $(check_geometry_cols_OBJECTS) $(check_geometry_cols_DEPENDENCIES) $(EXTRA_check_geometry_cols_DEPENDENCIES) 
 	@rm -f check_geometry_cols$(EXEEXT)
-	$(LINK) $(check_geometry_cols_OBJECTS) $(check_geometry_cols_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_geometry_cols_OBJECTS) $(check_geometry_cols_LDADD) $(LIBS)
+
 check_geoscvt_fncts$(EXEEXT): $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_DEPENDENCIES) $(EXTRA_check_geoscvt_fncts_DEPENDENCIES) 
 	@rm -f check_geoscvt_fncts$(EXEEXT)
-	$(LINK) $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_LDADD) $(LIBS)
+
 check_get_normal_row$(EXEEXT): $(check_get_normal_row_OBJECTS) $(check_get_normal_row_DEPENDENCIES) $(EXTRA_check_get_normal_row_DEPENDENCIES) 
 	@rm -f check_get_normal_row$(EXEEXT)
-	$(LINK) $(check_get_normal_row_OBJECTS) $(check_get_normal_row_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_row_OBJECTS) $(check_get_normal_row_LDADD) $(LIBS)
+
 check_get_normal_row_bad_geopackage$(EXEEXT): $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage_DEPENDENCIES) 
 	@rm -f check_get_normal_row_bad_geopackage$(EXEEXT)
-	$(LINK) $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_LDADD) $(LIBS)
+
 check_get_normal_row_bad_geopackage2$(EXEEXT): $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage2_DEPENDENCIES) 
 	@rm -f check_get_normal_row_bad_geopackage2$(EXEEXT)
-	$(LINK) $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_LDADD) $(LIBS)
+
 check_get_normal_zoom$(EXEEXT): $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_DEPENDENCIES) 
 	@rm -f check_get_normal_zoom$(EXEEXT)
-	$(LINK) $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_LDADD) $(LIBS)
+
 check_get_normal_zoom_bad_geopackage$(EXEEXT): $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage_DEPENDENCIES) 
 	@rm -f check_get_normal_zoom_bad_geopackage$(EXEEXT)
-	$(LINK) $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_LDADD) $(LIBS)
+
 check_get_normal_zoom_bad_geopackage2$(EXEEXT): $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) 
 	@rm -f check_get_normal_zoom_bad_geopackage2$(EXEEXT)
-	$(LINK) $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_LDADD) $(LIBS)
+
 check_get_normal_zoom_extension_load$(EXEEXT): $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_extension_load_DEPENDENCIES) 
 	@rm -f check_get_normal_zoom_extension_load$(EXEEXT)
-	$(LINK) $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_LDADD) $(LIBS)
+
+check_gpkgConvert$(EXEEXT): $(check_gpkgConvert_OBJECTS) $(check_gpkgConvert_DEPENDENCIES) $(EXTRA_check_gpkgConvert_DEPENDENCIES) 
+	@rm -f check_gpkgConvert$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgConvert_OBJECTS) $(check_gpkgConvert_LDADD) $(LIBS)
+
+check_gpkgCreateFeaturesTable$(EXEEXT): $(check_gpkgCreateFeaturesTable_OBJECTS) $(check_gpkgCreateFeaturesTable_DEPENDENCIES) $(EXTRA_check_gpkgCreateFeaturesTable_DEPENDENCIES) 
+	@rm -f check_gpkgCreateFeaturesTable$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgCreateFeaturesTable_OBJECTS) $(check_gpkgCreateFeaturesTable_LDADD) $(LIBS)
+
+check_gpkgCreateTilesTable$(EXEEXT): $(check_gpkgCreateTilesTable_OBJECTS) $(check_gpkgCreateTilesTable_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesTable_DEPENDENCIES) 
+	@rm -f check_gpkgCreateTilesTable$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesTable_OBJECTS) $(check_gpkgCreateTilesTable_LDADD) $(LIBS)
+
+check_gpkgCreateTilesTableMissingSRID$(EXEEXT): $(check_gpkgCreateTilesTableMissingSRID_OBJECTS) $(check_gpkgCreateTilesTableMissingSRID_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesTableMissingSRID_DEPENDENCIES) 
+	@rm -f check_gpkgCreateTilesTableMissingSRID$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesTableMissingSRID_OBJECTS) $(check_gpkgCreateTilesTableMissingSRID_LDADD) $(LIBS)
+
+check_gpkgCreateTilesZoomLevel$(EXEEXT): $(check_gpkgCreateTilesZoomLevel_OBJECTS) $(check_gpkgCreateTilesZoomLevel_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesZoomLevel_DEPENDENCIES) 
+	@rm -f check_gpkgCreateTilesZoomLevel$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesZoomLevel_OBJECTS) $(check_gpkgCreateTilesZoomLevel_LDADD) $(LIBS)
+
 check_gpkgGetImageFormat$(EXEEXT): $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_DEPENDENCIES) 
 	@rm -f check_gpkgGetImageFormat$(EXEEXT)
-	$(LINK) $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_LDADD) $(LIBS)
+
 check_gpkgGetImageFormat_nonblob$(EXEEXT): $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonblob_DEPENDENCIES) 
 	@rm -f check_gpkgGetImageFormat_nonblob$(EXEEXT)
-	$(LINK) $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_LDADD) $(LIBS)
+
 check_gpkgGetImageFormat_nonimage$(EXEEXT): $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonimage_DEPENDENCIES) 
 	@rm -f check_gpkgGetImageFormat_nonimage$(EXEEXT)
-	$(LINK) $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_LDADD) $(LIBS)
+
 check_gpkgGetImageFormat_png$(EXEEXT): $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_png_DEPENDENCIES) 
 	@rm -f check_gpkgGetImageFormat_png$(EXEEXT)
-	$(LINK) $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_LDADD) $(LIBS)
+
 check_gpkgGetImageFormat_tiff$(EXEEXT): $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_tiff_DEPENDENCIES) 
 	@rm -f check_gpkgGetImageFormat_tiff$(EXEEXT)
-	$(LINK) $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_LDADD) $(LIBS)
+
 check_gpkgGetImageFormat_webp$(EXEEXT): $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_webp_DEPENDENCIES) 
 	@rm -f check_gpkgGetImageFormat_webp$(EXEEXT)
-	$(LINK) $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_LDADD) $(LIBS)
+
+check_gpkgInsertEpsgSRID$(EXEEXT): $(check_gpkgInsertEpsgSRID_OBJECTS) $(check_gpkgInsertEpsgSRID_DEPENDENCIES) $(EXTRA_check_gpkgInsertEpsgSRID_DEPENDENCIES) 
+	@rm -f check_gpkgInsertEpsgSRID$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgInsertEpsgSRID_OBJECTS) $(check_gpkgInsertEpsgSRID_LDADD) $(LIBS)
+
+check_gpkgVirtual$(EXEEXT): $(check_gpkgVirtual_OBJECTS) $(check_gpkgVirtual_DEPENDENCIES) $(EXTRA_check_gpkgVirtual_DEPENDENCIES) 
+	@rm -f check_gpkgVirtual$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkgVirtual_OBJECTS) $(check_gpkgVirtual_LDADD) $(LIBS)
+
+check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT): $(check_gpkg_base_core_container_data_file_format_application_id_OBJECTS) $(check_gpkg_base_core_container_data_file_format_application_id_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_container_data_file_format_application_id_DEPENDENCIES) 
+	@rm -f check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_container_data_file_format_application_id_OBJECTS) $(check_gpkg_base_core_container_data_file_format_application_id_LDADD) $(LIBS)
+
+check_gpkg_base_core_contents_data_table_def$(EXEEXT): $(check_gpkg_base_core_contents_data_table_def_OBJECTS) $(check_gpkg_base_core_contents_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_contents_data_table_def_DEPENDENCIES) 
+	@rm -f check_gpkg_base_core_contents_data_table_def$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_contents_data_table_def_OBJECTS) $(check_gpkg_base_core_contents_data_table_def_LDADD) $(LIBS)
+
+check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT): $(check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_spatial_ref_sys_data_table_def_DEPENDENCIES) 
+	@rm -f check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_LDADD) $(LIBS)
+
+check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT): $(check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_spatial_ref_sys_data_values_default_DEPENDENCIES) 
+	@rm -f check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_LDADD) $(LIBS)
+
+check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT): $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_opt_extension_mechanism_extensions_data_table_def_DEPENDENCIES) 
+	@rm -f check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_LDADD) $(LIBS)
+
 check_init$(EXEEXT): $(check_init_OBJECTS) $(check_init_DEPENDENCIES) $(EXTRA_check_init_DEPENDENCIES) 
 	@rm -f check_init$(EXEEXT)
-	$(LINK) $(check_init_OBJECTS) $(check_init_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_init_OBJECTS) $(check_init_LDADD) $(LIBS)
+
 check_init2$(EXEEXT): $(check_init2_OBJECTS) $(check_init2_DEPENDENCIES) $(EXTRA_check_init2_DEPENDENCIES) 
 	@rm -f check_init2$(EXEEXT)
-	$(LINK) $(check_init2_OBJECTS) $(check_init2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_init2_OBJECTS) $(check_init2_LDADD) $(LIBS)
+
 check_libxml2$(EXEEXT): $(check_libxml2_OBJECTS) $(check_libxml2_DEPENDENCIES) $(EXTRA_check_libxml2_DEPENDENCIES) 
 	@rm -f check_libxml2$(EXEEXT)
-	$(LINK) $(check_libxml2_OBJECTS) $(check_libxml2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_libxml2_OBJECTS) $(check_libxml2_LDADD) $(LIBS)
+
 check_math_funcs$(EXEEXT): $(check_math_funcs_OBJECTS) $(check_math_funcs_DEPENDENCIES) $(EXTRA_check_math_funcs_DEPENDENCIES) 
 	@rm -f check_math_funcs$(EXEEXT)
-	$(LINK) $(check_math_funcs_OBJECTS) $(check_math_funcs_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_math_funcs_OBJECTS) $(check_math_funcs_LDADD) $(LIBS)
+
 check_mbrcache$(EXEEXT): $(check_mbrcache_OBJECTS) $(check_mbrcache_DEPENDENCIES) $(EXTRA_check_mbrcache_DEPENDENCIES) 
 	@rm -f check_mbrcache$(EXEEXT)
-	$(LINK) $(check_mbrcache_OBJECTS) $(check_mbrcache_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_mbrcache_OBJECTS) $(check_mbrcache_LDADD) $(LIBS)
+
 check_md5$(EXEEXT): $(check_md5_OBJECTS) $(check_md5_DEPENDENCIES) $(EXTRA_check_md5_DEPENDENCIES) 
 	@rm -f check_md5$(EXEEXT)
-	$(LINK) $(check_md5_OBJECTS) $(check_md5_LDADD) $(LIBS)
-check_point_to_tile$(EXEEXT): $(check_point_to_tile_OBJECTS) $(check_point_to_tile_DEPENDENCIES) $(EXTRA_check_point_to_tile_DEPENDENCIES) 
-	@rm -f check_point_to_tile$(EXEEXT)
-	$(LINK) $(check_point_to_tile_OBJECTS) $(check_point_to_tile_LDADD) $(LIBS)
-check_point_to_tile_bad_tablename$(EXEEXT): $(check_point_to_tile_bad_tablename_OBJECTS) $(check_point_to_tile_bad_tablename_DEPENDENCIES) $(EXTRA_check_point_to_tile_bad_tablename_DEPENDENCIES) 
-	@rm -f check_point_to_tile_bad_tablename$(EXEEXT)
-	$(LINK) $(check_point_to_tile_bad_tablename_OBJECTS) $(check_point_to_tile_bad_tablename_LDADD) $(LIBS)
-check_point_to_tile_broken_geopackage$(EXEEXT): $(check_point_to_tile_broken_geopackage_OBJECTS) $(check_point_to_tile_broken_geopackage_DEPENDENCIES) $(EXTRA_check_point_to_tile_broken_geopackage_DEPENDENCIES) 
-	@rm -f check_point_to_tile_broken_geopackage$(EXEEXT)
-	$(LINK) $(check_point_to_tile_broken_geopackage_OBJECTS) $(check_point_to_tile_broken_geopackage_LDADD) $(LIBS)
-check_point_to_tile_broken_geopackage2$(EXEEXT): $(check_point_to_tile_broken_geopackage2_OBJECTS) $(check_point_to_tile_broken_geopackage2_DEPENDENCIES) $(EXTRA_check_point_to_tile_broken_geopackage2_DEPENDENCIES) 
-	@rm -f check_point_to_tile_broken_geopackage2$(EXEEXT)
-	$(LINK) $(check_point_to_tile_broken_geopackage2_OBJECTS) $(check_point_to_tile_broken_geopackage2_LDADD) $(LIBS)
-check_point_to_tile_broken_srid$(EXEEXT): $(check_point_to_tile_broken_srid_OBJECTS) $(check_point_to_tile_broken_srid_DEPENDENCIES) $(EXTRA_check_point_to_tile_broken_srid_DEPENDENCIES) 
-	@rm -f check_point_to_tile_broken_srid$(EXEEXT)
-	$(LINK) $(check_point_to_tile_broken_srid_OBJECTS) $(check_point_to_tile_broken_srid_LDADD) $(LIBS)
-check_point_to_tile_different_srid$(EXEEXT): $(check_point_to_tile_different_srid_OBJECTS) $(check_point_to_tile_different_srid_DEPENDENCIES) $(EXTRA_check_point_to_tile_different_srid_DEPENDENCIES) 
-	@rm -f check_point_to_tile_different_srid$(EXEEXT)
-	$(LINK) $(check_point_to_tile_different_srid_OBJECTS) $(check_point_to_tile_different_srid_LDADD) $(LIBS)
-check_point_to_tile_integer_coordinates$(EXEEXT): $(check_point_to_tile_integer_coordinates_OBJECTS) $(check_point_to_tile_integer_coordinates_DEPENDENCIES) $(EXTRA_check_point_to_tile_integer_coordinates_DEPENDENCIES) 
-	@rm -f check_point_to_tile_integer_coordinates$(EXEEXT)
-	$(LINK) $(check_point_to_tile_integer_coordinates_OBJECTS) $(check_point_to_tile_integer_coordinates_LDADD) $(LIBS)
-check_point_to_tile_multiresult$(EXEEXT): $(check_point_to_tile_multiresult_OBJECTS) $(check_point_to_tile_multiresult_DEPENDENCIES) $(EXTRA_check_point_to_tile_multiresult_DEPENDENCIES) 
-	@rm -f check_point_to_tile_multiresult$(EXEEXT)
-	$(LINK) $(check_point_to_tile_multiresult_OBJECTS) $(check_point_to_tile_multiresult_LDADD) $(LIBS)
-check_point_to_tile_no_tile$(EXEEXT): $(check_point_to_tile_no_tile_OBJECTS) $(check_point_to_tile_no_tile_DEPENDENCIES) $(EXTRA_check_point_to_tile_no_tile_DEPENDENCIES) 
-	@rm -f check_point_to_tile_no_tile$(EXEEXT)
-	$(LINK) $(check_point_to_tile_no_tile_OBJECTS) $(check_point_to_tile_no_tile_LDADD) $(LIBS)
-check_point_to_tile_wrong_arg_type$(EXEEXT): $(check_point_to_tile_wrong_arg_type_OBJECTS) $(check_point_to_tile_wrong_arg_type_DEPENDENCIES) $(EXTRA_check_point_to_tile_wrong_arg_type_DEPENDENCIES) 
-	@rm -f check_point_to_tile_wrong_arg_type$(EXEEXT)
-	$(LINK) $(check_point_to_tile_wrong_arg_type_OBJECTS) $(check_point_to_tile_wrong_arg_type_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_md5_OBJECTS) $(check_md5_LDADD) $(LIBS)
+
+check_metacatalog$(EXEEXT): $(check_metacatalog_OBJECTS) $(check_metacatalog_DEPENDENCIES) $(EXTRA_check_metacatalog_DEPENDENCIES) 
+	@rm -f check_metacatalog$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_metacatalog_OBJECTS) $(check_metacatalog_LDADD) $(LIBS)
+
+check_multithread$(EXEEXT): $(check_multithread_OBJECTS) $(check_multithread_DEPENDENCIES) $(EXTRA_check_multithread_DEPENDENCIES) 
+	@rm -f check_multithread$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_multithread_OBJECTS) $(check_multithread_LDADD) $(LIBS)
+
 check_recover_geom$(EXEEXT): $(check_recover_geom_OBJECTS) $(check_recover_geom_DEPENDENCIES) $(EXTRA_check_recover_geom_DEPENDENCIES) 
 	@rm -f check_recover_geom$(EXEEXT)
-	$(LINK) $(check_recover_geom_OBJECTS) $(check_recover_geom_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_recover_geom_OBJECTS) $(check_recover_geom_LDADD) $(LIBS)
+
 check_relations_fncts$(EXEEXT): $(check_relations_fncts_OBJECTS) $(check_relations_fncts_DEPENDENCIES) $(EXTRA_check_relations_fncts_DEPENDENCIES) 
 	@rm -f check_relations_fncts$(EXEEXT)
-	$(LINK) $(check_relations_fncts_OBJECTS) $(check_relations_fncts_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_relations_fncts_OBJECTS) $(check_relations_fncts_LDADD) $(LIBS)
+
 check_shp_load$(EXEEXT): $(check_shp_load_OBJECTS) $(check_shp_load_DEPENDENCIES) $(EXTRA_check_shp_load_DEPENDENCIES) 
 	@rm -f check_shp_load$(EXEEXT)
-	$(LINK) $(check_shp_load_OBJECTS) $(check_shp_load_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_shp_load_OBJECTS) $(check_shp_load_LDADD) $(LIBS)
+
 check_shp_load_3d$(EXEEXT): $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_DEPENDENCIES) $(EXTRA_check_shp_load_3d_DEPENDENCIES) 
 	@rm -f check_shp_load_3d$(EXEEXT)
-	$(LINK) $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_LDADD) $(LIBS)
+
 check_spatialindex$(EXEEXT): $(check_spatialindex_OBJECTS) $(check_spatialindex_DEPENDENCIES) $(EXTRA_check_spatialindex_DEPENDENCIES) 
 	@rm -f check_spatialindex$(EXEEXT)
-	$(LINK) $(check_spatialindex_OBJECTS) $(check_spatialindex_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_spatialindex_OBJECTS) $(check_spatialindex_LDADD) $(LIBS)
+
 check_sql_stmt$(EXEEXT): $(check_sql_stmt_OBJECTS) $(check_sql_stmt_DEPENDENCIES) $(EXTRA_check_sql_stmt_DEPENDENCIES) 
 	@rm -f check_sql_stmt$(EXEEXT)
-	$(LINK) $(check_sql_stmt_OBJECTS) $(check_sql_stmt_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_sql_stmt_OBJECTS) $(check_sql_stmt_LDADD) $(LIBS)
+
 check_styling$(EXEEXT): $(check_styling_OBJECTS) $(check_styling_DEPENDENCIES) $(EXTRA_check_styling_DEPENDENCIES) 
 	@rm -f check_styling$(EXEEXT)
-	$(LINK) $(check_styling_OBJECTS) $(check_styling_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_styling_OBJECTS) $(check_styling_LDADD) $(LIBS)
+
 check_version$(EXEEXT): $(check_version_OBJECTS) $(check_version_DEPENDENCIES) $(EXTRA_check_version_DEPENDENCIES) 
 	@rm -f check_version$(EXEEXT)
-	$(LINK) $(check_version_OBJECTS) $(check_version_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_version_OBJECTS) $(check_version_LDADD) $(LIBS)
+
 check_virtual_ovflw$(EXEEXT): $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_DEPENDENCIES) $(EXTRA_check_virtual_ovflw_DEPENDENCIES) 
 	@rm -f check_virtual_ovflw$(EXEEXT)
-	$(LINK) $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_LDADD) $(LIBS)
+
+check_virtualbbox$(EXEEXT): $(check_virtualbbox_OBJECTS) $(check_virtualbbox_DEPENDENCIES) $(EXTRA_check_virtualbbox_DEPENDENCIES) 
+	@rm -f check_virtualbbox$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(check_virtualbbox_OBJECTS) $(check_virtualbbox_LDADD) $(LIBS)
+
 check_virtualtable1$(EXEEXT): $(check_virtualtable1_OBJECTS) $(check_virtualtable1_DEPENDENCIES) $(EXTRA_check_virtualtable1_DEPENDENCIES) 
 	@rm -f check_virtualtable1$(EXEEXT)
-	$(LINK) $(check_virtualtable1_OBJECTS) $(check_virtualtable1_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualtable1_OBJECTS) $(check_virtualtable1_LDADD) $(LIBS)
+
 check_virtualtable2$(EXEEXT): $(check_virtualtable2_OBJECTS) $(check_virtualtable2_DEPENDENCIES) $(EXTRA_check_virtualtable2_DEPENDENCIES) 
 	@rm -f check_virtualtable2$(EXEEXT)
-	$(LINK) $(check_virtualtable2_OBJECTS) $(check_virtualtable2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualtable2_OBJECTS) $(check_virtualtable2_LDADD) $(LIBS)
+
 check_virtualtable3$(EXEEXT): $(check_virtualtable3_OBJECTS) $(check_virtualtable3_DEPENDENCIES) $(EXTRA_check_virtualtable3_DEPENDENCIES) 
 	@rm -f check_virtualtable3$(EXEEXT)
-	$(LINK) $(check_virtualtable3_OBJECTS) $(check_virtualtable3_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualtable3_OBJECTS) $(check_virtualtable3_LDADD) $(LIBS)
+
 check_virtualtable4$(EXEEXT): $(check_virtualtable4_OBJECTS) $(check_virtualtable4_DEPENDENCIES) $(EXTRA_check_virtualtable4_DEPENDENCIES) 
 	@rm -f check_virtualtable4$(EXEEXT)
-	$(LINK) $(check_virtualtable4_OBJECTS) $(check_virtualtable4_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualtable4_OBJECTS) $(check_virtualtable4_LDADD) $(LIBS)
+
 check_virtualtable5$(EXEEXT): $(check_virtualtable5_OBJECTS) $(check_virtualtable5_DEPENDENCIES) $(EXTRA_check_virtualtable5_DEPENDENCIES) 
 	@rm -f check_virtualtable5$(EXEEXT)
-	$(LINK) $(check_virtualtable5_OBJECTS) $(check_virtualtable5_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualtable5_OBJECTS) $(check_virtualtable5_LDADD) $(LIBS)
+
 check_virtualtable6$(EXEEXT): $(check_virtualtable6_OBJECTS) $(check_virtualtable6_DEPENDENCIES) $(EXTRA_check_virtualtable6_DEPENDENCIES) 
 	@rm -f check_virtualtable6$(EXEEXT)
-	$(LINK) $(check_virtualtable6_OBJECTS) $(check_virtualtable6_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualtable6_OBJECTS) $(check_virtualtable6_LDADD) $(LIBS)
+
 check_virtualxpath$(EXEEXT): $(check_virtualxpath_OBJECTS) $(check_virtualxpath_DEPENDENCIES) $(EXTRA_check_virtualxpath_DEPENDENCIES) 
 	@rm -f check_virtualxpath$(EXEEXT)
-	$(LINK) $(check_virtualxpath_OBJECTS) $(check_virtualxpath_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_virtualxpath_OBJECTS) $(check_virtualxpath_LDADD) $(LIBS)
+
 check_wfsin$(EXEEXT): $(check_wfsin_OBJECTS) $(check_wfsin_DEPENDENCIES) $(EXTRA_check_wfsin_DEPENDENCIES) 
 	@rm -f check_wfsin$(EXEEXT)
-	$(LINK) $(check_wfsin_OBJECTS) $(check_wfsin_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_wfsin_OBJECTS) $(check_wfsin_LDADD) $(LIBS)
+
 check_xls_load$(EXEEXT): $(check_xls_load_OBJECTS) $(check_xls_load_DEPENDENCIES) $(EXTRA_check_xls_load_DEPENDENCIES) 
 	@rm -f check_xls_load$(EXEEXT)
-	$(LINK) $(check_xls_load_OBJECTS) $(check_xls_load_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(check_xls_load_OBJECTS) $(check_xls_load_LDADD) $(LIBS)
+
 shape_3d$(EXEEXT): $(shape_3d_OBJECTS) $(shape_3d_DEPENDENCIES) $(EXTRA_shape_3d_DEPENDENCIES) 
 	@rm -f shape_3d$(EXEEXT)
-	$(LINK) $(shape_3d_OBJECTS) $(shape_3d_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(shape_3d_OBJECTS) $(shape_3d_LDADD) $(LIBS)
+
 shape_cp1252$(EXEEXT): $(shape_cp1252_OBJECTS) $(shape_cp1252_DEPENDENCIES) $(EXTRA_shape_cp1252_DEPENDENCIES) 
 	@rm -f shape_cp1252$(EXEEXT)
-	$(LINK) $(shape_cp1252_OBJECTS) $(shape_cp1252_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(shape_cp1252_OBJECTS) $(shape_cp1252_LDADD) $(LIBS)
+
 shape_primitives$(EXEEXT): $(shape_primitives_OBJECTS) $(shape_primitives_DEPENDENCIES) $(EXTRA_shape_primitives_DEPENDENCIES) 
 	@rm -f shape_primitives$(EXEEXT)
-	$(LINK) $(shape_primitives_OBJECTS) $(shape_primitives_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(shape_primitives_OBJECTS) $(shape_primitives_LDADD) $(LIBS)
+
 shape_utf8_1$(EXEEXT): $(shape_utf8_1_OBJECTS) $(shape_utf8_1_DEPENDENCIES) $(EXTRA_shape_utf8_1_DEPENDENCIES) 
 	@rm -f shape_utf8_1$(EXEEXT)
-	$(LINK) $(shape_utf8_1_OBJECTS) $(shape_utf8_1_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(shape_utf8_1_OBJECTS) $(shape_utf8_1_LDADD) $(LIBS)
+
 shape_utf8_1ex$(EXEEXT): $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_DEPENDENCIES) $(EXTRA_shape_utf8_1ex_DEPENDENCIES) 
 	@rm -f shape_utf8_1ex$(EXEEXT)
-	$(LINK) $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_LDADD) $(LIBS)
+
 shape_utf8_2$(EXEEXT): $(shape_utf8_2_OBJECTS) $(shape_utf8_2_DEPENDENCIES) $(EXTRA_shape_utf8_2_DEPENDENCIES) 
 	@rm -f shape_utf8_2$(EXEEXT)
-	$(LINK) $(shape_utf8_2_OBJECTS) $(shape_utf8_2_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(shape_utf8_2_OBJECTS) $(shape_utf8_2_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -1068,9 +1424,6 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_add_rt_metadata_triggers.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_add_rt_metadata_triggers_bad_table_name.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_add_rt_metadata_triggers_wrong_arg_type.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_add_tile_triggers.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_add_tile_triggers_bad_table_name.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_bufovflw.Po at am__quote@
@@ -1099,28 +1452,32 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_get_normal_zoom_bad_geopackage.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_get_normal_zoom_bad_geopackage2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_get_normal_zoom_extension_load.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgConvert.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgCreateFeaturesTable.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgCreateTilesTable.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgCreateTilesTableMissingSRID.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgCreateTilesZoomLevel.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgGetImageFormat.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgGetImageFormat_nonblob.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgGetImageFormat_nonimage.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgGetImageFormat_png.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgGetImageFormat_tiff.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgGetImageFormat_webp.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgInsertEpsgSRID.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkgVirtual.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkg_base_core_container_data_file_format_application_id.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkg_base_core_contents_data_table_def.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkg_base_core_spatial_ref_sys_data_table_def.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkg_base_core_spatial_ref_sys_data_values_default.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_gpkg_opt_extension_mechanism_extensions_data_table_def.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_init2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_libxml2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_math_funcs.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_mbrcache.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_md5.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_bad_tablename.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_broken_geopackage.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_broken_geopackage2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_broken_srid.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_different_srid.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_integer_coordinates.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_multiresult.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_no_tile.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_point_to_tile_wrong_arg_type.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_metacatalog.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_multithread.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_recover_geom.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_relations_fncts.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_shp_load.Po at am__quote@
@@ -1130,6 +1487,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_styling.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_version.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_virtual_ovflw.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_virtualbbox.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_virtualtable1.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_virtualtable2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/check_virtualtable3.Po at am__quote@
@@ -1147,25 +1505,25 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/shape_utf8_2.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -1179,14 +1537,13 @@ clean-libtool:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -1207,31 +1564,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -1247,12 +1586,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -1264,15 +1598,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -1281,9 +1611,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
 
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -1299,98 +1630,714 @@ cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
-	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
 	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
-	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      skipped="($$skip tests were not run)"; \
+	      color_start= color_end=; \
 	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  echo "$${col}$$dashes$${std}"; \
-	  echo "$${col}$$banner$${std}"; \
-	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
-	  test -z "$$report" || echo "$${col}$$report$${std}"; \
-	  echo "$${col}$$dashes$${std}"; \
-	  test "$$failed" -eq 0; \
-	else :; fi
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(check_PROGRAMS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+check_endian.log: check_endian$(EXEEXT)
+	@p='check_endian$(EXEEXT)'; \
+	b='check_endian'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_version.log: check_version$(EXEEXT)
+	@p='check_version$(EXEEXT)'; \
+	b='check_version'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_init.log: check_init$(EXEEXT)
+	@p='check_init$(EXEEXT)'; \
+	b='check_init'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_init2.log: check_init2$(EXEEXT)
+	@p='check_init2$(EXEEXT)'; \
+	b='check_init2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_geom_aux.log: check_geom_aux$(EXEEXT)
+	@p='check_geom_aux$(EXEEXT)'; \
+	b='check_geom_aux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_geometry_cols.log: check_geometry_cols$(EXEEXT)
+	@p='check_geometry_cols$(EXEEXT)'; \
+	b='check_geometry_cols'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_create.log: check_create$(EXEEXT)
+	@p='check_create$(EXEEXT)'; \
+	b='check_create'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_bufovflw.log: check_bufovflw$(EXEEXT)
+	@p='check_bufovflw$(EXEEXT)'; \
+	b='check_bufovflw'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_fdo1.log: check_fdo1$(EXEEXT)
+	@p='check_fdo1$(EXEEXT)'; \
+	b='check_fdo1'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_fdo2.log: check_fdo2$(EXEEXT)
+	@p='check_fdo2$(EXEEXT)'; \
+	b='check_fdo2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_fdo3.log: check_fdo3$(EXEEXT)
+	@p='check_fdo3$(EXEEXT)'; \
+	b='check_fdo3'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_fdo_bufovflw.log: check_fdo_bufovflw$(EXEEXT)
+	@p='check_fdo_bufovflw$(EXEEXT)'; \
+	b='check_fdo_bufovflw'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_md5.log: check_md5$(EXEEXT)
+	@p='check_md5$(EXEEXT)'; \
+	b='check_md5'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_dbf_load.log: check_dbf_load$(EXEEXT)
+	@p='check_dbf_load$(EXEEXT)'; \
+	b='check_dbf_load'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_shp_load.log: check_shp_load$(EXEEXT)
+	@p='check_shp_load$(EXEEXT)'; \
+	b='check_shp_load'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_shp_load_3d.log: check_shp_load_3d$(EXEEXT)
+	@p='check_shp_load_3d$(EXEEXT)'; \
+	b='check_shp_load_3d'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+shape_cp1252.log: shape_cp1252$(EXEEXT)
+	@p='shape_cp1252$(EXEEXT)'; \
+	b='shape_cp1252'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+shape_primitives.log: shape_primitives$(EXEEXT)
+	@p='shape_primitives$(EXEEXT)'; \
+	b='shape_primitives'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+shape_utf8_1.log: shape_utf8_1$(EXEEXT)
+	@p='shape_utf8_1$(EXEEXT)'; \
+	b='shape_utf8_1'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+shape_utf8_1ex.log: shape_utf8_1ex$(EXEEXT)
+	@p='shape_utf8_1ex$(EXEEXT)'; \
+	b='shape_utf8_1ex'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+shape_utf8_2.log: shape_utf8_2$(EXEEXT)
+	@p='shape_utf8_2$(EXEEXT)'; \
+	b='shape_utf8_2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+shape_3d.log: shape_3d$(EXEEXT)
+	@p='shape_3d$(EXEEXT)'; \
+	b='shape_3d'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_xls_load.log: check_xls_load$(EXEEXT)
+	@p='check_xls_load$(EXEEXT)'; \
+	b='check_xls_load'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_math_funcs.log: check_math_funcs$(EXEEXT)
+	@p='check_math_funcs$(EXEEXT)'; \
+	b='check_math_funcs'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gaia_util.log: check_gaia_util$(EXEEXT)
+	@p='check_gaia_util$(EXEEXT)'; \
+	b='check_gaia_util'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gaia_utf8.log: check_gaia_utf8$(EXEEXT)
+	@p='check_gaia_utf8$(EXEEXT)'; \
+	b='check_gaia_utf8'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_extension.log: check_extension$(EXEEXT)
+	@p='check_extension$(EXEEXT)'; \
+	b='check_extension'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_recover_geom.log: check_recover_geom$(EXEEXT)
+	@p='check_recover_geom$(EXEEXT)'; \
+	b='check_recover_geom'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_sql_stmt.log: check_sql_stmt$(EXEEXT)
+	@p='check_sql_stmt$(EXEEXT)'; \
+	b='check_sql_stmt'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_multithread.log: check_multithread$(EXEEXT)
+	@p='check_multithread$(EXEEXT)'; \
+	b='check_multithread'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualtable1.log: check_virtualtable1$(EXEEXT)
+	@p='check_virtualtable1$(EXEEXT)'; \
+	b='check_virtualtable1'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualtable2.log: check_virtualtable2$(EXEEXT)
+	@p='check_virtualtable2$(EXEEXT)'; \
+	b='check_virtualtable2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualtable3.log: check_virtualtable3$(EXEEXT)
+	@p='check_virtualtable3$(EXEEXT)'; \
+	b='check_virtualtable3'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualtable4.log: check_virtualtable4$(EXEEXT)
+	@p='check_virtualtable4$(EXEEXT)'; \
+	b='check_virtualtable4'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualtable5.log: check_virtualtable5$(EXEEXT)
+	@p='check_virtualtable5$(EXEEXT)'; \
+	b='check_virtualtable5'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualtable6.log: check_virtualtable6$(EXEEXT)
+	@p='check_virtualtable6$(EXEEXT)'; \
+	b='check_virtualtable6'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtual_ovflw.log: check_virtual_ovflw$(EXEEXT)
+	@p='check_virtual_ovflw$(EXEEXT)'; \
+	b='check_virtual_ovflw'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_mbrcache.log: check_mbrcache$(EXEEXT)
+	@p='check_mbrcache$(EXEEXT)'; \
+	b='check_mbrcache'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_spatialindex.log: check_spatialindex$(EXEEXT)
+	@p='check_spatialindex$(EXEEXT)'; \
+	b='check_spatialindex'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_exif.log: check_exif$(EXEEXT)
+	@p='check_exif$(EXEEXT)'; \
+	b='check_exif'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_exif2.log: check_exif2$(EXEEXT)
+	@p='check_exif2$(EXEEXT)'; \
+	b='check_exif2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_relations_fncts.log: check_relations_fncts$(EXEEXT)
+	@p='check_relations_fncts$(EXEEXT)'; \
+	b='check_relations_fncts'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_extra_relations_fncts.log: check_extra_relations_fncts$(EXEEXT)
+	@p='check_extra_relations_fncts$(EXEEXT)'; \
+	b='check_extra_relations_fncts'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_geoscvt_fncts.log: check_geoscvt_fncts$(EXEEXT)
+	@p='check_geoscvt_fncts$(EXEEXT)'; \
+	b='check_geoscvt_fncts'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_libxml2.log: check_libxml2$(EXEEXT)
+	@p='check_libxml2$(EXEEXT)'; \
+	b='check_libxml2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_styling.log: check_styling$(EXEEXT)
+	@p='check_styling$(EXEEXT)'; \
+	b='check_styling'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualxpath.log: check_virtualxpath$(EXEEXT)
+	@p='check_virtualxpath$(EXEEXT)'; \
+	b='check_virtualxpath'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_virtualbbox.log: check_virtualbbox$(EXEEXT)
+	@p='check_virtualbbox$(EXEEXT)'; \
+	b='check_virtualbbox'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_wfsin.log: check_wfsin$(EXEEXT)
+	@p='check_wfsin$(EXEEXT)'; \
+	b='check_wfsin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_dxf.log: check_dxf$(EXEEXT)
+	@p='check_dxf$(EXEEXT)'; \
+	b='check_dxf'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_metacatalog.log: check_metacatalog$(EXEEXT)
+	@p='check_metacatalog$(EXEEXT)'; \
+	b='check_metacatalog'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_createBaseTables.log: check_createBaseTables$(EXEEXT)
+	@p='check_createBaseTables$(EXEEXT)'; \
+	b='check_createBaseTables'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgCreateTilesTable.log: check_gpkgCreateTilesTable$(EXEEXT)
+	@p='check_gpkgCreateTilesTable$(EXEEXT)'; \
+	b='check_gpkgCreateTilesTable'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgCreateTilesTableMissingSRID.log: check_gpkgCreateTilesTableMissingSRID$(EXEEXT)
+	@p='check_gpkgCreateTilesTableMissingSRID$(EXEEXT)'; \
+	b='check_gpkgCreateTilesTableMissingSRID'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgCreateTilesZoomLevel.log: check_gpkgCreateTilesZoomLevel$(EXEEXT)
+	@p='check_gpkgCreateTilesZoomLevel$(EXEEXT)'; \
+	b='check_gpkgCreateTilesZoomLevel'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgInsertEpsgSRID.log: check_gpkgInsertEpsgSRID$(EXEEXT)
+	@p='check_gpkgInsertEpsgSRID$(EXEEXT)'; \
+	b='check_gpkgInsertEpsgSRID'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgCreateFeaturesTable.log: check_gpkgCreateFeaturesTable$(EXEEXT)
+	@p='check_gpkgCreateFeaturesTable$(EXEEXT)'; \
+	b='check_gpkgCreateFeaturesTable'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkg_base_core_container_data_file_format_application_id.log: check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT)
+	@p='check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT)'; \
+	b='check_gpkg_base_core_container_data_file_format_application_id'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkg_base_core_spatial_ref_sys_data_table_def.log: check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT)
+	@p='check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT)'; \
+	b='check_gpkg_base_core_spatial_ref_sys_data_table_def'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkg_base_core_spatial_ref_sys_data_values_default.log: check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT)
+	@p='check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT)'; \
+	b='check_gpkg_base_core_spatial_ref_sys_data_values_default'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkg_base_core_contents_data_table_def.log: check_gpkg_base_core_contents_data_table_def$(EXEEXT)
+	@p='check_gpkg_base_core_contents_data_table_def$(EXEEXT)'; \
+	b='check_gpkg_base_core_contents_data_table_def'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkg_opt_extension_mechanism_extensions_data_table_def.log: check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT)
+	@p='check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT)'; \
+	b='check_gpkg_opt_extension_mechanism_extensions_data_table_def'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_add_tile_triggers.log: check_add_tile_triggers$(EXEEXT)
+	@p='check_add_tile_triggers$(EXEEXT)'; \
+	b='check_add_tile_triggers'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_add_tile_triggers_bad_table_name.log: check_add_tile_triggers_bad_table_name$(EXEEXT)
+	@p='check_add_tile_triggers_bad_table_name$(EXEEXT)'; \
+	b='check_add_tile_triggers_bad_table_name'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_row.log: check_get_normal_row$(EXEEXT)
+	@p='check_get_normal_row$(EXEEXT)'; \
+	b='check_get_normal_row'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_row_bad_geopackage.log: check_get_normal_row_bad_geopackage$(EXEEXT)
+	@p='check_get_normal_row_bad_geopackage$(EXEEXT)'; \
+	b='check_get_normal_row_bad_geopackage'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_row_bad_geopackage2.log: check_get_normal_row_bad_geopackage2$(EXEEXT)
+	@p='check_get_normal_row_bad_geopackage2$(EXEEXT)'; \
+	b='check_get_normal_row_bad_geopackage2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_zoom.log: check_get_normal_zoom$(EXEEXT)
+	@p='check_get_normal_zoom$(EXEEXT)'; \
+	b='check_get_normal_zoom'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_zoom_extension_load.log: check_get_normal_zoom_extension_load$(EXEEXT)
+	@p='check_get_normal_zoom_extension_load$(EXEEXT)'; \
+	b='check_get_normal_zoom_extension_load'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_zoom_bad_geopackage.log: check_get_normal_zoom_bad_geopackage$(EXEEXT)
+	@p='check_get_normal_zoom_bad_geopackage$(EXEEXT)'; \
+	b='check_get_normal_zoom_bad_geopackage'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_get_normal_zoom_bad_geopackage2.log: check_get_normal_zoom_bad_geopackage2$(EXEEXT)
+	@p='check_get_normal_zoom_bad_geopackage2$(EXEEXT)'; \
+	b='check_get_normal_zoom_bad_geopackage2'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgGetImageFormat.log: check_gpkgGetImageFormat$(EXEEXT)
+	@p='check_gpkgGetImageFormat$(EXEEXT)'; \
+	b='check_gpkgGetImageFormat'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgGetImageFormat_nonimage.log: check_gpkgGetImageFormat_nonimage$(EXEEXT)
+	@p='check_gpkgGetImageFormat_nonimage$(EXEEXT)'; \
+	b='check_gpkgGetImageFormat_nonimage'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgGetImageFormat_nonblob.log: check_gpkgGetImageFormat_nonblob$(EXEEXT)
+	@p='check_gpkgGetImageFormat_nonblob$(EXEEXT)'; \
+	b='check_gpkgGetImageFormat_nonblob'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgGetImageFormat_png.log: check_gpkgGetImageFormat_png$(EXEEXT)
+	@p='check_gpkgGetImageFormat_png$(EXEEXT)'; \
+	b='check_gpkgGetImageFormat_png'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgGetImageFormat_tiff.log: check_gpkgGetImageFormat_tiff$(EXEEXT)
+	@p='check_gpkgGetImageFormat_tiff$(EXEEXT)'; \
+	b='check_gpkgGetImageFormat_tiff'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgGetImageFormat_webp.log: check_gpkgGetImageFormat_webp$(EXEEXT)
+	@p='check_gpkgGetImageFormat_webp$(EXEEXT)'; \
+	b='check_gpkgGetImageFormat_webp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgConvert.log: check_gpkgConvert$(EXEEXT)
+	@p='check_gpkgConvert$(EXEEXT)'; \
+	b='check_gpkgConvert'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+check_gpkgVirtual.log: check_gpkgVirtual$(EXEEXT)
+	@p='check_gpkgVirtual$(EXEEXT)'; \
+	b='check_gpkgVirtual'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ at am__EXEEXT_TRUE@.test$(EXEEXT).log:
+ at am__EXEEXT_TRUE@	@p='$<'; \
+ at am__EXEEXT_TRUE@	$(am__set_b); \
+ at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+ at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1475,6 +2422,9 @@ install-strip:
 	fi
 mostlyclean-generic:
 	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 
@@ -1556,14 +2506,11 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
+.MAKE: $(am__recursive_targets) check-am install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-TESTS check-am clean \
-	clean-checkPROGRAMS clean-generic clean-libtool cscopelist \
-	cscopelist-recursive ctags ctags-recursive distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-TESTS check-am clean clean-checkPROGRAMS clean-generic \
+	clean-libtool cscopelist-am ctags ctags-am distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
@@ -1573,7 +2520,7 @@ uninstall-am:
 	install-strip installcheck installcheck-am installdirs \
 	installdirs-am maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+	mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \
 	uninstall uninstall-am
 
 
diff --git a/test/asprintf4win.h b/test/asprintf4win.h
index 6a5b01f..3725072 100644
--- a/test/asprintf4win.h
+++ b/test/asprintf4win.h
@@ -40,41 +40,44 @@
 #endif
 
 int
-asprintf(char **buffer, char *fmt, ...)
+asprintf (char **buffer, char *fmt, ...)
 {
     /* Guess we need no more than 200 chars of space. */
     int size = 200;
     int nchars;
     va_list ap;
-    
-    *buffer = (char*)malloc(size);
-    if (*buffer == NULL) return -1;
-          
+
+    *buffer = (char *) malloc (size);
+    if (*buffer == NULL)
+	return -1;
+
     /* Try to print in the allocated space. */
-    va_start(ap, fmt);
-    nchars = vsnprintf(*buffer, size, fmt, ap);
-    va_end(ap);
+    va_start (ap, fmt);
+    nchars = vsnprintf (*buffer, size, fmt, ap);
+    va_end (ap);
 
     if (nchars >= size)
-    {
-        char *tmpbuff;
-        /* Reallocate buffer now that we know how much space is needed. */
-        size = nchars+1;
-        tmpbuff = (char*)realloc(*buffer, size);
-        
-          
-        if (tmpbuff == NULL) { /* we need to free it*/
-            free(*buffer);
-            return -1;
-        }
-        
-        *buffer=tmpbuff;
-        /* Try again. */
-        va_start(ap, fmt);
-        nchars = vsnprintf(*buffer, size, fmt, ap);
-        va_end(ap);
-    }
+      {
+	  char *tmpbuff;
+	  /* Reallocate buffer now that we know how much space is needed. */
+	  size = nchars + 1;
+	  tmpbuff = (char *) realloc (*buffer, size);
+
+
+	  if (tmpbuff == NULL)
+	    {			/* we need to free it */
+		free (*buffer);
+		return -1;
+	    }
+
+	  *buffer = tmpbuff;
+	  /* Try again. */
+	  va_start (ap, fmt);
+	  nchars = vsnprintf (*buffer, size, fmt, ap);
+	  va_end (ap);
+      }
 
-    if (nchars < 0) return nchars;
+    if (nchars < 0)
+	return nchars;
     return size;
 }
diff --git a/test/check_add_rt_metadata_triggers.c b/test/check_add_rt_metadata_triggers.c
deleted file mode 100644
index 2c80daa..0000000
--- a/test/check_add_rt_metadata_triggers.c
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
-
- check_add_rt_metadata_triggers.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    int ret;
-    char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_add_rt_metadata_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* create a minimal raster_columns table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid INTEGER NOT NULL DEFAULT 0, CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK, CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-
-    /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_matrix_tiles\", \"tile_data\", 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-
-    /* create a target data table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (1, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT error 88: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -88;
-    }
-    
-    /* create a target metadata table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
-
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles_rt_metadata (row_id_value INTEGER NOT NULL, r_raster_column TEXT NOT NULL DEFAULT 'tile_data', georectification INTEGER NOT NULL DEFAULT 0, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0, compr_qual_factor INTEGER NOT NULL DEFAULT 100, CONSTRAINT pk_smt_rm PRIMARY KEY (row_id_value, r_raster_column) ON CONFLICT ROLLBACK)", [...]
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_matrix_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    
-    /* test trigger setup */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(\"test1_matrix_tiles\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers(test1_matrix_tiles)error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    
-    /* create a second target data table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test2_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test2_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test2_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test2_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    
-    /* create a target metadata table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test2_matrix_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test2_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test2_matrix_tiles_rt_metadata (row_id_value INTEGER NOT NULL, r_raster_column TEXT NOT NULL DEFAULT 'tile_data', georectification INTEGER NOT NULL DEFAULT 0, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0, compr_qual_factor INTEGER NOT NULL DEFAULT 100, CONSTRAINT pk_smt_rm PRIMARY KEY (row_id_value, r_raster_column) ON CONFLICT ROLLBACK)", [...]
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test2_matrix_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(\"test2_matrix_tiles\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers(test2_matrix_tiles)error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    
-    /* Testing trigger:
-     *  "CREATE TRIGGER '%s_rt_metadata_r_raster_column_insert'\n"
-	"BEFORE INSERT ON '%s_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%s_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n"
-	"WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n"
-	"END\n",
-     */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test2_matrix_tiles_rt_metadata (row_id_value) VALUES ( 1 )", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO  test2_matrix_tiles_rt_metadata (row_id_value) VALUES ( 1 ) result: %i (%s)\n", ret, err_msg);
-      return -17;
-    }
-    if (strcmp(err_msg, "insert on table test2_matrix_tiles_rt_metadata violates constraint: row_id_value must exist in test2_matrix_tiles table") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 1: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -18;
-    }
-    sqlite3_free (err_msg);    
-
-    /* Testing:
-	"CREATE TRIGGER '%q_rt_metadata_georectification_insert'\n"
-	"BEFORE INSERT ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n"
-	"WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n"
-	"END",
-	*/
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value, georectification) VALUES ( 1, 3 )", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO (georectification insert) result: %i (%s)\n", ret, err_msg);
-      return -19;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles_rt_metadata' violates constraint: georectification must be 0, 1 or 2") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 2: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -20;
-    }
-    sqlite3_free (err_msg);
-    
-    /* Testing:
-	"CREATE TRIGGER '%s_rt_metadata_compr_qual_factor_insert'\n"
-	"BEFORE INSERT ON '%s_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''%s_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor < 1;\n"
-	"SELECT RAISE(ROLLBACK, 'insert on table ''%s_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor > 100;\n"
-	"END\n",
-	*/
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value, compr_qual_factor) VALUES ( 1, 0 )", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO result: %i\n", ret);
-      return -25;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor < 1, must be between 1 and 100") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 5: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -26;
-    }
-    sqlite3_free (err_msg);
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value, compr_qual_factor) VALUES ( 1, 101 )", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO result: %i\n", ret);
-      return -27;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor > 100, must be between 1 and 100") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 6: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -28;
-    }
-    sqlite3_free (err_msg);
-    
-    /* Add a legitimate entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (2, 0, 0 ,0, BlobFromFile('test.webp'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT error 32: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -32;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles_rt_metadata (row_id_value) VALUES (2)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "unexpected INSERT INTO 33 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -33;
-    }
-    
-    /* Testing:
-	"CREATE TRIGGER '%q_rt_metadata_r_raster_column_update'\n"
-	"BEFORE UPDATE OF r_raster_column ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'update on table ''%q_rt_metadata'' violates constraint: r_raster_column must be specified for table %s in table raster_columns')\n"
-	"WHERE (NOT (NEW.r_raster_column IN (SELECT DISTINCT r_raster_column FROM raster_columns WHERE r_table_name = '%s')));\n"
-	"END",
-      */
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET r_raster_column=\"none\" WHERE row_id_value = 2", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE r_raster_column result: %i (%s)\n", ret, err_msg);
-      return -34;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: r_raster_column must be specified for table test1_matrix_tiles in table raster_columns") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 1: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -35;
-    }
-    sqlite3_free (err_msg);
-
-     /* Testing:
-
-	"CREATE TRIGGER '%q_rt_metadata_georectification_update'\n"
-	"BEFORE UPDATE OF georectification ON '%q_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ABORT, 'insert on table ''%q_rt_metadata'' violates constraint: georectification must be 0, 1 or 2')\n"
-	"WHERE (NOT (NEW.georectification IN (0, 1, 2)));\n"
-	"END",
-	*/
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET georectification=3 WHERE row_id_value = 2", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE georectification result: %i\n", ret);
-      return -36;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: georectification must be 0, 1 or 2") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 1: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -37;
-    }
-    sqlite3_free (err_msg);
-    
-    /* Testing:
-	"CREATE TRIGGER '%s_rt_metadata_compr_qual_factor_update'\n"
-	"BEFORE UPDATE OF compr_qual_factor ON '%s_rt_metadata'\n"
-	"FOR EACH ROW BEGIN\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''%s_rt_metadata'' violates constraint: compr_qual_factor < 1, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor < 1;\n"
-	"SELECT RAISE(ROLLBACK, 'update on table ''%s_rt_metadata'' violates constraint: compr_qual_factor > 100, must be between 1 and 100')\n"
-	"WHERE NEW.compr_qual_factor > 100;\n"
-	"END\n",
-    */
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET compr_qual_factor=0 WHERE row_id_value = 2", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE compr_qual_factor0 result: %i\n", ret);
-      return -48;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor < 1, must be between 1 and 100") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 5: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -49;
-    }
-    sqlite3_free (err_msg);
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles_rt_metadata SET compr_qual_factor=101 WHERE row_id_value = 2", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE compr_qual_factor101 result: %i\n", ret);
-      return -50;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles_rt_metadata' violates constraint: compr_qual_factor > 100, must be between 1 and 100") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 6: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -51;
-    }
-    sqlite3_free (err_msg);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
-    return 0;
-}
diff --git a/test/check_add_rt_metadata_triggers_bad_table_name.c b/test/check_add_rt_metadata_triggers_bad_table_name.c
deleted file mode 100644
index b644faf..0000000
--- a/test/check_add_rt_metadata_triggers_bad_table_name.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-
- check_add_rt_metadata_triggers_bad_table_name.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    int ret;
-    char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_add_rt_metadata_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* create a minimal raster_columns table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid INTEGER NOT NULL DEFAULT 0, CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK, CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-
-    /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_matrix_tiles\", \"tile_data\", 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
-    
-    /* test trigger setup */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(\"no_such_table\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Unexpected gpkgAddRtMetadataTriggers result: %i\n", ret);
-	return -9;
-    }
-    if (strcmp(err_msg, "no such table: main.no_such_table_rt_metadata") != 0) {
-      fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers unexpected error message: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
-    return 0;
-}
diff --git a/test/check_add_rt_metadata_triggers_wrong_arg_type.c b/test/check_add_rt_metadata_triggers_wrong_arg_type.c
deleted file mode 100644
index f3bc733..0000000
--- a/test/check_add_rt_metadata_triggers_wrong_arg_type.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-
- check_add_rt_metadata_triggers_wrong_arg_type.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    int ret;
-    char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_add_rt_metadata_triggers_wrong_arg_type.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* create a minimal raster_columns table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid INTEGER NOT NULL DEFAULT 0, CONSTRAINT pk_rc PRIMARY KEY (r_table_name, r_raster_column) ON CONFLICT ROLLBACK, CONSTRAINT fk_rc_r_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys(srid))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-
-    /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_matrix_tiles\", \"tile_data\", 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
-    
-    /* test trigger setup */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddRtMetadataTriggers(0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Unexpected gpkgAddRtMetadataTriggers result: %i\n", ret);
-	return -9;
-    }
-    if (strcmp(err_msg, "gpkgAddRtMetadataTriggers() error: argument 1 [table] is not of the String type") != 0) {
-      fprintf (stderr, "SELECT gpkgAddRtMetadataTriggers unexpected error message: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
-    return 0;
-}
diff --git a/test/check_add_tile_triggers.c b/test/check_add_tile_triggers.c
index 49f4cbe..1c8819b 100644
--- a/test/check_add_tile_triggers.c
+++ b/test/check_add_tile_triggers.c
@@ -51,315 +51,442 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
     char *old_SPATIALITE_SECURITY_ENV = NULL;
 #ifdef _WIN32
-	char *env;
+    char *env;
 #endif /* not WIN32 */
 
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
 #ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
+    putenv ("SPATIALITE_SECURITY=relaxed");
 #else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
 #endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_add_tile_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_add_tile_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
 
     if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
 #else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
 #endif
-    }
+      }
     else
-    {
+      {
 #ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
+	  putenv ("SPATIALITE_SECURITY=");
 #else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
+	  unsetenv ("SPATIALITE_SECURITY");
 #endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* create a minimal raster_format_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE raster_format_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-    /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"test1_matrix_tiles\", \"tile_data\", \"image/png\", 24)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_format_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    
-    /* create a minimal tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
-    /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    
-    /* test trigger setup */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"test1_matrix_tiles\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "SELECT add_tile_trigger error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
     /* test the trigger works - several different cases here */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 3, 0, 0, 1, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO 17A result: %i\n", ret);
-      return -17;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata") !=0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 3: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -18;
-    }
-    sqlite3_free (err_msg); 
-
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 4, 0, 1, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO 17 result: %i\n", ret);
-      return -17;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 4: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -18;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles VALUES ( 0, 0, 0, 0, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 4 result: %i (%s)\n", ret,
+		   err_msg);
+	  return -4;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 5: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    sqlite3_free (err_msg);
+
+    /* create matrix level 0 and 4 */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles VALUES ( 0, 0, 1, 0, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 8 result: %i\n", ret);
+	  return -8;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 9: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 5, 1, 0, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO 19 result: %i\n", ret);
-      return -19;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in tile_matrix_metadata") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 5: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -20;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 0, 0, 1, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 10 result: %i\n", ret);
+	  return -10;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 11: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
     sqlite3_free (err_msg);
-    
-    /* Check a proper INSERT */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT error 6: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try some update checks */
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET zoom_level = 1 WHERE id = 6", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE result: %i\n", ret);
-      return -24;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in tile_matrix_metadata") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 1: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -25;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 16, 3, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 12 result: %i\n", ret);
+	  return -12;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 13: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 6, 16, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 14 result: %i\n", ret);
+	  return -14;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 15: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
     sqlite3_free (err_msg);
 
-   
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET zoom_level = -1 WHERE id = 6", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE 34 result: %i\n", ret);
-      return -34;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in tile_matrix_metadata") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 5: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -35;
-    }
+    /* Check a proper INSERT */
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (0, 0 ,0, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT error 21: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (4, 15 , 15, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT error 22: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+
+    /* check negative row / column numbers */
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, -1, 15, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 23 result: %i\n", ret);
+	  return -23;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 24: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
+    sqlite3_free (err_msg);
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 15, -1, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO 25 result: %i\n", ret);
+	  return -25;
+      }
+    if (strcmp
+	(err_msg,
+	 "insert on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected INSERT INTO error message 26: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_column = -1 WHERE id = 6", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE 36 result: %i\n", ret);
-      return -36;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 6: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -37;
-    }
+    /* try some update checks */
+    ret =
+	sqlite3_exec (db_handle,
+		      "UPDATE test1_matrix_tiles SET zoom_level = 1 WHERE id = 1",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected UPDATE 27 result: %i\n", ret);
+	  return -27;
+      }
+    if (strcmp
+	(err_msg,
+	 "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected UPDATE error message 28: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_row = -1 WHERE id = 6", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE 38 result: %i\n", ret);
-      return -38;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 7: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -39;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "UPDATE test1_matrix_tiles SET zoom_level = -1 WHERE id = 1",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected UPDATE 29 result: %i\n", ret);
+	  return -29;
+      }
+    if (strcmp
+	(err_msg,
+	 "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected UPDATE error message 30: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_row = 1 WHERE id = 6", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE 40 result: %i\n", ret);
-      return -40;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in tile_matrix_metadata") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 8: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -41;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "UPDATE test1_matrix_tiles SET tile_column = -1 WHERE id = 1",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected UPDATE 31 result: %i\n", ret);
+	  return -31;
+      }
+    if (strcmp
+	(err_msg,
+	 "update on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected UPDATE error message 32: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -32;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_column = 1 WHERE id = 6", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected UPDATE 42 result: %i\n", ret);
-      return -42;
-    }
-    if (strcmp(err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in tile_matrix_metadata") != 0) {
-	fprintf(stderr, "unexpected UPDATE error message 9: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -43;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "UPDATE test1_matrix_tiles SET tile_row = -1 WHERE id = 1",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected UPDATE 33 result: %i\n", ret);
+	  return -33;
+      }
+    if (strcmp
+	(err_msg,
+	 "update on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected UPDATE error message 34: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
     sqlite3_free (err_msg);
-    
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 4, 0, -1, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO 44 result: %i\n", ret);
-      return -44;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 9: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -45;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "UPDATE test1_matrix_tiles SET tile_row = 1 WHERE id = 1",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected UPDATE 35 result: %i\n", ret);
+	  return -35;
+      }
+    if (strcmp
+	(err_msg,
+	 "update on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected UPDATE error message 36: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -36;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 4, 0, 0, -1, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_CONSTRAINT) {
-      fprintf (stderr, "unexpected INSERT INTO 46 result: %i\n", ret);
-      return -46;
-    }
-    if (strcmp(err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") != 0) {
-	fprintf(stderr, "unexpected INSERT INTO error message 10: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -47;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "UPDATE test1_matrix_tiles SET tile_column = 1 WHERE id = 1",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_CONSTRAINT)
+      {
+	  fprintf (stderr, "unexpected UPDATE 37 result: %i\n", ret);
+	  return -37;
+      }
+    if (strcmp
+	(err_msg,
+	 "update on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix")
+	!= 0)
+      {
+	  fprintf (stderr, "unexpected UPDATE error message 38: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -38;
+      }
     sqlite3_free (err_msg);
-    
-    /* new tiles table */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"test2_matrix_tiles\", \"tile_data\", \"image/jpeg\", 24)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_format_metadata jpeg error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -50;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test2_matrix_tiles\", 0, 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -51;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test2_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test2_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -52;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test2_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test2_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -53;
-    }
-    
-    /* test trigger setup */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"test2_matrix_tiles\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "SELECT gpkgAddTileTriggers(test2_matrix_tiles) error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -54;
-    }
 
     /* test trigger setup, bad table type */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "unexpected SELECT gpkgAddTileTriggers(0) result: %i\n", ret);
-	return -100;
-    }
-    if (strcmp(err_msg, "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type") != 0) {
-      fprintf (stderr, "unexpected SELECT gpkgAddTileTriggers(0) error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -101;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(0)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "unexpected SELECT gpkgAddTileTriggers(0) result: %i\n",
+		   ret);
+	  return -100;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "unexpected SELECT gpkgAddTileTriggers(0) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -101;
+      }
+
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_add_tile_triggers_bad_table_name.c b/test/check_add_tile_triggers_bad_table_name.c
index 2ba2215..13df038 100644
--- a/test/check_add_tile_triggers_bad_table_name.c
+++ b/test/check_add_tile_triggers_bad_table_name.c
@@ -51,101 +51,149 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_add_tile_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_add_tile_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     /* create a minimal raster_format_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE raster_format_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE raster_format_metadata error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
 
     /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"mytable_tiles\", \"tile_data\", \"image/png\", 24)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_format_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO raster_format_metadata VALUES (\"mytable_tiles\", \"tile_data\", \"image/png\", 24)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT raster_format_metadata error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
     /* create a minimal tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
     /* add in a test entry */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"mytable_tiles\", 0, 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO tile_matrix_metadata VALUES (\"mytable_tiles\", 0, 1, 1)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
     /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS mytable_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE mytable_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS mytable_tiles", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP mytable_tiles error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE mytable_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
+
     /* test trigger setup */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"no_such_table\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Unexpected gpkgAddTileTriggers result: %i\n", ret);
-	return -12;
-    }
-    if (strcmp(err_msg, "no such table: main.no_such_table") != 0) {
-      fprintf (stderr, "SELECT gpkgAddTileTriggers unexpected error message: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddTileTriggers(\"no_such_table\")", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Unexpected gpkgAddTileTriggers result: %i\n", ret);
+	  return -12;
+      }
+    if (strcmp (err_msg, "no such table: main.no_such_table") != 0)
+      {
+	  fprintf (stderr,
+		   "SELECT gpkgAddTileTriggers unexpected error message: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_bufovflw.c b/test/check_bufovflw.c
index 7bd4bb4..9f519e6 100644
--- a/test/check_bufovflw.c
+++ b/test/check_bufovflw.c
@@ -46,29 +46,34 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <stdio.h>
 #include <string.h>
 
+#include "config.h"
+
 #include "sqlite3.h"
 #include "spatialite.h"
 #include <spatialite/gaiaaux.h>
 
-void cleanup_shapefile(const char *filename)
+void
+cleanup_shapefile (const char *filename)
 {
     char nam[1000];
-    
-    if (!filename) {
-	return;
-    }
-    
-    snprintf(nam, 1000, "%s.dbf", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.prj", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shp", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shx", filename);
-    unlink(nam);
+
+    if (!filename)
+      {
+	  return;
+      }
+
+    snprintf (nam, 1000, "%s.dbf", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.prj", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shp", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shx", filename);
+    unlink (nam);
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -85,8 +90,10 @@ int main (int argc, char *argv[])
     char *table_b;
     char *topology;
     char *auth;
+#ifndef OMIT_PROJ		/* including PROJ.4 */
     char *kml1;
     char *kml2;
+#endif /* end including PROJ.4 */
     char *resvalue;
     char *pk;
     char *name;
@@ -100,1555 +107,1839 @@ int main (int argc, char *argv[])
     int len;
     char frmt[2048];
     int row_count;
-    char *dumpname = __FILE__"dump";
-    void *cache = spatialite_alloc_connection();
+    char *dumpname = __FILE__ "dump";
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
 
 /* setting up very long table and column names */
-    suffix = malloc(suffix_len);
-    memset(suffix, 'z', suffix_len);  
-    suffix[suffix_len-1] = '\0';
-
-    table_a = sqlite3_mprintf("table_a_%s", suffix);
-    table_b = sqlite3_mprintf("table_b_%s", suffix);
-    shape2 = sqlite3_mprintf("shape_table_2_%s", suffix);
-    shape2geom = sqlite3_mprintf("shape_table_2_geom_%s", suffix);
-    shape = sqlite3_mprintf("shape_table_%s", suffix);
-    dbf = sqlite3_mprintf("dbf_tbale_%s", suffix);
-    pk = sqlite3_mprintf("id_%s", suffix);
-    name = sqlite3_mprintf("name_%s", suffix);
-    geom = sqlite3_mprintf("geom_%s", suffix);
-    topology = sqlite3_mprintf("topology_%s_", suffix);
+    suffix = malloc (suffix_len);
+    memset (suffix, 'z', suffix_len);
+    suffix[suffix_len - 1] = '\0';
+
+    table_a = sqlite3_mprintf ("table_a_%s", suffix);
+    table_b = sqlite3_mprintf ("table_b_%s", suffix);
+    shape2 = sqlite3_mprintf ("shape_table_2_%s", suffix);
+    shape2geom = sqlite3_mprintf ("shape_table_2_geom_%s", suffix);
+    shape = sqlite3_mprintf ("shape_table_%s", suffix);
+    dbf = sqlite3_mprintf ("dbf_tbale_%s", suffix);
+    pk = sqlite3_mprintf ("id_%s", suffix);
+    name = sqlite3_mprintf ("name_%s", suffix);
+    geom = sqlite3_mprintf ("geom_%s", suffix);
+    topology = sqlite3_mprintf ("topology_%s_", suffix);
 
 /* creating table "A" */
-    sql = sqlite3_mprintf("CREATE TABLE %s (\n"
-                          "%s INTEGER NOT NULL PRIMARY KEY,\n"
-                          "%s TEXT NOT NULL)", table_a, pk, name);
+    sql = sqlite3_mprintf ("CREATE TABLE %s (\n"
+			   "%s INTEGER NOT NULL PRIMARY KEY,\n"
+			   "%s TEXT NOT NULL)", table_a, pk, name);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE-A error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE-A error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
 
 /* adding a POINT Geometry to table "A" */
-    sql = sqlite3_mprintf("SELECT AddGeometryColumn(%Q, %Q, "
-                          "4326, 'POINT', 'XY')", table_a, geom);
+    sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, "
+			   "4326, 'POINT', 'XY')", table_a, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -4;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
 
 /* creating a Spatial Index on table "A" */
-    sql = sqlite3_mprintf("SELECT CreateSpatialIndex(%Q, %Q)", table_a, geom);
+    sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table_a, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateSpatialIndex (TABLE-A) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateSpatialIndex (TABLE-A) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
 
 /* inserting few valid rows on table "A" */
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(1, 'alpha', MakePoint(1, 10, 4326))", table_a, pk, name, geom);
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(1, 'alpha', MakePoint(1, 10, 4326))", table_a, pk,
+			   name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -6;
-    }
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(2, 'beta', MakePoint(2, 20, 4326))", table_a, pk, name, geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(2, 'beta', MakePoint(2, 20, 4326))", table_a, pk,
+			   name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -106;
-    }
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(3, 'gamma', MakePoint(3, 30, 4326))", table_a, pk, name, geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -106;
+      }
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(3, 'gamma', MakePoint(3, 30, 4326))", table_a, pk,
+			   name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -206;
-    }
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(4, 'delta', MakePoint(4, 40, 4326))", table_a, pk, name, geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -206;
+      }
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(4, 'delta', MakePoint(4, 40, 4326))", table_a, pk,
+			   name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -306;
-    }
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(5, 'epsilon', MakePoint(5, 50, 4326))", table_a, pk, name, geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -306;
+      }
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(5, 'epsilon', MakePoint(5, 50, 4326))", table_a,
+			   pk, name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -406;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -406;
+      }
 
 /* inserting few invalid geometries on table "A" */
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(6, 'zeta', MakePoint(10, 10))", table_a, pk, name, geom);
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(6, 'zeta', MakePoint(10, 10))", table_a, pk, name,
+			   geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-        sql = sqlite3_mprintf("%s.%s violates Geometry constraint "
-                              "[geom-type or SRID not allowed]", table_a, geom);
-        ret = strcmp(sql, err_msg);
-	sqlite3_free(err_msg);
-        sqlite3_free(sql);
-        if (ret == 0)
-            goto test2;
-	sqlite3_close(handle);
-	return -7;
-    }
-test2:
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(7, 'eta', MakePointZ(20, 20, 20, 4326))", table_a, pk, name, geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sql = sqlite3_mprintf ("%s.%s violates Geometry constraint "
+				 "[geom-type or SRID not allowed]", table_a,
+				 geom);
+	  ret = strcmp (sql, err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_free (sql);
+	  if (ret == 0)
+	      goto test2;
+	  sqlite3_close (handle);
+	  return -7;
+      }
+  test2:
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(7, 'eta', MakePointZ(20, 20, 20, 4326))", table_a,
+			   pk, name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-        sql = sqlite3_mprintf("%s.%s violates Geometry constraint "
-                              "[geom-type or SRID not allowed]", table_a, geom);
-        ret = strcmp(sql, err_msg);
-	sqlite3_free(err_msg);
-        sqlite3_free(sql);
-        if (ret == 0)
-            goto test3;
-	sqlite3_close(handle);
-	return -8;
-    }
-test3:
-    sql = sqlite3_mprintf("INSERT INTO %s (%s, %s, %s) VALUES "
-                          "(8, 'theta', GeomFromText('LINESTRING(0 0, 1 1)', 4326))", table_a, pk, name, geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sql = sqlite3_mprintf ("%s.%s violates Geometry constraint "
+				 "[geom-type or SRID not allowed]", table_a,
+				 geom);
+	  ret = strcmp (sql, err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_free (sql);
+	  if (ret == 0)
+	      goto test3;
+	  sqlite3_close (handle);
+	  return -8;
+      }
+  test3:
+    sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES "
+			   "(8, 'theta', GeomFromText('LINESTRING(0 0, 1 1)', 4326))",
+			   table_a, pk, name, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-        sql = sqlite3_mprintf("%s.%s violates Geometry constraint "
-                              "[geom-type or SRID not allowed]", table_a, geom);
-        ret = strcmp(sql, err_msg);
-	sqlite3_free(err_msg);
-        sqlite3_free(sql);
-        if (ret == 0)
-            goto test4;
-	sqlite3_close(handle);
-	return -9;
-    }
-test4:
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sql = sqlite3_mprintf ("%s.%s violates Geometry constraint "
+				 "[geom-type or SRID not allowed]", table_a,
+				 geom);
+	  ret = strcmp (sql, err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_free (sql);
+	  if (ret == 0)
+	      goto test4;
+	  sqlite3_close (handle);
+	  return -9;
+      }
+  test4:
 
 /* checking for validity (table A) */
-    sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN ("
-                          "SELECT ROWID FROM SpatialIndex WHERE "
-                          "f_table_name = %Q AND f_geometry_column = %Q "
-                          "AND search_frame = BuildCircleMbr(3, 30, 1))", table_a, table_a, geom);
+    sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN ("
+			   "SELECT ROWID FROM SpatialIndex WHERE "
+			   "f_table_name = %Q AND f_geometry_column = %Q "
+			   "AND search_frame = BuildCircleMbr(3, 30, 1))",
+			   table_a, table_a, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test TABLE-A error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -10;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (TABLE-A): r=%d c=%d\n", rows, columns);
-        return -11;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test TABLE-A error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (TABLE-A): r=%d c=%d\n",
+		   rows, columns);
+	  return -11;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (TABLE-A): %s\n", results[1]);
-        return -12;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (TABLE-A): %s\n", results[1]);
+	  return -12;
+      }
     sqlite3_free_table (results);
 
 /* creating table "B" */
-    sql = sqlite3_mprintf("CREATE TABLE %s AS "
-                          "SELECT * FROM %s", table_b, table_a);
+    sql = sqlite3_mprintf ("CREATE TABLE %s AS "
+			   "SELECT * FROM %s", table_b, table_a);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -13;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
 
 /* recovering Geometry for table "B" */
-    sql = sqlite3_mprintf("SELECT RecoverGeometryColumn(%Q, %Q, "
-                          "4326, 'POINT', 'XY')", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT RecoverGeometryColumn(%Q, %Q, "
+			   "4326, 'POINT', 'XY')", table_b, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -14;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -14;
+      }
 
 /* creating a Spatial Index on table "B" */
-    sql = sqlite3_mprintf("SELECT CreateSpatialIndex(%Q, %Q)", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table_b, geom);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateSpatialIndex (TABLE-B) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -15;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateSpatialIndex (TABLE-B) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
 
 /* checking for validity (table B) */
-    sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN ("
-                          "SELECT ROWID FROM SpatialIndex WHERE "
-                          "f_table_name = %Q AND f_geometry_column = %Q "
-                          "AND search_frame = BuildCircleMbr(2, 20, 1))", table_b, table_b, geom);
+    sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN ("
+			   "SELECT ROWID FROM SpatialIndex WHERE "
+			   "f_table_name = %Q AND f_geometry_column = %Q "
+			   "AND search_frame = BuildCircleMbr(2, 20, 1))",
+			   table_b, table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -16;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (TABLE-B): r=%d c=%d\n", rows, columns);
-        return -17;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -17;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (TABLE-B): %s\n", results[1]);
-        return -18;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (TABLE-B): %s\n", results[1]);
+	  return -18;
+      }
     sqlite3_free_table (results);
 
 /* deleting one row from Table B */
-    sql = sqlite3_mprintf("DELETE FROM %s WHERE %s = 2", table_b, pk);
+    sql = sqlite3_mprintf ("DELETE FROM %s WHERE %s = 2", table_b, pk);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE (TABLE-B) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -19;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE (TABLE-B) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -19;
+      }
 
 /* updating one row into Table B */
-    sql = sqlite3_mprintf("UPDATE %s SET %s = MakePoint(-3, -30, 4326) "
-                          "WHERE %s = 4", table_b, geom, pk);
+    sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePoint(-3, -30, 4326) "
+			   "WHERE %s = 4", table_b, geom, pk);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UPDATE (TABLE-B) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -20;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UPDATE (TABLE-B) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -20;
+      }
 
 /* invalid updates table "B" */
-    sql = sqlite3_mprintf("UPDATE %s SET %s = MakePoint(-2, -20) "
-                          "WHERE %s = 2", table_b, geom, pk);
+    sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePoint(-2, -20) "
+			   "WHERE %s = 2", table_b, geom, pk);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-        sql = sqlite3_mprintf("%s.%s violates Geometry constraint "
-                              "[geom-type or SRID not allowed]", table_b, geom);
-        ret = strcmp(sql, err_msg);
-        sqlite3_free(sql);
-        if (ret == 0)
-            goto test5;
-        sqlite3_free(sql);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -21;
-    }
-test5:
-    sql = sqlite3_mprintf("UPDATE %s SET %s = MakePointZ(-2, -20, 20, 4326) "
-                          "WHERE %s = 2", table_b, geom, pk);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sql = sqlite3_mprintf ("%s.%s violates Geometry constraint "
+				 "[geom-type or SRID not allowed]", table_b,
+				 geom);
+	  ret = strcmp (sql, err_msg);
+	  sqlite3_free (sql);
+	  if (ret == 0)
+	      goto test5;
+	  sqlite3_free (sql);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -21;
+      }
+  test5:
+    sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePointZ(-2, -20, 20, 4326) "
+			   "WHERE %s = 2", table_b, geom, pk);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-        sql = sqlite3_mprintf("%s.%s violates Geometry constraint "
-                              "[geom-type or SRID not allowed]", table_b, geom);
-        ret = strcmp(sql, err_msg);
-        sqlite3_free(sql);
-        if (ret == 0)
-            goto test6;
-        sqlite3_free(sql);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -22;
-    }
-test6:
-    sql = sqlite3_mprintf("UPDATE %s SET %s = GeomFromText('LINESTRING(0 0, 1 1)', 4326) "
-                          "WHERE %s = 2", table_b, geom, pk);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sql = sqlite3_mprintf ("%s.%s violates Geometry constraint "
+				 "[geom-type or SRID not allowed]", table_b,
+				 geom);
+	  ret = strcmp (sql, err_msg);
+	  sqlite3_free (sql);
+	  if (ret == 0)
+	      goto test6;
+	  sqlite3_free (sql);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -22;
+      }
+  test6:
+    sql =
+	sqlite3_mprintf
+	("UPDATE %s SET %s = GeomFromText('LINESTRING(0 0, 1 1)', 4326) "
+	 "WHERE %s = 2", table_b, geom, pk);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-        sql = sqlite3_mprintf("%s.%s violates Geometry constraint "
-                              "[geom-type or SRID not allowed]", table_b, geom);
-        ret = strcmp(sql, err_msg);
-        sqlite3_free(sql);
-        if (ret == 0)
-            goto test7;
-        sqlite3_free(sql);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -23;
-    }
-test7:
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  sql = sqlite3_mprintf ("%s.%s violates Geometry constraint "
+				 "[geom-type or SRID not allowed]", table_b,
+				 geom);
+	  ret = strcmp (sql, err_msg);
+	  sqlite3_free (sql);
+	  if (ret == 0)
+	      goto test7;
+	  sqlite3_free (sql);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -23;
+      }
+  test7:
 
 /* VACUUM - thus invalidating TABLE-B Spatial Index */
     ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -24;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VACUUM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -24;
+      }
 
 /* checking the Spatial Index on table "B" */
-    sql = sqlite3_mprintf("SELECT CheckSpatialIndex(%Q, %Q)", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT CheckSpatialIndex(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CheckSpatialIndex TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -25;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (check RTree TABLE-B): r=%d c=%d\n", rows, columns);
-        return -26;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CheckSpatialIndex TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -25;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (check RTree TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -26;
+      }
     value = results[1];
-    if (strcmp ("0", value) != 0) {
-        fprintf (stderr, "Unexpected result (check RTree TABLE-B): %s\n", results[1]);
-        return -27;
-    }
+    if (strcmp ("0", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (check RTree TABLE-B): %s\n",
+		   results[1]);
+	  return -27;
+      }
     sqlite3_free_table (results);
 
 /* checking the Spatial Index all table */
-    ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex()", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CheckSpatialIndex ALL error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -28;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (check RTree ALL): r=%d c=%d\n", rows, columns);
-        return -29;
-    }
+    ret =
+	sqlite3_get_table (handle, "SELECT CheckSpatialIndex()", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CheckSpatialIndex ALL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -28;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (check RTree ALL): r=%d c=%d\n",
+		   rows, columns);
+	  return -29;
+      }
     value = results[1];
-    if (strcmp ("0", value) != 0) {
-        fprintf (stderr, "Unexpected result (check RTree ALL): %s\n", results[1]);
-        return -30;
-    }
+    if (strcmp ("0", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (check RTree ALL): %s\n",
+		   results[1]);
+	  return -30;
+      }
     sqlite3_free_table (results);
 
 /* recovering the Spatial Index all table */
-    ret = sqlite3_get_table (handle, "SELECT RecoverSpatialIndex()", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverSpatialIndex ALL error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -34;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (recover RTree ALL): r=%d c=%d\n", rows, columns);
-        return -35;
-    }
+    ret =
+	sqlite3_get_table (handle, "SELECT RecoverSpatialIndex()", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverSpatialIndex ALL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -34;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (recover RTree ALL): r=%d c=%d\n",
+		   rows, columns);
+	  return -35;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (recover RTree ALL): %s\n", results[1]);
-        return -36;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (recover RTree ALL): %s\n",
+		   results[1]);
+	  return -36;
+      }
     sqlite3_free_table (results);
 
 /* recovering the Spatial Index on table "B" */
-    sql = sqlite3_mprintf("SELECT RecoverSpatialIndex(%Q, %Q)", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT RecoverSpatialIndex(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverSpatialIndex TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -37;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (recover RTree TABLE-B): r=%d c=%d\n", rows, columns);
-        return -38;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverSpatialIndex TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -37;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (recover RTree TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -38;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (recover RTree TABLE-B): %s\n", results[1]);
-        return -39;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (recover RTree TABLE-B): %s\n",
+		   results[1]);
+	  return -39;
+      }
     sqlite3_free_table (results);
 
 /* updating layer statistics for table "B" */
-    sql = sqlite3_mprintf("SELECT UpdateLayerStatistics(%Q, %Q)", table_b, geom);
+    sql =
+	sqlite3_mprintf ("SELECT UpdateLayerStatistics(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UpdateLayerStatistics TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -40;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (statistics TABLE-B): r=%d c=%d\n", rows, columns);
-        return -41;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateLayerStatistics TABLE-B error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -40;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (statistics TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -41;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (statistics TABLE-B): %s\n", results[1]);
-        return -42;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (statistics TABLE-B): %s\n",
+		   results[1]);
+	  return -42;
+      }
     sqlite3_free_table (results);
 
 /* retieving the LayerExtent for table "B" */
-    sql = sqlite3_mprintf("SELECT ST_AsText(GetLayerExtent(%Q, %Q))", table_b, geom);
+    sql =
+	sqlite3_mprintf ("SELECT ST_AsText(GetLayerExtent(%Q, %Q))", table_b,
+			 geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "GetLayerExtent TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -140;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (GetLayerExtent TABLE-B): r=%d c=%d\n", rows, columns);
-        return -141;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "GetLayerExtent TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -140;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (GetLayerExtent TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -141;
+      }
     value = results[1];
-    if (strcmp ("POLYGON((-3 -30, 5 -30, 5 50, -3 50, -3 -30))", value) != 0) {
-        fprintf (stderr, "Unexpected result (GetLayerExtent TABLE-B): %s\n", results[1]);
-        return -142;
-    }
+    if (strcmp ("POLYGON((-3 -30, 5 -30, 5 50, -3 50, -3 -30))", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (GetLayerExtent TABLE-B): %s\n",
+		   results[1]);
+	  return -142;
+      }
     sqlite3_free_table (results);
 
 /* updating layer statistics ALL */
-    ret = sqlite3_get_table (handle, "SELECT UpdateLayerStatistics()", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UpdateLayerStatistics ALL error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -43;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (statistics ALL): r=%d c=%d\n", rows, columns);
-        return -44;
-    }
+    ret =
+	sqlite3_get_table (handle, "SELECT UpdateLayerStatistics()", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateLayerStatistics ALL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -43;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (statistics ALL): r=%d c=%d\n",
+		   rows, columns);
+	  return -44;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (statistics ALL): %s\n", results[1]);
-        return -45;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (statistics ALL): %s\n",
+		   results[1]);
+	  return -45;
+      }
     sqlite3_free_table (results);
 
 /* disabling the Spatial Index on table "B" */
-    sql = sqlite3_mprintf("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -46;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns);
-        return -47;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -46;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -47;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]);
-        return -48;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n",
+		   results[1]);
+	  return -48;
+      }
     sqlite3_free_table (results);
 
 /* creating an MbrCache on table "B" */
-    sql = sqlite3_mprintf("SELECT CreateMbrCache(%Q, %Q)", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT CreateMbrCache(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateMbrCache TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -49;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns);
-        return -50;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateMbrCache TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -49;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -50;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]);
-        return -51;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n",
+		   results[1]);
+	  return -51;
+      }
     sqlite3_free_table (results);
 
 /* checking the MbrCache on table "B" */
-    sql = sqlite3_mprintf("SELECT Count(*) FROM %s WHERE ROWID IN ("
-                          "SELECT ROWID FROM cache_%s_%s WHERE "
-                          "mbr = FilterMbrIntersects(0, 0, 11, 11))", table_b, table_b, geom);
+    sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN ("
+			   "SELECT ROWID FROM cache_%s_%s WHERE "
+			   "mbr = FilterMbrIntersects(0, 0, 11, 11))", table_b,
+			   table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test MbrCache error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -52;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (MbrCache): r=%d c=%d\n", rows, columns);
-        return -53;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test MbrCache error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -52;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (MbrCache): r=%d c=%d\n",
+		   rows, columns);
+	  return -53;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (MbrCache): %s\n", results[1]);
-        return -54;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (MbrCache): %s\n", results[1]);
+	  return -54;
+      }
     sqlite3_free_table (results);
 
 /* disabling the Spatial Index [MbrCache] on table "B" */
-    sql = sqlite3_mprintf("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom);
+    sql = sqlite3_mprintf ("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -55;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns);
-        return -56;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -55;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -56;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]);
-        return -57;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n",
+		   results[1]);
+	  return -57;
+      }
     sqlite3_free_table (results);
 
 /* discarding geometry from table "B" */
-    sql = sqlite3_mprintf("SELECT DiscardGeometryColumn(%Q, %Q)", table_b, geom);
+    sql =
+	sqlite3_mprintf ("SELECT DiscardGeometryColumn(%Q, %Q)", table_b, geom);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DiscardGeometryColumn TABLE-B error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -58;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (discard TABLE-B): r=%d c=%d\n", rows, columns);
-        return -59;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DiscardGeometryColumn TABLE-B error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -58;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (discard TABLE-B): r=%d c=%d\n",
+		   rows, columns);
+	  return -59;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (discard TABLE-B): %s\n", results[1]);
-        return -60;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (discard TABLE-B): %s\n",
+		   results[1]);
+	  return -60;
+      }
     sqlite3_free_table (results);
 
-#ifdef GEOS_ADVANCED		/* GEOS advanced features */
-
 /* creating a topology */
-    sql = sqlite3_mprintf("SELECT CreateTopologyTables(%Q, 4326, 'XY')", topology);
+    sql =
+	sqlite3_mprintf ("SELECT CreateTopologyTables(%Q, 4326, 'XY')",
+			 topology);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateTopologyTables error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -61;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (CreateTopologyTables): r=%d c=%d\n", rows, columns);
-        return -62;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateTopologyTables error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -61;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (CreateTopologyTables): r=%d c=%d\n",
+		   rows, columns);
+	  return -62;
+      }
     value = results[1];
-    if (strcmp ("1", value) != 0) {
-        fprintf (stderr, "Unexpected result (CreateTopologyTables): %s\n", results[1]);
-        return -63;
-    }
+    if (strcmp ("1", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (CreateTopologyTables): %s\n",
+		   results[1]);
+	  return -63;
+      }
     sqlite3_free_table (results);
 
-#endif /* end GEOS advanced features */
-
-    sqlite3_free(table_a);
-    sqlite3_free(table_b);
-    sqlite3_free(pk);
-    sqlite3_free(name);
-    sqlite3_free(geom);
-    sqlite3_free(topology);
+    sqlite3_free (table_a);
+    sqlite3_free (table_b);
+    sqlite3_free (pk);
+    sqlite3_free (name);
+    sqlite3_free (geom);
+    sqlite3_free (topology);
 
 /* inserting a CRS (very long auth) */
-    auth = sqlite3_mprintf("authority_%s", suffix);
-    sql = sqlite3_mprintf("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, "
-                          "ref_sys_name, proj4text, srtext) VALUES (NULL, %Q, 1122, "
-                          "'silly CRS', 'silly proj def', 'silly wkt def')", auth);
+    auth = sqlite3_mprintf ("authority_%s", suffix);
+    sql =
+	sqlite3_mprintf
+	("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, "
+	 "ref_sys_name, proj4text, srtext) VALUES (NULL, %Q, 1122, "
+	 "'silly CRS', 'silly proj def', 'silly wkt def')", auth);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT CRS error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -64;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT CRS error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -64;
+      }
 
 /* checking for validity (SRID from Auth) */
-    sql = sqlite3_mprintf("SELECT SridFromAuthCrs(%Q, %d)", auth, 1122);
+    sql = sqlite3_mprintf ("SELECT SridFromAuthCrs(%Q, %d)", auth, 1122);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test TABLE-A error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -65;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (SRID from Auth): r=%d c=%d\n", rows, columns);
-        return -66;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test TABLE-A error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -65;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected rows/columns (SRID from Auth): r=%d c=%d\n",
+		   rows, columns);
+	  return -66;
+      }
     value = results[1];
-    if (strcmp ("325834", value) != 0) {
-        fprintf (stderr, "Unexpected result (SRID from Auth): %s\n", results[1]);
-        return -67;
-    }
+    if (strcmp ("325834", value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (SRID from Auth): %s\n",
+		   results[1]);
+	  return -67;
+      }
     sqlite3_free_table (results);
 
 /* deleting the odd CRS */
     sql = "DELETE FROM spatial_ref_sys WHERE srid = 325834";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE (CRS) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -68;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE (CRS) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -68;
+      }
+
+    sqlite3_free (auth);
 
-    sqlite3_free(auth);
+#ifndef OMIT_PROJ		/* only if PROJ is supported */
 
 /* checking AsKML (1) */
-    kml1 = sqlite3_mprintf("kml_name_%s", suffix);
-    kml2 = sqlite3_mprintf("kml_description_%s", suffix);
-    strcpy(frmt, "<Placemark><name>%s</name><description>%s</description>"
-                 "<MultiGeometry><Point><coordinates>%1.0f,%1.0f"
-                 "</coordinates></Point><LineString><coordinates>0,0 "
-                 "%1.0f,%1.0f</coordinates></LineString>");
-    strcat(frmt, "<Polygon><outerBoundaryIs><LinearRing><coordinates>"
-                 "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0"
-                 "</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs>"
-                 "<LinearRing><coordinates>5,5 5,%1.0f %1.0f,%1.0f "
-                 "%1.0f,5 5,5</coordinates></LinearRing></innerBoundaryIs>"
-                 "</Polygon></MultiGeometry></Placemark>");
-    resvalue = sqlite3_mprintf(frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                               1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTION("
-                          "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
-                          "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), "
-                          "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'"
-                          ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                           1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    kml1 = sqlite3_mprintf ("kml_name_%s", suffix);
+    kml2 = sqlite3_mprintf ("kml_description_%s", suffix);
+    strcpy (frmt, "<Placemark><name>%s</name><description>%s</description>"
+	    "<MultiGeometry><Point><coordinates>%1.0f,%1.0f"
+	    "</coordinates></Point><LineString><coordinates>0,0 "
+	    "%1.0f,%1.0f</coordinates></LineString>");
+    strcat (frmt, "<Polygon><outerBoundaryIs><LinearRing><coordinates>"
+	    "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0"
+	    "</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs>"
+	    "<LinearRing><coordinates>5,5 5,%1.0f %1.0f,%1.0f "
+	    "%1.0f,5 5,5</coordinates></LinearRing></innerBoundaryIs>"
+	    "</Polygon></MultiGeometry></Placemark>");
+    resvalue =
+	sqlite3_mprintf (frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf
+	("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTION("
+	 "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
+	 "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), "
+	 "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" ", 4326), 300)", kml1,
+	 kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128, 1e128);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test AsKML#1 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -69;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (AsKML#1): r=%d c=%d\n", rows, columns);
-        return -70;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test AsKML#1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -69;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (AsKML#1): r=%d c=%d\n",
+		   rows, columns);
+	  return -70;
+      }
     value = results[1];
-    if (strcmp (resvalue, value) != 0) {
-        fprintf (stderr, "Unexpected result (AsKML#1): %s\n", results[1]);
-        return -71;
-    }
+    if (strcmp (resvalue, value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (AsKML#1): %s\n", results[1]);
+	  return -71;
+      }
     sqlite3_free_table (results);
-    sqlite3_free(kml1);
-    sqlite3_free(kml2);
-    sqlite3_free(resvalue);
+    sqlite3_free (kml1);
+    sqlite3_free (kml2);
+    sqlite3_free (resvalue);
 
 /* checking AsKML (2) */
-    kml1 = sqlite3_mprintf("%1.0f", 1e128);
-    kml2 = sqlite3_mprintf("%2.0f", 2e128);
-    strcpy(frmt, "<Placemark><name>%s</name><description>%s</description>"
-                 "<MultiGeometry><Point><coordinates>%1.0f,%1.0f,%1.0f"
-                 "</coordinates></Point><LineString><coordinates>0,0,0 "
-                 "%1.0f,%1.0f,%1.0f</coordinates></LineString>");
-    strcat(frmt, "<Polygon><outerBoundaryIs><LinearRing><coordinates>"
-                 "0,0,0 0,%1.0f,0 %1.0f,%1.0f,%1.0f %1.0f,0,0 0,0,0"
-                 "</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs>"
-                 "<LinearRing><coordinates>5,5,0 5,%1.0f,0 %1.0f,%1.0f,%1.0f "
-                 "%1.0f,5,0 5,5,0</coordinates></LinearRing></innerBoundaryIs>"
-                 "</Polygon></MultiGeometry></Placemark>");
-    resvalue = sqlite3_mprintf(frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                               1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTIONZ("
-                          "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), "
-                          "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'"
-                          ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                           1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                           1e128, 1e128);
+    kml1 = sqlite3_mprintf ("%1.0f", 1e128);
+    kml2 = sqlite3_mprintf ("%2.0f", 2e128);
+    strcpy (frmt, "<Placemark><name>%s</name><description>%s</description>"
+	    "<MultiGeometry><Point><coordinates>%1.0f,%1.0f,%1.0f"
+	    "</coordinates></Point><LineString><coordinates>0,0,0 "
+	    "%1.0f,%1.0f,%1.0f</coordinates></LineString>");
+    strcat (frmt, "<Polygon><outerBoundaryIs><LinearRing><coordinates>"
+	    "0,0,0 0,%1.0f,0 %1.0f,%1.0f,%1.0f %1.0f,0,0 0,0,0"
+	    "</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs>"
+	    "<LinearRing><coordinates>5,5,0 5,%1.0f,0 %1.0f,%1.0f,%1.0f "
+	    "%1.0f,5,0 5,5,0</coordinates></LinearRing></innerBoundaryIs>"
+	    "</Polygon></MultiGeometry></Placemark>");
+    resvalue =
+	sqlite3_mprintf (frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf
+	("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTIONZ("
+	 "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
+	 "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), "
+	 "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'"
+	 ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test AsKML#2 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -72;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (AsKML#2): r=%d c=%d\n", rows, columns);
-        return -73;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test AsKML#2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -72;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (AsKML#2): r=%d c=%d\n",
+		   rows, columns);
+	  return -73;
+      }
     value = results[1];
-    if (strcmp (resvalue, value) != 0) {
-        fprintf (stderr, "Unexpected result (AsKML#2): %s\n", results[1]);
-        return -74;
-    }
+    if (strcmp (resvalue, value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (AsKML#2): %s\n", results[1]);
+	  return -74;
+      }
     sqlite3_free_table (results);
-    sqlite3_free(kml1);
-    sqlite3_free(kml2);
-    sqlite3_free(resvalue);
+    sqlite3_free (kml1);
+    sqlite3_free (kml2);
+    sqlite3_free (resvalue);
+
+#endif /* end including PROJ.4 */
 
 /* checking AsGML (1) */
-    strcpy(frmt, "<gml:MultiGeometry srsName=\"EPSG:4326\"><gml:geometryMember>"
-                 "<gml:Point><gml:coordinates>%1.0f,%1.0f</gml:coordinates>"
-                 "</gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString>"
-                 "<gml:coordinates>0,0 %1.0f,%1.0f</gml:coordinates></gml:LineString>"
-                 "</gml:geometryMember><gml:geometryMember>");
-    strcat(frmt, "<gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>"
-                 "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0</gml:coordinates></gml:LinearRing>"
-                 "</gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates>"
-                 "5,5 5,%1.0f %1.0f,%1.0f %1.0f,5 5,5</gml:coordinates></gml:LinearRing>"
-                 "</gml:innerBoundaryIs></gml:Polygon></gml:geometryMember></gml:MultiGeometry>");
-    resvalue = sqlite3_mprintf(frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                               1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsGml(GeomFromText('GEOMETRYCOLLECTION("
-                          "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
-                          "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), "
-                          "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'"
-                          ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                           1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                           1e128, 1e128);
+    strcpy (frmt,
+	    "<gml:MultiGeometry srsName=\"EPSG:4326\"><gml:geometryMember>"
+	    "<gml:Point><gml:coordinates>%1.0f,%1.0f</gml:coordinates>"
+	    "</gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString>"
+	    "<gml:coordinates>0,0 %1.0f,%1.0f</gml:coordinates></gml:LineString>"
+	    "</gml:geometryMember><gml:geometryMember>");
+    strcat (frmt,
+	    "<gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>"
+	    "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0</gml:coordinates></gml:LinearRing>"
+	    "</gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates>"
+	    "5,5 5,%1.0f %1.0f,%1.0f %1.0f,5 5,5</gml:coordinates></gml:LinearRing>"
+	    "</gml:innerBoundaryIs></gml:Polygon></gml:geometryMember></gml:MultiGeometry>");
+    resvalue =
+	sqlite3_mprintf (frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsGml(GeomFromText('GEOMETRYCOLLECTION("
+			 "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
+			 "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), "
+			 "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'"
+			 ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test AsGML#1 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -75;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (AsGML#1): r=%d c=%d\n", rows, columns);
-        return -76;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test AsGML#1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -75;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (AsGML#1): r=%d c=%d\n",
+		   rows, columns);
+	  return -76;
+      }
     value = results[1];
-    if (strcmp (resvalue, value) != 0) {
-        fprintf (stderr, "Unexpected result (AsGML#1): %s\n", results[1]);
-        return -77;
-    }
+    if (strcmp (resvalue, value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (AsGML#1): %s\n", results[1]);
+	  return -77;
+      }
     sqlite3_free_table (results);
-    sqlite3_free(resvalue);
+    sqlite3_free (resvalue);
 
 /* checking AsGML (2) */
-    strcpy(frmt, "<gml:MultiGeometry srsName=\"EPSG:4326\"><gml:geometryMember>"
-                 "<gml:Point><gml:pos srsDimension=\"3\">%1.0f %1.0f %1.0f</gml:pos>"
-                 "</gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments>"
-                 "<gml:LineStringSegment><gml:posList srsDimension=\"3\">0 0 0 "
-                 "%1.0f %1.0f %1.0f</gml:posList></gml:LineStringSegment></gml:segments>"
-                 "</gml:Curve></gml:geometryMember><gml:geometryMember>");
-    strcat(frmt, "<gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"3\">"
-                 "0 0 0 0 %1.0f 0 %1.0f %1.0f %1.0f %1.0f 0 0 0 0 0</gml:posList>"
-                 "</gml:LinearRing></gml:exterior><gml:interior><gml:LinearRing>"
-                 "<gml:posList srsDimension=\"3\">5 5 0 5 %1.0f 0 %1.0f %1.0f %1.0f "
-                 "%1.0f 5 0 5 5 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon>"
-                 "</gml:geometryMember></gml:MultiGeometry>");
-    resvalue = sqlite3_mprintf(frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                               1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsGml(3, GeomFromText('GEOMETRYCOLLECTIONZ("
-                          "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), "
-                          "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'"
-                          ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                           1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 
-                           1e128, 1e128);
+    strcpy (frmt,
+	    "<gml:MultiGeometry srsName=\"EPSG:4326\"><gml:geometryMember>"
+	    "<gml:Point><gml:pos srsDimension=\"3\">%1.0f %1.0f %1.0f</gml:pos>"
+	    "</gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments>"
+	    "<gml:LineStringSegment><gml:posList srsDimension=\"3\">0 0 0 "
+	    "%1.0f %1.0f %1.0f</gml:posList></gml:LineStringSegment></gml:segments>"
+	    "</gml:Curve></gml:geometryMember><gml:geometryMember>");
+    strcat (frmt,
+	    "<gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"3\">"
+	    "0 0 0 0 %1.0f 0 %1.0f %1.0f %1.0f %1.0f 0 0 0 0 0</gml:posList>"
+	    "</gml:LinearRing></gml:exterior><gml:interior><gml:LinearRing>"
+	    "<gml:posList srsDimension=\"3\">5 5 0 5 %1.0f 0 %1.0f %1.0f %1.0f "
+	    "%1.0f 5 0 5 5 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon>"
+	    "</gml:geometryMember></gml:MultiGeometry>");
+    resvalue =
+	sqlite3_mprintf (frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsGml(3, GeomFromText('GEOMETRYCOLLECTIONZ("
+			 "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), "
+			 "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'"
+			 ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Test AsGML#2 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -78;
-    }
-    if (rows != 1 || columns != 1) {
-        fprintf (stderr, "Unexpected rows/columns (AsGML#2): r=%d c=%d\n", rows, columns);
-        return -79;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Test AsGML#2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -78;
+      }
+    if (rows != 1 || columns != 1)
+      {
+	  fprintf (stderr, "Unexpected rows/columns (AsGML#2): r=%d c=%d\n",
+		   rows, columns);
+	  return -79;
+      }
     value = results[1];
-    if (strcmp (resvalue, value) != 0) {
-        fprintf (stderr, "Unexpected result (AsGML#2): %s\n", results[1]);
-        return -80;
-    }
+    if (strcmp (resvalue, value) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (AsGML#2): %s\n", results[1]);
+	  return -80;
+      }
     sqlite3_free_table (results);
-    sqlite3_free(resvalue);
+    sqlite3_free (resvalue);
 
 /* checking WKT 2D */
-    resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f), "
-                               "LINESTRING(0 0, %1.0f %1.0f), "
-                               "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
-                               "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTION("
-                          "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
-                          "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
-                          "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))'))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128);
+    resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f), "
+				"LINESTRING(0 0, %1.0f %1.0f), "
+				"POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
+				"(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))",
+				1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+				1e128, 1e128, 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTION("
+			 "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
+			 "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
+			 "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))'))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "WKT 2D: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -81;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (WKT 2D)\n");
-        return -82;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (WKT 2D): %s\n", string);
-        return -83;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (WKT 2D)\n");
+	  return -82;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (WKT 2D): %s\n", string);
+	  return -83;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking WKT 3D */
-    resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION Z(POINT Z(%1.0f %1.0f %1.0f), "
-                               "LINESTRING Z(0 0 0, %1.0f %1.0f %1.0f), "
-                               "POLYGON Z((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                               "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ("
-                          "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                          "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf ("GEOMETRYCOLLECTION Z(POINT Z(%1.0f %1.0f %1.0f), "
+			 "LINESTRING Z(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGON Z((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ("
+			 "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "WKT 3D: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -84;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (WKT 3D)\n");
-        return -85;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (WKT 3D): %s\n", string);
-        return -86;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (WKT 3D)\n");
+	  return -85;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (WKT 3D): %s\n", string);
+	  return -86;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking WKT M */
-    resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION M(POINT M(%1.0f %1.0f %1.0f), "
-                               "LINESTRING M(0 0 0, %1.0f %1.0f %1.0f), "
-                               "POLYGON M((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                               "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM("
-                          "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                          "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf ("GEOMETRYCOLLECTION M(POINT M(%1.0f %1.0f %1.0f), "
+			 "LINESTRING M(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGON M((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM("
+			 "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "WKT M: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -87;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (WKT M)\n");
-        return -88;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (WKT M): %s\n", string);
-        return -89;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (WKT M)\n");
+	  return -88;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (WKT M): %s\n", string);
+	  return -89;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking WKT 3D M */
-    resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION ZM(POINT ZM(%1.0f %1.0f %1.0f %1.0f), "
-                               "LINESTRING ZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
-                               "POLYGON ZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
-                               "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM("
-                          "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
-                          "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
-                          "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))'))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf
+	("GEOMETRYCOLLECTION ZM(POINT ZM(%1.0f %1.0f %1.0f %1.0f), "
+	 "LINESTRING ZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
+	 "POLYGON ZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
+	 "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))",
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM("
+			 "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
+			 "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
+			 "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))'))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "WKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -90;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (WKT 3D M)\n");
-        return -91;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (WKT 3D M): %s\n", string);
-        return -92;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (WKT 3D M)\n");
+	  return -91;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (WKT 3D M): %s\n", string);
+	  return -92;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking EWKT 2D */
-    resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f),"
-                               "LINESTRING(0 0,%1.0f %1.0f),"
-                               "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0),"
-                               "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTION("
-                          "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
-                          "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
-                          "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f),"
+			 "LINESTRING(0 0,%1.0f %1.0f),"
+			 "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0),"
+			 "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTION("
+			 "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
+			 "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
+			 "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "EWKT 2D: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -93;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (EWKT 2D)\n");
-        return -94;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (EWKT 2D): %s\n", string);
-        return -95;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (EWKT 2D)\n");
+	  return -94;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (EWKT 2D): %s\n", string);
+	  return -95;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking EWKT 3D */
-    resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f),"
-                               "LINESTRING(0 0 0,%1.0f %1.0f %1.0f),"
-                               "POLYGON((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0),"
-                               "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZ("
-                          "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                          "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf
+	("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f),"
+	 "LINESTRING(0 0 0,%1.0f %1.0f %1.0f),"
+	 "POLYGON((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0),"
+	 "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZ("
+			 "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "EWKT 3D: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -96;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (EWKT 3D)\n");
-        return -97;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (EWKT 3D): %s\n", string);
-        return -98;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (EWKT 3D)\n");
+	  return -97;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (EWKT 3D): %s\n", string);
+	  return -98;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking EWKT M */
-    resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(%1.0f %1.0f %1.0f),"
-                               "LINESTRINGM(0 0 0,%1.0f %1.0f %1.0f),"
-                               "POLYGONM((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0),"
-                               "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONM("
-                          "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                          "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf
+	("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(%1.0f %1.0f %1.0f),"
+	 "LINESTRINGM(0 0 0,%1.0f %1.0f %1.0f),"
+	 "POLYGONM((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0),"
+	 "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONM("
+			 "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
+      {
 	  fprintf (stderr, "EWKT M: error \"%s\"\n", sqlite3_errmsg (handle));
 	  return -99;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (EWKT M)\n");
-        return -100;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (EWKT M): %s\n", string);
-        return -101;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (EWKT M)\n");
+	  return -100;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (EWKT M): %s\n", string);
+	  return -101;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking EWKT 3D M */
-    resvalue = sqlite3_mprintf("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f %1.0f),"
-                               "LINESTRING(0 0 0 0,%1.0f %1.0f %1.0f %1.0f),"
-                               "POLYGON((0 0 0 0,%1.0f 0 0 0,%1.0f %1.0f %1.0f %1.0f,0 %1.0f 0 0,0 0 0 0),"
-                               "(5 5 0 0,%1.0f 5 0 0,%1.0f %1.0f %1.0f %1.0f,5 %1.0f 0 0,5 5 0 0)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZM("
-                          "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
-                          "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
-                          "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf
+	("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f %1.0f),"
+	 "LINESTRING(0 0 0 0,%1.0f %1.0f %1.0f %1.0f),"
+	 "POLYGON((0 0 0 0,%1.0f 0 0 0,%1.0f %1.0f %1.0f %1.0f,0 %1.0f 0 0,0 0 0 0),"
+	 "(5 5 0 0,%1.0f 5 0 0,%1.0f %1.0f %1.0f %1.0f,5 %1.0f 0 0,5 5 0 0)))",
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZM("
+			 "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
+			 "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
+			 "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
-	  fprintf (stderr, "EWKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle));
+      {
+	  fprintf (stderr, "EWKT 3D M: error \"%s\"\n",
+		   sqlite3_errmsg (handle));
 	  return -102;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (EWKT 3D M)\n");
-        return -103;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (EWKT 3D M): %s\n", string);
-        return -104;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (EWKT 3D M)\n");
+	  return -103;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (EWKT 3D M): %s\n", string);
+	  return -104;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking WKT Strict */
-    resvalue = sqlite3_mprintf("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f),"
-                               "LINESTRING(0 0,%1.0f %1.0f),"
-                               "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0),"
-                               "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsWKT(GeomFromText('GEOMETRYCOLLECTIONZM("
-                          "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
-                          "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
-                          "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f),"
+				"LINESTRING(0 0,%1.0f %1.0f),"
+				"POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0),"
+				"(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))",
+				1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+				1e128, 1e128, 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsWKT(GeomFromText('GEOMETRYCOLLECTIONZM("
+			 "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), "
+			 "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), "
+			 "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
-	  fprintf (stderr, "WKT Strict: error \"%s\"\n", sqlite3_errmsg (handle));
+      {
+	  fprintf (stderr, "WKT Strict: error \"%s\"\n",
+		   sqlite3_errmsg (handle));
 	  return -105;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (WKT Strict)\n");
-        return -106;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (WKT Strict): %s\n", string);
-        return -107;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (WKT Strict)\n");
+	  return -106;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (WKT Strict): %s\n", string);
+	  return -107;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking GeoJSON 2D */
-    resvalue = sqlite3_mprintf("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":"
-                               "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f],"
-                               "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f]},"
-                               "{\"type\":\"LineString\",\"coordinates\":[[0,0],[%1.0f,%1.0f]]},"
-                               "{\"type\":\"Polygon\",\"coordinates\":"
-                               "[[[0,0],[%1.0f,0],[%1.0f,%1.0f],[0,%1.0f],[0,0]],"
-                               "[[5,5],[%1.0f,5],[%1.0f,%1.0f],[5,%1.0f],[5,5]]]}]}", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTION("
-                          "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
-                          "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
-                          "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326), 2, 5)", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf
+	("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":"
+	 "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f],"
+	 "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f]},"
+	 "{\"type\":\"LineString\",\"coordinates\":[[0,0],[%1.0f,%1.0f]]},"
+	 "{\"type\":\"Polygon\",\"coordinates\":"
+	 "[[[0,0],[%1.0f,0],[%1.0f,%1.0f],[0,%1.0f],[0,0]],"
+	 "[[5,5],[%1.0f,5],[%1.0f,%1.0f],[5,%1.0f],[5,5]]]}]}", 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTION("
+			 "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), "
+			 "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), "
+			 "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326), 2, 5)",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
-	  fprintf (stderr, "GeoJSON 2D: error \"%s\"\n", sqlite3_errmsg (handle));
+      {
+	  fprintf (stderr, "GeoJSON 2D: error \"%s\"\n",
+		   sqlite3_errmsg (handle));
 	  return -108;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (GeoJSON 2D)\n");
-        return -109;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (GeoJSON 2D): %s\n", string);
-        return -110;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (GeoJSON 2D)\n");
+	  return -109;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (GeoJSON 2D): %s\n", string);
+	  return -110;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking GeoJSON 3D */
-    resvalue = sqlite3_mprintf("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":"
-                               "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f],"
-                               "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f,%1.0f]},"
-                               "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[%1.0f,%1.0f,%1.0f]]},"
-                               "{\"type\":\"Polygon\",\"coordinates\":"
-                               "[[[0,0,0],[%1.0f,0,0],[%1.0f,%1.0f,%1.0f],[0,%1.0f,0],[0,0,0]],"
-                               "[[5,5,0],[%1.0f,5,0],[%1.0f,%1.0f,%1.0f],[5,%1.0f,0],[5,5,0]]]}]}", 
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                                1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
-    sql = sqlite3_mprintf("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTIONZ("
-                          "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
-                          "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
-                          "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326), 2, 5)", 
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
-                          1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    resvalue =
+	sqlite3_mprintf
+	("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":"
+	 "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f],"
+	 "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f,%1.0f]},"
+	 "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[%1.0f,%1.0f,%1.0f]]},"
+	 "{\"type\":\"Polygon\",\"coordinates\":"
+	 "[[[0,0,0],[%1.0f,0,0],[%1.0f,%1.0f,%1.0f],[0,%1.0f,0],[0,0,0]],"
+	 "[[5,5,0],[%1.0f,5,0],[%1.0f,%1.0f,%1.0f],[5,%1.0f,0],[5,5,0]]]}]}",
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+	 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128);
+    sql =
+	sqlite3_mprintf ("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTIONZ("
+			 "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), "
+			 "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), "
+			 "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326), 2, 5)",
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128,
+			 1e128);
     ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
-    sqlite3_free(sql);
+    sqlite3_free (sql);
     if (ret != SQLITE_OK)
-    {
-	  fprintf (stderr, "GeoJSON 3D: error \"%s\"\n", sqlite3_errmsg (handle));
+      {
+	  fprintf (stderr, "GeoJSON 3D: error \"%s\"\n",
+		   sqlite3_errmsg (handle));
 	  return -111;
-    }
+      }
     string = NULL;
     while (1)
-    {
+      {
 	  ret = sqlite3_step (stmt);
 	  if (ret == SQLITE_DONE)
 	      break;
 	  if (ret == SQLITE_ROW)
-	  {
+	    {
 		if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT)
-                {
-                    value = (const char *)sqlite3_column_text(stmt, 0);
-                    len = sqlite3_column_bytes(stmt, 0);
-                    string = malloc(len + 1);
-                    strcpy(string, value);
-                }
-	  }
-    }
+		  {
+		      value = (const char *) sqlite3_column_text (stmt, 0);
+		      len = sqlite3_column_bytes (stmt, 0);
+		      string = malloc (len + 1);
+		      strcpy (string, value);
+		  }
+	    }
+      }
     ret = sqlite3_finalize (stmt);
-    if (string == NULL) {
-        fprintf (stderr, "Unexpected NULL result (GeoJSON 3D)\n");
-        return -112;
-    }
-    if (strcmp (resvalue, string) != 0) {
-        fprintf (stderr, "Unexpected result (GeoJSON 3D): %s\n", string);
-        return -113;
-    }
-    free(string);
-    sqlite3_free(resvalue);
+    if (string == NULL)
+      {
+	  fprintf (stderr, "Unexpected NULL result (GeoJSON 3D)\n");
+	  return -112;
+      }
+    if (strcmp (resvalue, string) != 0)
+      {
+	  fprintf (stderr, "Unexpected result (GeoJSON 3D): %s\n", string);
+	  return -113;
+      }
+    free (string);
+    sqlite3_free (resvalue);
 
 /* checking gaiaDequotedSql */
-    resvalue = gaiaDequotedSql("'a''b''c''d''e''f''ghiklmnopqrst''u''vwy''z'");
-    if (strcmp(resvalue, "a'b'c'd'e'f'ghiklmnopqrst'u'vwy'z") != 0) {
-        fprintf (stderr, "Unexpected result (Dequote 1): %s\n", resvalue);
-        return -114;
-    }
-    free(resvalue);
-
-    resvalue = gaiaDequotedSql("\"abcdef\"\"ghijkmlmnopqsrt\"\"uvwy\"\"z\"");
-    if (strcmp(resvalue, "abcdef\"ghijkmlmnopqsrt\"uvwy\"z") != 0) {
-        fprintf (stderr, "Unexpected result (Dequote 2): %s\n", resvalue);
-        return -115;
-    }
-    free(resvalue);
-
-    resvalue = gaiaDequotedSql("abcdefghijkmlnopqrtsuvwyz");
-    if (strcmp(resvalue, "abcdefghijkmlnopqrtsuvwyz") != 0) {
-        fprintf (stderr, "Unexpected result (Dequote 3): %s\n", resvalue);
-        return -116;
-    }
-    free(resvalue);
-
-    resvalue = gaiaDequotedSql("'a''b''c''d''e''f''ghiklmnopqrst''u'vwy''z'");
-    if (resvalue != NULL) {
-        fprintf (stderr, "Unexpected result (Dequote 4): %s\n", resvalue);
-        return -117;
-    }
-	
+    resvalue = gaiaDequotedSql ("'a''b''c''d''e''f''ghiklmnopqrst''u''vwy''z'");
+    if (strcmp (resvalue, "a'b'c'd'e'f'ghiklmnopqrst'u'vwy'z") != 0)
+      {
+	  fprintf (stderr, "Unexpected result (Dequote 1): %s\n", resvalue);
+	  return -114;
+      }
+    free (resvalue);
+
+    resvalue = gaiaDequotedSql ("\"abcdef\"\"ghijkmlmnopqsrt\"\"uvwy\"\"z\"");
+    if (strcmp (resvalue, "abcdef\"ghijkmlmnopqsrt\"uvwy\"z") != 0)
+      {
+	  fprintf (stderr, "Unexpected result (Dequote 2): %s\n", resvalue);
+	  return -115;
+      }
+    free (resvalue);
+
+    resvalue = gaiaDequotedSql ("abcdefghijkmlnopqrtsuvwyz");
+    if (strcmp (resvalue, "abcdefghijkmlnopqrtsuvwyz") != 0)
+      {
+	  fprintf (stderr, "Unexpected result (Dequote 3): %s\n", resvalue);
+	  return -116;
+      }
+    free (resvalue);
+
+    resvalue = gaiaDequotedSql ("'a''b''c''d''e''f''ghiklmnopqrst''u'vwy''z'");
+    if (resvalue != NULL)
+      {
+	  fprintf (stderr, "Unexpected result (Dequote 4): %s\n", resvalue);
+	  return -117;
+      }
+
 /* checking load_shapefile */
-    ret = load_shapefile (handle, "./shp/gaza/route", shape, "UTF-8", 4326, 
+    ret = load_shapefile (handle, "./shp/gaza/route", shape, "UTF-8", 4326,
 			  NULL, 1, 0, 1, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -118;
-    }
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected row count for load_shapefile: %i\n", row_count);
-	sqlite3_close(handle);
-	return -119;
-    }
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -118;
+      }
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected row count for load_shapefile: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -119;
+      }
 /* checking dump_shapefile */
-    ret = dump_shapefile (handle, shape, "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -120;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for shapefile: %i\n", row_count);
-	sqlite3_close(handle);
-	return -121;
-    }
+    ret =
+	dump_shapefile (handle, shape, "Geometry", dumpname, "UTF-8", "", 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -120;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected dump row count for shapefile: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -121;
+      }
+
+#ifndef OMIT_PROJ		/* including PROJ.4 */
 /* checking dump_kml */
-    ret = dump_kml (handle, shape, "geometry", dumpname, "sub_type", "name", 10);
-    if (!ret) {
-        fprintf (stderr, "dump_kml() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -122;
-    }
-    unlink(dumpname);
+    ret =
+	dump_kml (handle, shape, "geometry", dumpname, "sub_type", "name", 10);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_kml() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -122;
+      }
+    unlink (dumpname);
+#endif /* end including PROJ.4 */
+
 /* checking dump_geojson */
-    ret = dump_geojson(handle, shape, "col1", dumpname, 10, 5);
-    if (!ret) {
-        fprintf (stderr, "dump_geojson() error: %s\n", err_msg);
-       sqlite3_close(handle);
-       return -123;
-    }
-    unlink(dumpname);
+    ret = dump_geojson (handle, shape, "col1", dumpname, 10, 5);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_geojson() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -123;
+      }
+    unlink (dumpname);
 /* dropping virtual geometry */
-    sql = sqlite3_mprintf("SELECT DropVirtualGeometry(%Q)", shape);
+    sql = sqlite3_mprintf ("SELECT DropVirtualGeometry(%Q)", shape);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP VIRTUAL GEOMETRT /shp/gaza/barrier error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -124;
-    }
-    sqlite3_free(shape);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "DROP VIRTUAL GEOMETRT /shp/gaza/barrier error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -124;
+      }
+    sqlite3_free (shape);
 
 /* checking load_dbf */
-    ret = load_dbf (handle, "./shapetest1.dbf", dbf, "UTF-8", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_dbf() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -125;
-    }
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count);
-	sqlite3_close(handle);
-	return -126;
-    }
+    ret =
+	load_dbf (handle, "./shapetest1.dbf", dbf, "UTF-8", 1, &row_count,
+		  err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_dbf() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -125;
+      }
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected row count for load_dbf: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -126;
+      }
 /* checking dump_dbf */
     ret = dump_dbf (handle, dbf, dumpname, "CP1252", err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -127;
-    }
-    unlink(dumpname);
-    sqlite3_free(dbf);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -127;
+      }
+    unlink (dumpname);
+    sqlite3_free (dbf);
 
 /* checking load_shapefile (2) */
-    ret = load_shapefile (handle, "./shp/merano-3d/polygons", shape2, "CP1252", 25832, 
-			  shape2geom, 0, 1, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() #2 error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -128;
-    }
-    if (row_count != 10) {
-	fprintf (stderr, "unexpected row count for load_shapefile #2: %i\n", row_count);
-	sqlite3_close(handle);
-	return -129;
-    }
-    xtable = gaiaDoubleQuotedSql(shape2);
-    sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) "
-                          "VALUES (1250000, 0.1, 'alpha')", xtable);
+    ret =
+	load_shapefile (handle, "./shp/merano-3d/polygons", shape2, "CP1252",
+			25832, shape2geom, 0, 1, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() #2 error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -128;
+      }
+    if (row_count != 10)
+      {
+	  fprintf (stderr, "unexpected row count for load_shapefile #2: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -129;
+      }
+    xtable = gaiaDoubleQuotedSql (shape2);
+    sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) "
+			   "VALUES (1250000, 0.1, 'alpha')", xtable);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -130;
-    }
-    sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) "
-                          "VALUES (1250000, 0.1, 'alpha')", xtable);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -130;
+      }
+    sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) "
+			   "VALUES (1250000, 0.1, 'alpha')", xtable);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -131;
-    }
-    sql = sqlite3_mprintf("INSERT INTO \"%s\" (FEATURE_ID, DATUM, TEXT_I) "
-                          "VALUES (1250000, 0.1, 'alpha')", xtable);
-    free(xtable);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -131;
+      }
+    sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, TEXT_I) "
+			   "VALUES (1250000, 0.1, 'alpha')", xtable);
+    free (xtable);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -132;
-    }
-
-    remove_duplicated_rows(handle, shape2);
-    elementary_geometries (handle, shape2, shape2geom, "elem_poly", "pk_elem", "mul_id");
-    sqlite3_free(shape2);
-    sqlite3_free(shape2geom);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -132;
+      }
+
+    remove_duplicated_rows (handle, shape2);
+    elementary_geometries (handle, shape2, shape2geom, "elem_poly", "pk_elem",
+			   "mul_id");
+    sqlite3_free (shape2);
+    sqlite3_free (shape2geom);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -133;
-    }
-        
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -133;
+      }
+
     spatialite_cleanup_ex (cache);
-    free(suffix);
-    
+    free (suffix);
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_create.c b/test/check_create.c
index 5efe9a6..602eca5 100644
--- a/test/check_create.c
+++ b/test/check_create.c
@@ -49,89 +49,215 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "spatialite.h"
 #include "spatialite/gaiaaux.h"
 
-int main (int argc, char *argv[])
+static int
+checkCache (void)
+{
+    int i;
+    int max = 1024;
+    void *cache[1024];
+    char msg[64];
+    const char *m;
+
+    for (i = 0; i < max; i++)
+      {
+	  cache[i] = spatialite_alloc_connection ();
+      }
+
+    for (i = 0; i < max; i++)
+      {
+	  if (cache[i] != NULL)
+	    {
+		sprintf (msg, "Err%d", i);
+		gaiaSetGeosErrorMsg_r (cache[i], msg);
+		sprintf (msg, "Warn%d", i);
+		gaiaSetGeosWarningMsg_r (cache[i], msg);
+		sprintf (msg, "Aux%d", i);
+		gaiaSetGeosAuxErrorMsg_r (cache[i], msg);
+	    }
+      }
+
+    for (i = 0; i < max; i++)
+      {
+	  if (cache[i] != NULL)
+	    {
+		sprintf (msg, "Err%d", i);
+		m = gaiaGetGeosErrorMsg_r (cache[i]);
+		if (m == NULL)
+		  {
+		      fprintf (stderr, "unexpected NULL: GeosErrorMsg %d\n", i);
+		      return -200 + i;
+		  }
+		if (strcmp (m, msg) != 0)
+		  {
+		      fprintf (stderr, "unexpected GeosErrorMsg %d \"%s\"\n", i,
+			       m);
+		      return -300 + i;
+		  }
+		sprintf (msg, "Warn%d", i);
+		m = gaiaGetGeosWarningMsg_r (cache[i]);
+		if (m == NULL)
+		  {
+		      fprintf (stderr, "unexpected NULL: GeosWarningMsg %d\n",
+			       i);
+		      return -400 + i;
+		  }
+		if (strcmp (m, msg) != 0)
+		  {
+		      fprintf (stderr,
+			       "unexpected GeosWarningErrorMsg %d \"%s\"\n", i,
+			       m);
+		      return -500 + i;
+		  }
+		sprintf (msg, "Aux%d", i);
+		m = gaiaGetGeosAuxErrorMsg_r (cache[i]);
+		if (m == NULL)
+		  {
+		      fprintf (stderr, "unexpected NULL: GeosAuxErrorMsg %d\n",
+			       i);
+		      return -600 + i;
+		  }
+		if (strcmp (m, msg) != 0)
+		  {
+		      fprintf (stderr, "unexpected GeosAuxErrorMsg %d \"%s\"\n",
+			       i, m);
+		      return -700 + i;
+		  }
+	    }
+      }
+
+    for (i = 0; i < max; i++)
+      {
+	  if (cache[i] != NULL)
+	      spatialite_cleanup_ex (cache[i]);
+      }
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     sqlite3_int64 log_pk;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
     ret = sqlite3_exec (handle, "SELECT HasProj()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasProj() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasProj() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
     ret = sqlite3_exec (handle, "SELECT HasGeos()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasGeos() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -4;
-    }
-    ret = sqlite3_exec (handle, "SELECT HasGeosAdvanced()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasGeosAdvanced() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasGeos() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT HasGeosAdvanced()", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasGeosAdvanced() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
     ret = sqlite3_exec (handle, "SELECT HasIconv()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasIconv() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -6;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasIconv() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -6;
+      }
     ret = sqlite3_exec (handle, "SELECT HasMathSql()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasMathSql() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    ret = sqlite3_exec (handle, "SELECT HasGeoCallbacks()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasGeoCallbacks() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -8;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasMathSql() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT HasGeoCallbacks()", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasGeoCallbacks() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -8;
+      }
     ret = sqlite3_exec (handle, "SELECT HasFreeXL()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasFreeXL() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -9;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasFreeXL() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -9;
+      }
     ret = sqlite3_exec (handle, "SELECT HasEpsg()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "HasEpsg() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -10;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasEpsg() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+    ret = sqlite3_exec (handle, "SELECT HasGeosTrunk()", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasGeoTrunk() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -11;
+      }
+    ret = sqlite3_exec (handle, "SELECT HasLwGeom()", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasLwGeom() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -12;
+      }
+    ret = sqlite3_exec (handle, "SELECT HasLibXml2()", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "HasLibXml2() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
 
     gaiaInsertIntoSqlLog (handle, "test", "sql_statement_ok", &log_pk);
     gaiaUpdateSqlLog (handle, log_pk, 1, NULL);
@@ -139,12 +265,19 @@ int main (int argc, char *argv[])
     gaiaUpdateSqlLog (handle, log_pk, 0, "some error message");
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -11;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -11;
+      }
+
+    spatialite_cleanup_ex (cache);
+
+    ret = checkCache ();
+    if (ret != 0)
+	return ret;
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_createBaseTables.c b/test/check_createBaseTables.c
index 50c9b35..6dc3615 100644
--- a/test/check_createBaseTables.c
+++ b/test/check_createBaseTables.c
@@ -51,127 +51,123 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
     char *err_msg = NULL;
-    char **results;
-    int rows;
-    int columns;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_createBaseTables.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -100;
-    }
-
-    /* check raster_columns table is OK */
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"sample_matrix_tiles\", \"tile_data\", 100, 0, 4326)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected INSERT INTO raster_columns result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -101;
-    }
-    
-    /* check tile_table_metadata table is OK */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_table_metadata VALUES (\"sample_matrix_tiles\", 1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected INSERT INTO tile_table_metadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -102;
-    }
-    
-    /* check tile_matrix_metadata table is OK */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"sample_matrix_tiles\", 0, 1, 1, 512, 512, 2.0, 2.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected INSERT INTO tile_matrix_metadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -103;
-    }
-    
-    /* check xml_metadata table is OK */
-    ret = sqlite3_get_table (db_handle, "SELECT id, md_scope, metadata_standard_URI, metadata FROM xml_metadata", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error1: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -104;
-    }
-    if ((rows != 1) || (columns != 4))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -105;
-    }
-    if (strcmp(results[1 * columns + 0], "0") != 0)
-    {
-	fprintf (stderr, "Unexpected id result (got %s, expected 0)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -106;
-    }
-    if (strcmp(results[1 * columns + 1], "undefined") != 0)
-    {
-	fprintf (stderr, "Unexpected md_scope result (got %s, expected undefined)", results[1 * columns + 1]);
-	sqlite3_free_table(results);
-	return -107;
-    }
-    if (strcmp(results[1 * columns + 2], "http://schemas.opengis.net/iso/19139/") != 0)
-    {
-	fprintf (stderr, "Unexpected metadata_standard_URI result (got %s, expected http://schemas.opengis.net/iso/19139/)", results[1 * columns + 2]);
-	sqlite3_free_table(results);
-	return -108;
-    }
-    sqlite3_free_table(results);
-   
-    /* check metadata_reference table is OK */
-    ret = sqlite3_exec (db_handle, "INSERT INTO metadata_reference VALUES ('table','sample_matrix_tiles','undefined', 0, '2012-08-17T14:49:32.932Z', 98, 99)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected INSERT INTO metadata_reference result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -109;
-    }
-    
-    /* TODO: check each trigger works as expected */
+    sqlite3_stmt *stmt;
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_createBaseTables.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+    ret =
+	sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -100;
+      }
+
+    /* check application ID is OK */
+    ret =
+	sqlite3_prepare_v2 (db_handle, "PRAGMA application_id",
+			    strlen ("PRAGMA application_id"), &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "failed to prepare SQL PRAGMA statement: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -101;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_ROW)
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -31;
+      }
+    if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER)
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (sqlite3_column_int (stmt, 0) != 0x47503130)
+      {
+	  fprintf (stderr, "wrong application_id: %i\n",
+		   sqlite3_column_int (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_DONE)
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -36;
+      }
+    ret = sqlite3_finalize (stmt);
 
     /* check creation when the tables already exist */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Unexpected duplicate gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	return -110;
-    }
-    if (strcmp("table geopackage_contents already exists", err_msg) != 0)
-    {
-	fprintf(stderr, "Unexpected duplicate gpkgCreateBaseTables() error message: %s\n", err_msg);
-	return -111;
-    }
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Unexpected duplicate gpkgCreateBaseTables() result: %i, (%s)\n",
+		   ret, err_msg);
+	  return -110;
+      }
+    if (strcmp ("table gpkg_spatial_ref_sys already exists", err_msg) != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected duplicate gpkgCreateBaseTables() error message: %s\n",
+		   err_msg);
+	  return -111;
+      }
+
     sqlite3_free (err_msg);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_dbf_load.c b/test/check_dbf_load.c
index 2f0ef7b..569dd07 100644
--- a/test/check_dbf_load.c
+++ b/test/check_dbf_load.c
@@ -50,56 +50,72 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     int row_count;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory databse: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory databse: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = load_dbf (handle, "./shapetest1.dbf", "test1", "UTF-8", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_dbf() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-    
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	load_dbf (handle, "./shapetest1.dbf", "test1", "UTF-8", 1, &row_count,
+		  err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_dbf() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected row count for load_dbf: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -5;
-    }
-        
-    spatialite_cleanup_ex(cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -5;
+      }
+
+    spatialite_cleanup_ex (cache);
 
-#endif	/* end ICONV conditional */
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_dxf.c b/test/check_dxf.c
index c9f98e5..468507c 100644
--- a/test/check_dxf.c
+++ b/test/check_dxf.c
@@ -51,1011 +51,1399 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "spatialite.h"
 #include "spatialite/gg_dxf.h"
 
+#ifndef OMIT_GEOS		/* only if GEOS is enabled */
+
 static int
-check_22_auto()
+check_22_auto (int cache_mode)
 {
 /* testing 22.dxf - pass #1 autoDims */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./22.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"22.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, NULL,
+			     GAIA_DXF_RING_NONE);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"22.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./22.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"22.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_22_2d()
+check_22_2d (int cache_mode)
 {
 /* testing 22.dxf - pass #2 force 2D */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_2D, "abdc_", NULL, GAIA_DXF_RING_NONE);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" 2D)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./22.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"22.dxf\" byLayers 2D\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_2D, "abdc_", NULL,
+			     GAIA_DXF_RING_NONE);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"22.dx\" 2D)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./22.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"22.dxf\" byLayers 2D\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" 2D byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" 2D byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\"  2D append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\"  2D append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" 2D mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" 2D mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" 2D append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" 2D append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_22_3d()
+check_22_3d (int cache_mode)
 {
 /* testing 22.dxf - pass #3 force 3D */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_3D, "abdc_", NULL, GAIA_DXF_RING_NONE);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" 3D)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./22.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"22.dxf\" byLayers 3D\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_3D, "abdc_", NULL,
+			     GAIA_DXF_RING_NONE);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"22.dx\" 3D)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./22.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"22.dxf\" byLayers 3D\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" 3D byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" 3D byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\"  3D append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\"  3D append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" 3D mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" 3D mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" 3D append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" 3D append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_22_single()
+check_22_single (int cache_mode)
 {
 /* testing 22.dxf - pass #4 single layer */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, "VUOVIA", GAIA_DXF_RING_NONE);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" single)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./22.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"22.dxf\" byLayers single\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, "VUOVIA",
+			     GAIA_DXF_RING_NONE);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"22.dx\" single)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./22.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"22.dxf\" byLayers single\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" single byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" single byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\"  single append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"22.dxf\"  single append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" single mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" single mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"22.dxf\" single append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"22.dxf\" single append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_merano()
+check_merano (int cache_mode)
 {
 /* testing f06.dxf / l02.dxf / p02.dxf [merano samples] */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_UNLINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./f06.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"f06.dxf\" byLayer\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL,
+			     GAIA_DXF_RING_UNLINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./f06.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./f06.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"f06.dxf\" byLayer\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"f06.dxf\" byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"f06.dxf\" byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"f06.dxf\"  append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"f06.dxf\"  append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"f06.dxf\" mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"f06.dxf\" mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"f06.dxf\" append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
-  
-    dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"l02.dx\")\n");
-	return -9;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./l02.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"l02.dxf\" byLayer\n");
-	return -10;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"f06.dxf\" append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
+
+    dxf =
+	gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL,
+			     GAIA_DXF_RING_NONE);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"l02.dx\")\n");
+	  return -9;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./l02.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./l02.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"l02.dxf\" byLayer\n");
+	  return -10;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"l02.dxf\" byLayer\n");
-	return -11;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"l02.dxf\" byLayer\n");
+	  return -11;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"l02.dxf\"  append byLayer\n");
-	return -12;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"l02.dxf\"  append byLayer\n");
+	  return -12;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"l02.dxf\" append mixed\n");
-	return -13;
-    }
-    gaiaDestroyDxfParser(dxf);
-  
-    dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_UNLINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n");
-	return -14;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./p05.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"p05.dxf\" byLayer\n");
-	return -15;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"l02.dxf\" append mixed\n");
+	  return -13;
+      }
+    gaiaDestroyDxfParser (dxf);
+
+    dxf =
+	gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL,
+			     GAIA_DXF_RING_UNLINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n");
+	  return -14;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./p05.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./p05.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"p05.dxf\" byLayer\n");
+	  return -15;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"p05.dxf\" byLayer\n");
-	return -16;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"p05.dxf\" byLayer\n");
+	  return -16;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"p05.dxf\"  append byLayer\n");
-	return -17;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"p05.dxf\"  append byLayer\n");
+	  return -17;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"p05.dxf\" mixed\n");
-	return -18;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"p05.dxf\" mixed\n");
+	  return -18;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"p05.dxf\" append mixed\n");
-	return -19;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"p05.dxf\" append mixed\n");
+	  return -19;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -20;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -20;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_archaic()
+check_archaic (int cache_mode)
 {
 /* testing archaic.dxf */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"archaic.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./archaic.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"archaic.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, NULL, NULL,
+			     GAIA_DXF_RING_NONE);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"archaic.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./archaic.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./archaic.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"archaic.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"archaic.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"archaic.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"archaic.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"archaic.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"archaic.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"archaic.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"archaic.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"archaic.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_linked()
+check_linked (int cache_mode)
 {
 /* testing linked.dxf */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./linked.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"linked.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL,
+			     GAIA_DXF_RING_LINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./linked.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./linked.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"linked.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"linked.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"linked.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"linked.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"linked.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_linked_legacy()
+check_linked_legacy (int cache_mode)
 {
 /* testing linked.dxf - legacy DB */
     int ret;
     sqlite3 *handle;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
 
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./linked.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"linked.dxf\" byLayers auto legacy\n");
-	return -4;
-    }
-    
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL,
+			     GAIA_DXF_RING_LINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./linked.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./linked.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to parse \"linked.dxf\" byLayers auto legacy\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\" auto byLayer legacy\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"linked.dxf\" auto byLayer legacy\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\"  auto append byLayer legacy\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"linked.dxf\"  auto append byLayer legacy\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\" auto mixed legacy\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"linked.dxf\" auto mixed legacy\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"linked.dxf\" auto append mixed legacy\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"linked.dxf\" auto append mixed legacy\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
+    ret = unlink ("copy-dxf-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -10;
-    }
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -10;
+      }
     return 0;
 }
 
 static int
-check_hatch()
+check_hatch (int cache_mode)
 {
 /* testing hatch.dxf */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./hatch.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL,
+			     GAIA_DXF_RING_LINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./hatch.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./hatch.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"hatch.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"hatch.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"hatch.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"hatch.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_hatch_legacy()
+check_hatch_legacy (int cache_mode)
 {
 /* testing hatch.dxf - legacy DB */
     int ret;
     sqlite3 *handle;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
 
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./hatch.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL,
+			     GAIA_DXF_RING_LINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./hatch.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./hatch.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"hatch.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"hatch.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"hatch.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"hatch.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"hatch.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
+    ret = unlink ("copy-dxf-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -10;
-    }
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -10;
+      }
     return 0;
 }
 
 static int
-check_symbol()
+check_symbol (int cache_mode)
 {
 /* testing symbol.dxf */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./symbol.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL,
+			     GAIA_DXF_RING_LINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./symbol.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./symbol.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"symbol.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"symbol.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"symbol.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"symbol.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
     return 0;
 }
 
 static int
-check_symbol_legacy()
+check_symbol_legacy (int cache_mode)
 {
 /* testing symbol.dxf - legacy DB */
     int ret;
     sqlite3 *handle;
     gaiaDxfParserPtr dxf;
-    void *cache = spatialite_alloc_connection();
+    void *cache;
+    if (cache_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
 
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-  
-    dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED);
-    if (dxf == NULL) {
-	fprintf(stderr, "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n");
-	return -3;
-    }
-
-    ret = gaiaParseDxfFile (dxf, "./symbol.dxf");
-    if (ret == 0) {
-	fprintf(stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n");
-	return -4;
-    }
-    
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    if (cache_mode)
+	spatialite_init_ex (handle, cache, 0);
+
+    dxf =
+	gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL,
+			     GAIA_DXF_RING_LINKED);
+    if (dxf == NULL)
+      {
+	  fprintf (stderr,
+		   "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n");
+	  return -3;
+      }
+
+    if (cache_mode)
+	ret = gaiaParseDxfFile_r (cache, dxf, "./symbol.dxf");
+    else
+	ret = gaiaParseDxfFile (dxf, "./symbol.dxf");
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n");
+	  return -4;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\" auto byLayer\n");
-	return -5;
-    } 
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"symbol.dxf\" auto byLayer\n");
+	  return -5;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\"  auto append byLayer\n");
-	return -6;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr,
+		   "Unable to load \"symbol.dxf\"  auto append byLayer\n");
+	  return -6;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\" auto mixed\n");
-	return -7;
-    }
-    
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"symbol.dxf\" auto mixed\n");
+	  return -7;
+      }
+
     ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1);
-    if (ret == 0) {
-	fprintf(stderr, "Unable to load \"symbol.dxf\" auto append mixed\n");
-	return -8;
-    }
-    gaiaDestroyDxfParser(dxf);
+    if (ret == 0)
+      {
+	  fprintf (stderr, "Unable to load \"symbol.dxf\" auto append mixed\n");
+	  return -8;
+      }
+    gaiaDestroyDxfParser (dxf);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
-    spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
+    if (cache_mode)
+	spatialite_cleanup_ex (cache);
+    else
+	spatialite_cleanup ();
+    ret = unlink ("copy-dxf-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -10;
-    }
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -10;
+      }
     return 0;
 }
 
-int main (int argc, char *argv[])
+#endif /* GEOS enabled */
+
+int
+main (int argc, char *argv[])
 {
+    int cache_mode;
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    if (check_22_auto() != 0)
-	return -1;
+#ifndef OMIT_GEOS		/* only if GEOS is enabled */
+
+    for (cache_mode = 0; cache_mode <= 1; cache_mode++)
+      {
+	  fprintf (stderr, "\n******* Testing DXF in %s cache-mode\n\n",
+		   cache_mode ? "current" : "legacy");
+
+	  if (check_22_auto (cache_mode) != 0)
+	      return -1;
+
+	  if (check_22_2d (cache_mode) != 0)
+	      return -2;
 
-    if (check_22_2d() != 0)
-	return -2;
+	  if (check_22_3d (cache_mode) != 0)
+	      return -3;
 
-    if (check_22_3d() != 0)
-	return -3;
+	  if (check_22_single (cache_mode) != 0)
+	      return 4;
 
-    if (check_22_single() != 0)
-	return 4;
+	  if (check_merano (cache_mode) != 0)
+	      return -5;
 
-    if (check_merano() != 0)
-	return -5;
+	  if (check_archaic (cache_mode) != 0)
+	      return -6;
 
-    if (check_archaic() != 0)
-	return -6;
+	  if (check_linked (cache_mode) != 0)
+	      return -7;
 
-    if (check_linked() != 0)
-	return -7;
+	  if (check_linked_legacy (cache_mode) != 0)
+	      return -8;
 
-    if (check_linked_legacy() != 0)
-	return -8;
+	  if (check_hatch (cache_mode) != 0)
+	      return -9;
 
-    if (check_hatch() != 0)
-	return -9;
+	  if (check_hatch_legacy (cache_mode) != 0)
+	      return -10;
 
-    if (check_hatch_legacy() != 0)
-	return -10;
+	  if (check_symbol (cache_mode) != 0)
+	      return -11;
 
-    if (check_symbol() != 0)
-	return -11;
+	  if (check_symbol_legacy (cache_mode) != 0)
+	      return -12;
+      }
 
-    if (check_symbol_legacy() != 0)
-	return -12;
+#endif /* GEOS enabled */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_endian.c b/test/check_endian.c
index c96e255..cf40e0e 100644
--- a/test/check_endian.c
+++ b/test/check_endian.c
@@ -46,6 +46,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <string.h>
 
 #include "sqlite3.h"
+#include "spatialite.h"
 #include <spatialite/gaiageo.h>
 
 #define LITTLE_ENDIAN_ENCODED	1
@@ -53,7 +54,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #define LITTLE_ENDIAN_ARCH	1
 #define BIG_ENDIAN_ARCH		0
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     unsigned char buf_in[8];
     unsigned char buf_out[8];
@@ -69,97 +71,127 @@ int main (int argc, char *argv[])
 /* testing short values [16 bit] */
     buf_in[0] = 0xdf;
     buf_in[1] = 0xfd;
-    shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) {
-	fprintf(stderr, "endian INT16 (1): got 0x%02x%02x, expected 0xdffd\n", 
-            buf_out[0], buf_out[1]);
-	return -1;
-    }
-    shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) {
-	fprintf(stderr, "endian INT16 (2): got 0x%02x%02x, expected 0xdffd\n", 
-            buf_out[0], buf_out[1]);
-	return -2;
-    }
-    shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) {
-	fprintf(stderr, "endian INT16 (3): got 0x%02x%02x, expected 0xfddf\n", 
-            buf_out[0], buf_out[1]);
-	return -3;
-    }
-    shrt_val = gaiaImport16(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport16(buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) {
-	fprintf(stderr, "endian INT16 (4): got 0x%02x%02x, expected 0xfddf\n", 
-            buf_out[0], buf_out[1]);
-	return -4;
-    }
-    shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) {
-	fprintf(stderr, "endian 16 bit (5): got 0x%02x%02x, expected 0xdffd\n", 
-            buf_out[0], buf_out[1]);
-	return -5;
-    }
-    shrt_val = gaiaImport16(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport16(buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) {
-	fprintf(stderr, "endian INT16 (6): got 0x%02x%02x, expected 0xfddf\n", 
-            buf_out[0], buf_out[1]);
-	return -6;
-    }
-    
+    shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian INT16 (1): got 0x%02x%02x, expected 0xdffd\n",
+		   buf_out[0], buf_out[1]);
+	  return -1;
+      }
+    shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian INT16 (2): got 0x%02x%02x, expected 0xdffd\n",
+		   buf_out[0], buf_out[1]);
+	  return -2;
+      }
+    shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT16 (3): got 0x%02x%02x, expected 0xfddf\n",
+		   buf_out[0], buf_out[1]);
+	  return -3;
+      }
+    shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT16 (4): got 0x%02x%02x, expected 0xfddf\n",
+		   buf_out[0], buf_out[1]);
+	  return -4;
+      }
+    shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian 16 bit (5): got 0x%02x%02x, expected 0xdffd\n",
+		   buf_out[0], buf_out[1]);
+	  return -5;
+      }
+    shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT16 (6): got 0x%02x%02x, expected 0xfddf\n",
+		   buf_out[0], buf_out[1]);
+	  return -6;
+      }
+
 /* testing int values [32 bit] */
     buf_in[0] = 0xdf;
     buf_in[1] = 0xec;
     buf_in[2] = 0xce;
     buf_in[3] = 0xfd;
-    int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) {
-	fprintf(stderr, "endian INT32 (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", 
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -7;
-    }
-    int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) {
-	fprintf(stderr, "endian INT32 (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -8;
-    }
-    int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian INT32 (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -9;
-    }
-    int_val = gaiaImport32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport32(buf_out, int_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian INT32 (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -10;
-    }
-    int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian INT32 (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -11;
-    }
-    int_val = gaiaImport32(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport32(buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian INT32 (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -12;
-    }
-    
+    int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce
+	|| buf_out[3] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian INT32 (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -7;
+      }
+    int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce
+	|| buf_out[3] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian INT32 (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -8;
+      }
+    int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT32 (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -9;
+      }
+    int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT32 (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -10;
+      }
+    int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT32 (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -11;
+      }
+    int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT32 (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -12;
+      }
+
 /* testing long values [64 bit] */
     buf_in[0] = 0xdf;
     buf_in[1] = 0xec;
@@ -169,109 +201,145 @@ int main (int argc, char *argv[])
     buf_in[5] = 0x8a;
     buf_in[6] = 0xce;
     buf_in[7] = 0xfd;
-    i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 ||
-        buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) {
-	fprintf(stderr, "endian INT64 (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", 
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -13;
-    }
-    i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 ||
-        buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) {
-	fprintf(stderr, "endian INT64 (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -14;
-    }
-    i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian INT64 (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -15;
-    }
-    i64_val = gaiaImportI64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExportI64(buf_out, i64_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian INT64 (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -16;
-    }
-    i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian INT64 (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -17;
-    }
-    i64_val = gaiaImportI64(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExportI64(buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian INT64 (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -18;
-    }
-    
+    i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8
+	|| buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a
+	|| buf_out[6] != 0xce || buf_out[7] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian INT64 (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -13;
+      }
+    i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8
+	|| buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a
+	|| buf_out[6] != 0xce || buf_out[7] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian INT64 (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -14;
+      }
+    i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT64 (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -15;
+      }
+    i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT64 (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -16;
+      }
+    i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT64 (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -17;
+      }
+    i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian INT64 (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -18;
+      }
+
 /* testing float values */
     buf_in[0] = 0xdf;
     buf_in[1] = 0xec;
     buf_in[2] = 0xce;
     buf_in[3] = 0xfd;
-    flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) {
-	fprintf(stderr, "endian FLOAT (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", 
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -19;
-    }
-    flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) {
-	fprintf(stderr, "endian FLOAT (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -20;
-    }
-    flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian FLOAT (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -21;
-    }
-    flt_val = gaiaImportF32(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExportF32(buf_out, flt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian FLOAT (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -22;
-    }
-    flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian FLOAT (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -23;
-    }
-    flt_val = gaiaImportF32(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExportF32(buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) {
-	fprintf(stderr, "endian FLOAT (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
-	return -24;
-    }
-        
+    flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce
+	|| buf_out[3] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian FLOAT (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -19;
+      }
+    flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce
+	|| buf_out[3] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian FLOAT (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -20;
+      }
+    flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian FLOAT (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -21;
+      }
+    flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian FLOAT (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -22;
+      }
+    flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian FLOAT (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -23;
+      }
+    flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec
+	|| buf_out[3] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian FLOAT (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3]);
+	  return -24;
+      }
+
 /* testing double values */
     buf_in[0] = 0xdf;
     buf_in[1] = 0xec;
@@ -281,60 +349,79 @@ int main (int argc, char *argv[])
     buf_in[5] = 0x8a;
     buf_in[6] = 0xce;
     buf_in[7] = 0xfd;
-    dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 ||
-        buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) {
-	fprintf(stderr, "endian DOUBLE (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", 
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -25;
-    }
-    dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 ||
-        buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) {
-	fprintf(stderr, "endian DOUBLE (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -26;
-    }
-    dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian DOUBLE (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -27;
-    }
-    dbl_val = gaiaImport64(buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport64(buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian DOUBLE (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -28;
-    }
-    dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian DOUBLE (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -29;
-    }
-    dbl_val = gaiaImport64(buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    gaiaExport64(buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
-    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 ||
-        buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) {
-	fprintf(stderr, "endian DOUBLE (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
-            buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], 
-            buf_out[6], buf_out[7]);
-	return -30;
-    }
-    
+    dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8
+	|| buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a
+	|| buf_out[6] != 0xce || buf_out[7] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian DOUBLE (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -25;
+      }
+    dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8
+	|| buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a
+	|| buf_out[6] != 0xce || buf_out[7] != 0xfd)
+      {
+	  fprintf (stderr,
+		   "endian DOUBLE (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -26;
+      }
+    dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian DOUBLE (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -27;
+      }
+    dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian DOUBLE (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -28;
+      }
+    dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian DOUBLE (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -29;
+      }
+    dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH);
+    if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a
+	|| buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8
+	|| buf_out[6] != 0xec || buf_out[7] != 0xdf)
+      {
+	  fprintf (stderr,
+		   "endian DOUBLE (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n",
+		   buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4],
+		   buf_out[5], buf_out[6], buf_out[7]);
+	  return -30;
+      }
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_exif.c b/test/check_exif.c
index 56684d9..74d1b13 100644
--- a/test/check_exif.c
+++ b/test/check_exif.c
@@ -51,135 +51,136 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include <spatialite/gaiaexif.h>
 
-static sqlite3_int64 
-get_pixel_x(gaiaExifTagListPtr tag_list, int *ok)
+static sqlite3_int64
+get_pixel_x (gaiaExifTagListPtr tag_list, int *ok)
 {
 /* trying to retrieve the ExifImageWidth */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0xA002)
-        {
-          /* ok, this one is the ExifImageWidth tag */
-            if (tag->Type == 3 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->ShortValues + 0);
-            } 
-            else if (tag->Type == 4 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->LongValues + 0);
-            }
-        }
-        tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0xA002)
+	    {
+		/* ok, this one is the ExifImageWidth tag */
+		if (tag->Type == 3 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->ShortValues + 0);
+		  }
+		else if (tag->Type == 4 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->LongValues + 0);
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return 0;
 }
 
-static sqlite3_int64 
-get_pixel_y(gaiaExifTagListPtr tag_list, int *ok)
+static sqlite3_int64
+get_pixel_y (gaiaExifTagListPtr tag_list, int *ok)
 {
 /* trying to retrieve the ExifImageLength */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0xA003)
-        {
-          /* ok, this one is the ExifImageLength tag */
-            if (tag->Type == 3 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->ShortValues + 0);
-            } 
-            else if (tag->Type == 4 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->LongValues + 0);
-            }
-        }
-        tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0xA003)
+	    {
+		/* ok, this one is the ExifImageLength tag */
+		if (tag->Type == 3 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->ShortValues + 0);
+		  }
+		else if (tag->Type == 4 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->LongValues + 0);
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return 0;
 }
 
-static void 
-get_make(gaiaExifTagListPtr tag_list, const char **str, int *ok)
+static void
+get_make (gaiaExifTagListPtr tag_list, const char **str, int *ok)
 {
 /* trying to retrieve the Make */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0x010F)
-        {
-        /* ok, this one is the Make tag */ 
-            if (tag->Type == 2)
-            {
-                *ok = 1;
-                *str = tag->StringValue;
-                return;
-            }
-        }
-      tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0x010F)
+	    {
+		/* ok, this one is the Make tag */
+		if (tag->Type == 2)
+		  {
+		      *ok = 1;
+		      *str = tag->StringValue;
+		      return;
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return;
 }
 
-static void 
-get_model(gaiaExifTagListPtr tag_list, const char **str, int *ok)
+static void
+get_model (gaiaExifTagListPtr tag_list, const char **str, int *ok)
 {
 /* trying to retrieve the Model */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0x0110)
-        {
-        /* ok, this one is the Model tag */ 
-            if (tag->Type == 2)
-            {
-                *ok = 1;
-                *str = tag->StringValue;
-                return;
-            }
-        }
-      tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0x0110)
+	    {
+		/* ok, this one is the Model tag */
+		if (tag->Type == 2)
+		  {
+		      *ok = 1;
+		      *str = tag->StringValue;
+		      return;
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return;
 }
 
-static void 
-get_date(gaiaExifTagListPtr tag_list, const char **str, int *ok)
+static void
+get_date (gaiaExifTagListPtr tag_list, const char **str, int *ok)
 {
 /* trying to retrieve the Date */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0x9003)
-        {
-        /* ok, this one is the Make tag */ 
-            if (tag->Type == 2)
-            {
-                *ok = 1;
-                *str = tag->StringValue;
-                return;
-            }
-        }
-      tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0x9003)
+	    {
+		/* ok, this one is the Make tag */
+		if (tag->Type == 2)
+		  {
+		      *ok = 1;
+		      *str = tag->StringValue;
+		      return;
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -197,392 +198,491 @@ int main (int argc, char *argv[])
     gaiaExifTagListPtr tag_list = NULL;
     double longitude;
     double latitude;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -100;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -100;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    fl = fopen("sql_stmt_tests/DSC_1467.JPG", "rb");
-    if (!fl) {
-	fprintf(stderr, "cannot open EXIF-JPEG image: DSC_1467.JPG\n");
-	return -1;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    if (sz <= 14) {
-	fprintf(stderr, "invalid size EXIF-JPEG image: DSC_1467.JPG\n");
-	return -2;
-    }
-    
-    blob = (unsigned char *) malloc(sz);
-    rewind(fl);
-    rd = fread(blob, 1, sz, fl);
-    if (rd != sz) {
-	fprintf(stderr, "read error EXIF-JPEG image: DSC_1467.JPG\n");
-	return -3;
-    }
-    
-    tag_list = gaiaGetExifTags(blob, sz);
-    if (tag_list == NULL) {
-	fprintf(stderr, "cannot extract EXIF tags from JPEG image: DSC_1467.JPG\n");
-	return -4;
-    }
-
-    val64 = get_pixel_x(tag_list, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSC_1467.JPG: PixelX tag not found\n");
-	return -5;
-    }
-    if (val64 != 2128) {
-	fprintf(stderr, "DSC_1467.JPG: PixelX unexpected value: %d\n", (int)val64);
-	return -6;
-    }
-
-    val64 = get_pixel_y(tag_list, &ok); 
-    if (!ok) {
-	fprintf(stderr, "DSC_1467.JPG: PixelY tag not found\n");
-	return -7;
-    }
-    if (val64 != 1416) {
-	fprintf(stderr, "DSC_1467.JPG: PixelY unexpected value: %d\n", (int)val64);
-	return -8;
-    }
-  
-    get_make(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSC_1467.JPG: Make tag not found\n");
-	return -9;
-    }
-    if (strcmp(result, "NIKON CORPORATION") != 0) {
-	fprintf(stderr, "DSC_1467.JPG: Make unexpected value: %s|\n", result);
-	return -10;
-    };
-
-    get_model(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSC_1467.JPG: Model tag not found\n");
-	return -11;
-    }
-    if (strcmp(result, "NIKON D700") != 0) {
-	fprintf(stderr, "DSC_1467.JPG: Model unexpected value: %s|\n", result);
-	return -12;
-    };
-
-    get_date(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSC_1467.JPG: Date tag not found\n");
-	return -13;
-    }
-    if (strcmp(result, "2011:03:26 11:01:13") != 0) {
-	fprintf(stderr, "DSC_1467.JPG: Date unexpected value: %s|\n", result);
-	return -14;
-    };
-            
-    for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++)
-    {
-        pT = gaiaGetExifTagByPos(tag_list, i);
-        if (pT)
-        {
-            gaiaExifTagGetName(pT, tag_name, 128);
-            gaiaExifTagGetValueType(pT);
-            gaiaIsExifGpsTag(pT);
-            gaiaExifTagGetValueType(pT);
-            gaiaExifTagGetNumValues(pT);
-            gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
-        }
-    }
+
+    fl = fopen ("sql_stmt_tests/DSC_1467.JPG", "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open EXIF-JPEG image: DSC_1467.JPG\n");
+	  return -1;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    if (sz <= 14)
+      {
+	  fprintf (stderr, "invalid size EXIF-JPEG image: DSC_1467.JPG\n");
+	  return -2;
+      }
+
+    blob = (unsigned char *) malloc (sz);
+    rewind (fl);
+    rd = fread (blob, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error EXIF-JPEG image: DSC_1467.JPG\n");
+	  return -3;
+      }
+
+    tag_list = gaiaGetExifTags (blob, sz);
+    if (tag_list == NULL)
+      {
+	  fprintf (stderr,
+		   "cannot extract EXIF tags from JPEG image: DSC_1467.JPG\n");
+	  return -4;
+      }
+
+    val64 = get_pixel_x (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: PixelX tag not found\n");
+	  return -5;
+      }
+    if (val64 != 2128)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: PixelX unexpected value: %d\n",
+		   (int) val64);
+	  return -6;
+      }
+
+    val64 = get_pixel_y (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: PixelY tag not found\n");
+	  return -7;
+      }
+    if (val64 != 1416)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: PixelY unexpected value: %d\n",
+		   (int) val64);
+	  return -8;
+      }
+
+    get_make (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: Make tag not found\n");
+	  return -9;
+      }
+    if (strcmp (result, "NIKON CORPORATION") != 0)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: Make unexpected value: %s|\n",
+		   result);
+	  return -10;
+      };
+
+    get_model (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: Model tag not found\n");
+	  return -11;
+      }
+    if (strcmp (result, "NIKON D700") != 0)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: Model unexpected value: %s|\n",
+		   result);
+	  return -12;
+      };
+
+    get_date (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: Date tag not found\n");
+	  return -13;
+      }
+    if (strcmp (result, "2011:03:26 11:01:13") != 0)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: Date unexpected value: %s|\n",
+		   result);
+	  return -14;
+      };
+
+    for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++)
+      {
+	  pT = gaiaGetExifTagByPos (tag_list, i);
+	  if (pT)
+	    {
+		gaiaExifTagGetName (pT, tag_name, 128);
+		gaiaExifTagGetValueType (pT);
+		gaiaIsExifGpsTag (pT);
+		gaiaExifTagGetValueType (pT);
+		gaiaExifTagGetNumValues (pT);
+		gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
+	    }
+      }
 
     pT = gaiaGetExifTagById (tag_list, 0x0112);
-    if (pT == NULL) {
-	fprintf(stderr, "DSC_1467.JPG: tag Orientation not found: %s|\n", result);
-	return -15;
-    };
+    if (pT == NULL)
+      {
+	  fprintf (stderr, "DSC_1467.JPG: tag Orientation not found: %s|\n",
+		   result);
+	  return -15;
+      };
 
     pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning");
-    if (pT == NULL) {
-	fprintf(stderr, "DSC_1467.JPG: tag YCbCrPositioning not found: %s|\n", result);
-	return -16;
-    };
+    if (pT == NULL)
+      {
+	  fprintf (stderr,
+		   "DSC_1467.JPG: tag YCbCrPositioning not found: %s|\n",
+		   result);
+	  return -16;
+      };
 
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 0;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 0;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 1;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 1;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
 
     if (blob)
-        free(blob);
+	free (blob);
     if (tag_list)
-        gaiaExifTagsFree(tag_list);
-    fclose(fl);
-       
-    fl = fopen("sql_stmt_tests/DSCN0042.JPG", "rb");
-    if (!fl) {
-	fprintf(stderr, "cannot open EXIF-JPEG image: DSCN0042.JPG\n");
-	return -100;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    if (sz <= 14) {
-	fprintf(stderr, "invalid size EXIF-JPEG image: DSCN0042.JPG\n");
-	return -17;
-    }
-    
-    blob = (unsigned char *) malloc(sz);
-    rewind(fl);
-    rd = fread(blob, 1, sz, fl);
-    if (rd != sz) {
-	fprintf(stderr, "read error EXIF-JPEG image: DSCN0042.JPG\n");
-	return -18;
-    }
-    
-    tag_list = gaiaGetExifTags(blob, sz);
-    if (tag_list == NULL) {
-	fprintf(stderr, "cannot extract EXIF tags from JPEG image: DSCN0042.JPG\n");
-	return -19;
-    }
-
-    val64 = get_pixel_x(tag_list, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSCN0042.JPG: PixelX tag not found\n");
-	return -20;
-    }
-    if (val64 != 640) {
-	fprintf(stderr, "DSCN0042.JPG: PixelX unexpected value: %d\n", (int)val64);
-	return -21;
-    }
-
-    val64 = get_pixel_y(tag_list, &ok); 
-    if (!ok) {
-	fprintf(stderr, "DSCN0042.JPG: PixelY tag not found\n");
-	return -22;
-    }
-    if (val64 != 480) {
-	fprintf(stderr, "DSCN0042.JPG: PixelY unexpected value: %d\n", (int)val64);
-	return -23;
-    }
-  
-    get_make(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSCN0042.JPG: Make tag not found\n");
-	return -24;
-    }
-    if (strcmp(result, "NIKON") != 0) {
-	fprintf(stderr, "DSCN0042.JPG: Make unexpected value: %s|\n", result);
-	return -25;
-    };
-
-    get_model(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSCN0042.JPG: Model tag not found\n");
-	return -26;
-    }
-    if (strcmp(result, "COOLPIX P6000") != 0) {
-	fprintf(stderr, "DSCN0042.JPG: Model unexpected value: %s|\n", result);
-	return -27;
-    };
-
-    get_date(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "DSCN0042.JPG: Date tag not found\n");
-	return -28;
-    }
-    if (strcmp(result, "2008:10:22 17:00:07") != 0) {
-	fprintf(stderr, "DSCN0042.JPG: Date unexpected value: %s|\n", result);
-	return -29;
-    };
-            
-    for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++)
-    {
-        pT = gaiaGetExifTagByPos(tag_list, i);
-        if (pT)
-        {
-            gaiaExifTagGetName(pT, tag_name, 128);
-            gaiaExifTagGetValueType(pT);
-            gaiaIsExifGpsTag(pT);
-            gaiaExifTagGetValueType(pT);
-            gaiaExifTagGetNumValues(pT);
-            gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
-        }
-    }
+	gaiaExifTagsFree (tag_list);
+    fclose (fl);
+
+    fl = fopen ("sql_stmt_tests/DSCN0042.JPG", "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open EXIF-JPEG image: DSCN0042.JPG\n");
+	  return -100;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    if (sz <= 14)
+      {
+	  fprintf (stderr, "invalid size EXIF-JPEG image: DSCN0042.JPG\n");
+	  return -17;
+      }
+
+    blob = (unsigned char *) malloc (sz);
+    rewind (fl);
+    rd = fread (blob, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error EXIF-JPEG image: DSCN0042.JPG\n");
+	  return -18;
+      }
+
+    tag_list = gaiaGetExifTags (blob, sz);
+    if (tag_list == NULL)
+      {
+	  fprintf (stderr,
+		   "cannot extract EXIF tags from JPEG image: DSCN0042.JPG\n");
+	  return -19;
+      }
+
+    val64 = get_pixel_x (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: PixelX tag not found\n");
+	  return -20;
+      }
+    if (val64 != 640)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: PixelX unexpected value: %d\n",
+		   (int) val64);
+	  return -21;
+      }
+
+    val64 = get_pixel_y (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: PixelY tag not found\n");
+	  return -22;
+      }
+    if (val64 != 480)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: PixelY unexpected value: %d\n",
+		   (int) val64);
+	  return -23;
+      }
+
+    get_make (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: Make tag not found\n");
+	  return -24;
+      }
+    if (strcmp (result, "NIKON") != 0)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: Make unexpected value: %s|\n",
+		   result);
+	  return -25;
+      };
+
+    get_model (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: Model tag not found\n");
+	  return -26;
+      }
+    if (strcmp (result, "COOLPIX P6000") != 0)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: Model unexpected value: %s|\n",
+		   result);
+	  return -27;
+      };
+
+    get_date (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: Date tag not found\n");
+	  return -28;
+      }
+    if (strcmp (result, "2008:10:22 17:00:07") != 0)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: Date unexpected value: %s|\n",
+		   result);
+	  return -29;
+      };
+
+    for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++)
+      {
+	  pT = gaiaGetExifTagByPos (tag_list, i);
+	  if (pT)
+	    {
+		gaiaExifTagGetName (pT, tag_name, 128);
+		gaiaExifTagGetValueType (pT);
+		gaiaIsExifGpsTag (pT);
+		gaiaExifTagGetValueType (pT);
+		gaiaExifTagGetNumValues (pT);
+		gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
+	    }
+      }
 
     pT = gaiaGetExifTagById (tag_list, 0x0112);
-    if (pT == NULL) {
-	fprintf(stderr, "DSCN0042.JPG: tag Orientation not found: %s|\n", result);
-	return -30;
-    };
+    if (pT == NULL)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: tag Orientation not found: %s|\n",
+		   result);
+	  return -30;
+      };
 
     pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning");
-    if (pT == NULL) {
-	fprintf(stderr, "DSCN0042.JPG: tag YCbCrPositioning not found: %s|\n", result);
-	return -31;
-    };
+    if (pT == NULL)
+      {
+	  fprintf (stderr,
+		   "DSCN0042.JPG: tag YCbCrPositioning not found: %s|\n",
+		   result);
+	  return -31;
+      };
 
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 0;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 0;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 1;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
-
-    if (!gaiaGetGpsLatLong(blob, sz, human, 8192)) {
-	fprintf(stderr, "cannot extract GPS coords from JPEG image: DSCN0042.JPG\n");
-	return -32;
-    }
-    if (strcmp(human, "N 43.00 27.00 52.04 / E 11.00 52.00 53.32") != 0) {
-	fprintf(stderr, "DSCN0042.JPG: GPS coords unexpected value: %s|\n", human);
-	return -33;
-    };
-    if (!gaiaGetGpsLatLong(blob, sz, human, 20)) {
-	fprintf(stderr, "cannot extract GPS coords(20) from JPEG image: DSCN0042.JPG\n");
-	return -34;
-    }
-    if (strcmp(human, "N 43.00 27.00 52.04 ") != 0) {
-	fprintf(stderr, "DSCN0042.JPG: GPS coords(20) unexpected value: %s|\n", human);
-	return -35;
-    };
-    if (!gaiaGetGpsCoords(blob, sz, &longitude, &latitude)) {
-	fprintf(stderr, "cannot extract GPS long/lat from JPEG image: DSCN0042.JPG\n");
-	return -36;
-    }
-    if (longitude != 11.881478 || latitude != 43.464455) {
-	fprintf(stderr, "DSCN0042.JPG: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude);
-	return -37;
-    };
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 1;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
+
+    if (!gaiaGetGpsLatLong (blob, sz, human, 8192))
+      {
+	  fprintf (stderr,
+		   "cannot extract GPS coords from JPEG image: DSCN0042.JPG\n");
+	  return -32;
+      }
+    if (strcmp (human, "N 43.00 27.00 52.04 / E 11.00 52.00 53.32") != 0)
+      {
+	  fprintf (stderr, "DSCN0042.JPG: GPS coords unexpected value: %s|\n",
+		   human);
+	  return -33;
+      };
+    if (!gaiaGetGpsLatLong (blob, sz, human, 20))
+      {
+	  fprintf (stderr,
+		   "cannot extract GPS coords(20) from JPEG image: DSCN0042.JPG\n");
+	  return -34;
+      }
+    if (strcmp (human, "N 43.00 27.00 52.04 ") != 0)
+      {
+	  fprintf (stderr,
+		   "DSCN0042.JPG: GPS coords(20) unexpected value: %s|\n",
+		   human);
+	  return -35;
+      };
+    if (!gaiaGetGpsCoords (blob, sz, &longitude, &latitude))
+      {
+	  fprintf (stderr,
+		   "cannot extract GPS long/lat from JPEG image: DSCN0042.JPG\n");
+	  return -36;
+      }
+    if (longitude != 11.881478 || latitude != 43.464455)
+      {
+	  fprintf (stderr,
+		   "DSCN0042.JPG: GPS long/lat unexpected values: %1.9f %1.9f|\n",
+		   longitude, latitude);
+	  return -37;
+      };
 
     if (blob)
-        free(blob);
+	free (blob);
     if (tag_list)
-        gaiaExifTagsFree(tag_list);
-    fclose(fl);
-       
-    fl = fopen("sql_stmt_tests/La_folla_durante_il_Palio.jpg", "rb");
-    if (!fl) {
-	fprintf(stderr, "cannot open EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n");
-	return -50;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    if (sz <= 14) {
-	fprintf(stderr, "invalid size EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n");
-	return -51;
-    }
-    
-    blob = (unsigned char *) malloc(sz);
-    rewind(fl);
-    rd = fread(blob, 1, sz, fl);
-    if (rd != sz) {
-	fprintf(stderr, "read error EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n");
-	return -52;
-    }
-    
-    tag_list = gaiaGetExifTags(blob, sz);
-    if (tag_list == NULL) {
-	fprintf(stderr, "cannot extract EXIF tags from JPEG image: La_folla_durante_il_Palio.jpg\n");
-	return -53;
-    }
-
-    val64 = get_pixel_x(tag_list, &ok);
-    if (!ok) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelX tag not found\n");
-	return -54;
-    }
-    if (val64 != 1280) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelX unexpected value: %d\n", (int)val64);
-	return -55;
-    }
-
-    val64 = get_pixel_y(tag_list, &ok); 
-    if (!ok) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelY tag not found\n");
-	return -56;
-    }
-    if (val64 != 960) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: PixelY unexpected value: %d\n", (int)val64);
-	return -57;
-    }
-  
-    get_make(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: Make tag not found\n");
-	return -58;
-    }
-    if (strcmp(result, "Nokia") != 0) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: Make unexpected value: %s|\n", result);
-	return -59;
-    };
-
-    get_model(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: Model tag not found\n");
-	return -60;
-    }
-    if (strcmp(result, "6630") != 0) {
-	fprintf(stderr, "La_folla_durante_il_Palio.jpg: Model unexpected value: %s|\n", result);
-	return -61;
-    };
-    
-    for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++)
-    {
-        pT = gaiaGetExifTagByPos(tag_list, i);
-        if (pT)
-        {
-            gaiaExifTagGetName(pT, tag_name, 128);
-            gaiaExifTagGetValueType(pT);
-            gaiaIsExifGpsTag(pT);
-            gaiaExifTagGetValueType(pT);
-            gaiaExifTagGetNumValues(pT);
-            gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
-        }
-    }
+	gaiaExifTagsFree (tag_list);
+    fclose (fl);
+
+    fl = fopen ("sql_stmt_tests/La_folla_durante_il_Palio.jpg", "rb");
+    if (!fl)
+      {
+	  fprintf (stderr,
+		   "cannot open EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n");
+	  return -50;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    if (sz <= 14)
+      {
+	  fprintf (stderr,
+		   "invalid size EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n");
+	  return -51;
+      }
+
+    blob = (unsigned char *) malloc (sz);
+    rewind (fl);
+    rd = fread (blob, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr,
+		   "read error EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n");
+	  return -52;
+      }
+
+    tag_list = gaiaGetExifTags (blob, sz);
+    if (tag_list == NULL)
+      {
+	  fprintf (stderr,
+		   "cannot extract EXIF tags from JPEG image: La_folla_durante_il_Palio.jpg\n");
+	  return -53;
+      }
+
+    val64 = get_pixel_x (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: PixelX tag not found\n");
+	  return -54;
+      }
+    if (val64 != 1280)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: PixelX unexpected value: %d\n",
+		   (int) val64);
+	  return -55;
+      }
+
+    val64 = get_pixel_y (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: PixelY tag not found\n");
+	  return -56;
+      }
+    if (val64 != 960)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: PixelY unexpected value: %d\n",
+		   (int) val64);
+	  return -57;
+      }
+
+    get_make (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: Make tag not found\n");
+	  return -58;
+      }
+    if (strcmp (result, "Nokia") != 0)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: Make unexpected value: %s|\n",
+		   result);
+	  return -59;
+      };
+
+    get_model (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: Model tag not found\n");
+	  return -60;
+      }
+    if (strcmp (result, "6630") != 0)
+      {
+	  fprintf (stderr,
+		   "La_folla_durante_il_Palio.jpg: Model unexpected value: %s|\n",
+		   result);
+	  return -61;
+      };
+
+    for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++)
+      {
+	  pT = gaiaGetExifTagByPos (tag_list, i);
+	  if (pT)
+	    {
+		gaiaExifTagGetName (pT, tag_name, 128);
+		gaiaExifTagGetValueType (pT);
+		gaiaIsExifGpsTag (pT);
+		gaiaExifTagGetValueType (pT);
+		gaiaExifTagGetNumValues (pT);
+		gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
+	    }
+      }
 
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 0;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 0;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
 
     if (blob)
-        free(blob);
+	free (blob);
     if (tag_list)
-        gaiaExifTagsFree(tag_list);
-    fclose(fl);
-    
+	gaiaExifTagsFree (tag_list);
+    fclose (fl);
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -133;
-    }
-        
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -133;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_exif2.c b/test/check_exif2.c
index 9a1ed4c..fb1f039 100644
--- a/test/check_exif2.c
+++ b/test/check_exif2.c
@@ -50,135 +50,136 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include <spatialite/gaiaexif.h>
 
-static sqlite3_int64 
-get_pixel_x(gaiaExifTagListPtr tag_list, int *ok)
+static sqlite3_int64
+get_pixel_x (gaiaExifTagListPtr tag_list, int *ok)
 {
 /* trying to retrieve the ExifImageWidth */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0xA002)
-        {
-          /* ok, this one is the ExifImageWidth tag */
-            if (tag->Type == 3 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->ShortValues + 0);
-            } 
-            else if (tag->Type == 4 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->LongValues + 0);
-            }
-        }
-        tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0xA002)
+	    {
+		/* ok, this one is the ExifImageWidth tag */
+		if (tag->Type == 3 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->ShortValues + 0);
+		  }
+		else if (tag->Type == 4 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->LongValues + 0);
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return 0;
 }
 
-static sqlite3_int64 
-get_pixel_y(gaiaExifTagListPtr tag_list, int *ok)
+static sqlite3_int64
+get_pixel_y (gaiaExifTagListPtr tag_list, int *ok)
 {
 /* trying to retrieve the ExifImageLength */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0xA003)
-        {
-          /* ok, this one is the ExifImageLength tag */
-            if (tag->Type == 3 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->ShortValues + 0);
-            } 
-            else if (tag->Type == 4 && tag->Count == 1)
-            {
-                *ok = 1;
-                return *(tag->LongValues + 0);
-            }
-        }
-        tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0xA003)
+	    {
+		/* ok, this one is the ExifImageLength tag */
+		if (tag->Type == 3 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->ShortValues + 0);
+		  }
+		else if (tag->Type == 4 && tag->Count == 1)
+		  {
+		      *ok = 1;
+		      return *(tag->LongValues + 0);
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return 0;
 }
 
-static void 
-get_make(gaiaExifTagListPtr tag_list, const char **str, int *ok)
+static void
+get_make (gaiaExifTagListPtr tag_list, const char **str, int *ok)
 {
 /* trying to retrieve the Make */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0x010F)
-        {
-        /* ok, this one is the Make tag */ 
-            if (tag->Type == 2)
-            {
-                *ok = 1;
-                *str = tag->StringValue;
-                return;
-            }
-        }
-      tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0x010F)
+	    {
+		/* ok, this one is the Make tag */
+		if (tag->Type == 2)
+		  {
+		      *ok = 1;
+		      *str = tag->StringValue;
+		      return;
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return;
 }
 
-static void 
-get_model(gaiaExifTagListPtr tag_list, const char **str, int *ok)
+static void
+get_model (gaiaExifTagListPtr tag_list, const char **str, int *ok)
 {
 /* trying to retrieve the Model */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0x0110)
-        {
-        /* ok, this one is the Model tag */ 
-            if (tag->Type == 2)
-            {
-                *ok = 1;
-                *str = tag->StringValue;
-                return;
-            }
-        }
-      tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0x0110)
+	    {
+		/* ok, this one is the Model tag */
+		if (tag->Type == 2)
+		  {
+		      *ok = 1;
+		      *str = tag->StringValue;
+		      return;
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return;
 }
 
-static void 
-get_date(gaiaExifTagListPtr tag_list, const char **str, int *ok)
+static void
+get_date (gaiaExifTagListPtr tag_list, const char **str, int *ok)
 {
 /* trying to retrieve the Date */
     gaiaExifTagPtr tag = tag_list->First;
     *ok = 0;
 
     while (tag)
-    {
-        if (tag->TagId == 0x9003)
-        {
-        /* ok, this one is the Make tag */ 
-            if (tag->Type == 2)
-            {
-                *ok = 1;
-                *str = tag->StringValue;
-                return;
-            }
-        }
-      tag = tag->Next;
-    }
+      {
+	  if (tag->TagId == 0x9003)
+	    {
+		/* ok, this one is the Make tag */
+		if (tag->Type == 2)
+		  {
+		      *ok = 1;
+		      *str = tag->StringValue;
+		      return;
+		  }
+	    }
+	  tag = tag->Next;
+      }
     return;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -196,169 +197,215 @@ int main (int argc, char *argv[])
     gaiaExifTagListPtr tag_list = NULL;
     double longitude;
     double latitude;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -100;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -100;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    fl = fopen("Apple-iPhone-4.jpg", "rb");
-    if (!fl) {
-	fprintf(stderr, "cannot open EXIF-JPEG image: Apple-iPhone-4.jpg\n");
-	return -100;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    if (sz <= 14) {
-	fprintf(stderr, "invalid size EXIF-JPEG image: Apple-iPhone-4.jpg\n");
-	return -17;
-    }
-    
-    blob = (unsigned char *) malloc(sz);
-    rewind(fl);
-    rd = fread(blob, 1, sz, fl);
-    if (rd != sz) {
-	fprintf(stderr, "read error EXIF-JPEG image: Apple-iPhone-4.jpg\n");
-	return -18;
-    }
-    
-    tag_list = gaiaGetExifTags(blob, sz);
-    if (tag_list == NULL) {
-	fprintf(stderr, "cannot extract EXIF tags from JPEG image: Apple-iPhone-4.jpg\n");
-	return -19;
-    }
-
-    val64 = get_pixel_x(tag_list, &ok);
-    if (!ok) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: PixelX tag not found\n");
-	return -20;
-    }
-    if (val64 != 1296) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: PixelX unexpected value: %d\n", (int)val64);
-	return -21;
-    }
-
-    val64 = get_pixel_y(tag_list, &ok); 
-    if (!ok) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: PixelY tag not found\n");
-	return -22;
-    }
-    if (val64 != 968) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: PixelY unexpected value: %d\n", (int)val64);
-	return -23;
-    }
-  
-    get_make(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: Make tag not found\n");
-	return -24;
-    }
-    if (strcmp(result, "Apple") != 0) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: Make unexpected value: %s|\n", result);
-	return -25;
-    };
-
-    get_model(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: Model tag not found\n");
-	return -26;
-    }
-    if (strcmp(result, "iPhone 4") != 0) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: Model unexpected value: %s|\n", result);
-	return -27;
-    };
-
-    get_date(tag_list, &result, &ok);
-    if (!ok) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: Date tag not found\n");
-	return -28;
-    }
-    if (strcmp(result, "2011:01:13 14:33:39") != 0) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: Date unexpected value: %s|\n", result);
-	return -29;
-    };
-            
-    for (i = 0; i < gaiaGetExifTagsCount(tag_list); i++)
-    {
-        pT = gaiaGetExifTagByPos(tag_list, i);
-        if (pT)
-        {
-            gaiaExifTagGetName(pT, tag_name, 128);
-            gaiaExifTagGetValueType(pT);
-            gaiaIsExifGpsTag(pT);
-            gaiaExifTagGetValueType(pT);
-            gaiaExifTagGetNumValues(pT);
-            gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
-        }
-    }
+
+    fl = fopen ("Apple-iPhone-4.jpg", "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open EXIF-JPEG image: Apple-iPhone-4.jpg\n");
+	  return -100;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    if (sz <= 14)
+      {
+	  fprintf (stderr,
+		   "invalid size EXIF-JPEG image: Apple-iPhone-4.jpg\n");
+	  return -17;
+      }
+
+    blob = (unsigned char *) malloc (sz);
+    rewind (fl);
+    rd = fread (blob, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error EXIF-JPEG image: Apple-iPhone-4.jpg\n");
+	  return -18;
+      }
+
+    tag_list = gaiaGetExifTags (blob, sz);
+    if (tag_list == NULL)
+      {
+	  fprintf (stderr,
+		   "cannot extract EXIF tags from JPEG image: Apple-iPhone-4.jpg\n");
+	  return -19;
+      }
+
+    val64 = get_pixel_x (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: PixelX tag not found\n");
+	  return -20;
+      }
+    if (val64 != 1296)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: PixelX unexpected value: %d\n",
+		   (int) val64);
+	  return -21;
+      }
+
+    val64 = get_pixel_y (tag_list, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: PixelY tag not found\n");
+	  return -22;
+      }
+    if (val64 != 968)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: PixelY unexpected value: %d\n",
+		   (int) val64);
+	  return -23;
+      }
+
+    get_make (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: Make tag not found\n");
+	  return -24;
+      }
+    if (strcmp (result, "Apple") != 0)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: Make unexpected value: %s|\n",
+		   result);
+	  return -25;
+      };
+
+    get_model (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: Model tag not found\n");
+	  return -26;
+      }
+    if (strcmp (result, "iPhone 4") != 0)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: Model unexpected value: %s|\n",
+		   result);
+	  return -27;
+      };
+
+    get_date (tag_list, &result, &ok);
+    if (!ok)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: Date tag not found\n");
+	  return -28;
+      }
+    if (strcmp (result, "2011:01:13 14:33:39") != 0)
+      {
+	  fprintf (stderr, "Apple-iPhone-4.jpg: Date unexpected value: %s|\n",
+		   result);
+	  return -29;
+      };
+
+    for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++)
+      {
+	  pT = gaiaGetExifTagByPos (tag_list, i);
+	  if (pT)
+	    {
+		gaiaExifTagGetName (pT, tag_name, 128);
+		gaiaExifTagGetValueType (pT);
+		gaiaIsExifGpsTag (pT);
+		gaiaExifTagGetValueType (pT);
+		gaiaExifTagGetNumValues (pT);
+		gaiaExifTagGetHumanReadable (pT, human, 8190, &ok);
+	    }
+      }
 
     pT = gaiaGetExifTagById (tag_list, 0x0112);
-    if (pT == NULL) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: tag Orientation not found: %s|\n", result);
-	return -30;
-    };
+    if (pT == NULL)
+      {
+	  fprintf (stderr,
+		   "Apple-iPhone-4.jpg: tag Orientation not found: %s|\n",
+		   result);
+	  return -30;
+      };
 
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 0;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 0;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
     for (i = 0x0000; i < 0xffff; i++)
-    {
-        gaiaExifTag tag;
-        tag.Gps = 1;
-        tag.TagId = i;
-        gaiaExifTagGetName(&tag, tag_name, 128);
-    }
-
-    if (!gaiaGetGpsLatLong(blob, sz, human, 8192)) {
-	fprintf(stderr, "cannot extract GPS coords from JPEG image: Apple-iPhone-4.jpg\n");
-	return -32;
-    }
-    if (strcmp(human, "N 41.00 51.18 0.00 / E 12.00 29.33 0.00") != 0) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: GPS coords unexpected value: %s|\n", human);
-	return -33;
-    };
-    if (!gaiaGetGpsLatLong(blob, sz, human, 18)) {
-	fprintf(stderr, "cannot extract GPS coords(18) from JPEG image: Apple-iPhone-4.jpg\n");
-	return -34;
-    }
-    if (strcmp(human, "N 41.00 51.18 0.00") != 0) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: GPS coords(18) unexpected value: %s|\n", human);
-	return -35;
-    };
-    if (!gaiaGetGpsCoords(blob, sz, &longitude, &latitude)) {
-	fprintf(stderr, "cannot extract GPS long/lat from JPEG image: Apple-iPhone-4.jpg\n");
-	return -36;
-    }
-    if (longitude != 12.488833000 || latitude != 41.853000000) {
-	fprintf(stderr, "Apple-iPhone-4.jpg: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude);
-	return -37;
-    };
+      {
+	  gaiaExifTag tag;
+	  tag.Gps = 1;
+	  tag.TagId = i;
+	  gaiaExifTagGetName (&tag, tag_name, 128);
+      }
+
+    if (!gaiaGetGpsLatLong (blob, sz, human, 8192))
+      {
+	  fprintf (stderr,
+		   "cannot extract GPS coords from JPEG image: Apple-iPhone-4.jpg\n");
+	  return -32;
+      }
+    if (strcmp (human, "N 41.00 51.18 0.00 / E 12.00 29.33 0.00") != 0)
+      {
+	  fprintf (stderr,
+		   "Apple-iPhone-4.jpg: GPS coords unexpected value: %s|\n",
+		   human);
+	  return -33;
+      };
+    if (!gaiaGetGpsLatLong (blob, sz, human, 18))
+      {
+	  fprintf (stderr,
+		   "cannot extract GPS coords(18) from JPEG image: Apple-iPhone-4.jpg\n");
+	  return -34;
+      }
+    if (strcmp (human, "N 41.00 51.18 0.00") != 0)
+      {
+	  fprintf (stderr,
+		   "Apple-iPhone-4.jpg: GPS coords(18) unexpected value: %s|\n",
+		   human);
+	  return -35;
+      };
+    if (!gaiaGetGpsCoords (blob, sz, &longitude, &latitude))
+      {
+	  fprintf (stderr,
+		   "cannot extract GPS long/lat from JPEG image: Apple-iPhone-4.jpg\n");
+	  return -36;
+      }
+    if (longitude != 12.488833000 || latitude != 41.853000000)
+      {
+	  fprintf (stderr,
+		   "Apple-iPhone-4.jpg: GPS long/lat unexpected values: %1.9f %1.9f|\n",
+		   longitude, latitude);
+	  return -37;
+      };
 
     if (blob)
-        free(blob);
+	free (blob);
     if (tag_list)
-        gaiaExifTagsFree(tag_list);
-    fclose(fl);
-       
+	gaiaExifTagsFree (tag_list);
+    fclose (fl);
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -133;
-    }
-        
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -133;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_extension.c b/test/check_extension.c
index 68026ea..05769a3 100644
--- a/test/check_extension.c
+++ b/test/check_extension.c
@@ -55,7 +55,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "asprintf4win.h"
 #endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
@@ -68,110 +69,225 @@ int main (int argc, char *argv[])
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sqlite3_enable_load_extension (db_handle, 1);
-    
-#if defined(_WIN32) || defined(__APPLE__)
-#ifdef __APPLE__	/* Mac Os X */
-    asprintf(&sql_statement, "SELECT load_extension('libspatialite.dylib')");
-#else	/* Windows */
-    asprintf(&sql_statement, "SELECT load_extension('libspatialite.dll')");
-#endif
-#else	/* neither Mac nor Windows: may be Linux or Unix */
-    asprintf(&sql_statement, "SELECT load_extension('libspatialite.so')");
-#endif
+
+    asprintf (&sql_statement, "SELECT load_extension('mod_spatialite')");
+
     ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "load_extension() error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -2;
-    }
-
-    asprintf(&sql_statement, "SELECT spatialite_version()");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: spatialite_version() bad result: %i/%i.\n", rows, columns);
-	return  -11;
-    }
-    if (strcmp(results[1], VERSION) != 0) {
-	fprintf (stderr, "Unexpected error: spatialite_version() bad result: %s.\n", results[1]);
-	return  -12;
-    }
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "load_extension() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    asprintf (&sql_statement, "SELECT spatialite_version()");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: spatialite_version() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -11;
+      }
+    if (strcmp (results[1], VERSION) != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: spatialite_version() bad result: %s.\n",
+		   results[1]);
+	  return -12;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "SELECT geos_version()");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error2: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-
-#ifndef OMIT_GEOS	/* only if GEOS is supported */
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: geos_version() bad result: %i/%i.\n", rows, columns);
-	return  -14;
-    }
+    asprintf (&sql_statement, "SELECT geos_version()");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
+
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: geos_version() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -14;
+      }
     /* we tolerate any string here, because versions always change */
-    if (strlen(results[1]) == 0) {
-	fprintf (stderr, "Unexpected error: geos_version() bad result.\n");
-	return  -15;
-    }
+    if (strlen (results[1]) == 0)
+      {
+	  fprintf (stderr, "Unexpected error: geos_version() bad result.\n");
+	  return -15;
+      }
+#else /* GEOS is not supported */
+    /* in this case we expect a NULL */
+    if (results[1] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: geos_version() bad result.\n");
+	  return -15;
+      }
+#endif /* end GEOS conditional */
     sqlite3_free_table (results);
-#else	/* GEOS is not supported */
+
+    asprintf (&sql_statement, "SELECT proj4_version()");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -16;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: proj4_version() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -17;
+      }
+
+#ifndef OMIT_PROJ		/* only if PROJ is supported */
+    /* we tolerate any string here, because versions always change */
+    if (strlen (results[1]) == 0)
+      {
+	  fprintf (stderr, "Unexpected error: proj4_version() bad result.\n");
+	  return -18;
+      }
+#else /* PROJ is not supported */
     /* in this case we expect a NULL */
-    if (results[1] != NULL) {
-	fprintf (stderr, "Unexpected error: geos_version() bad result.\n");
-	return  -15;
-    }
-#endif	/* end GEOS conditional */
-
-    
-    asprintf(&sql_statement, "SELECT proj4_version()");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error3: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: proj4_version() bad result: %i/%i.\n", rows, columns);
-	return  -14;
-    }
-
-#ifndef OMIT_PROJ	/* only if PROJ is supported */
+    if (results[1] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: proj4_version() bad result.\n");
+	  return -19;
+      }
+#endif /* end PROJ conditional */
+    sqlite3_free_table (results);
+
+    asprintf (&sql_statement, "SELECT spatialite_target_cpu()");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error4: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: spatialite_target_cpu() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -21;
+      }
+    sqlite3_free_table (results);
+
+    asprintf (&sql_statement, "SELECT lwgeom_version()");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error5: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: lwgeom_version() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -23;
+      }
+
+#ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
     /* we tolerate any string here, because versions always change */
-    if (strlen(results[1]) == 0) {
-	fprintf (stderr, "Unexpected error: proj4_version() bad result.\n");
-	return  -15;
-    }
-#else	/* PROJ is not supported */
+    if (strlen (results[1]) == 0)
+      {
+	  fprintf (stderr, "Unexpected error: lwgeom_version() bad result.\n");
+	  return -24;
+      }
+#else /* LWGEOM is not supported */
     /* in this case we expect a NULL */
-    if (results[1] != NULL) {
-	fprintf (stderr, "Unexpected error: proj4_version() bad result.\n");
-	return  -15;
-    }
-#endif	/* end PROJ conditional */
+    if (results[1] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: lwgeom_version() bad result.\n");
+	  return -25;
+      }
+#endif /* end LWGEOM conditional */
+    sqlite3_free_table (results);
+
+    asprintf (&sql_statement, "SELECT libxml2_version()");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error6: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: libxml2_version() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -27;
+      }
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+    /* we tolerate any string here, because versions always change */
+    if (strlen (results[1]) == 0)
+      {
+	  fprintf (stderr, "Unexpected error: libxml2_version() bad result.\n");
+	  return -28;
+      }
+#else /* LIBXML2 is not supported */
+    /* in this case we expect a NULL */
+    if (results[1] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: libxml2_version() bad result.\n");
+	  return -29;
+      }
+#endif /* end LIBXML2 conditional */
+    sqlite3_free_table (results);
 
-    sqlite3_free_table (results); 
     sqlite3_close (db_handle);
-    spatialite_cleanup();
-    
+    spatialite_cleanup ();
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_extra_relations_fncts.c b/test/check_extra_relations_fncts.c
index 44af763..ee5c59a 100644
--- a/test/check_extra_relations_fncts.c
+++ b/test/check_extra_relations_fncts.c
@@ -54,186 +54,212 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 static const double double_eps = 0.00000001;
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int result;
     int returnValue = 0;
     gaiaRingPtr interior;
-    
+
     /* Common setup */
-    gaiaLinestringPtr linestr1 = gaiaAllocLinestring(0);
-    gaiaLinestringPtr linestr2 = gaiaAllocLinestring(0);
-    gaiaPolygonPtr poly1 = gaiaAllocPolygon(0, 0);
-    gaiaPolygonPtr poly2 = gaiaAllocPolygon(0, 0);
+    gaiaLinestringPtr linestr1 = gaiaAllocLinestring (0);
+    gaiaLinestringPtr linestr2 = gaiaAllocLinestring (0);
+    gaiaPolygonPtr poly1 = gaiaAllocPolygon (0, 0);
+    gaiaPolygonPtr poly2 = gaiaAllocPolygon (0, 0);
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
-    
+
     /* Tests start here */
-    
+
     /* zero length linestring */
-    result = gaiaLinestringEquals(linestr1, linestr2);
-    if (result != 1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -1;
-	goto exit;
-    }
-    
+    result = gaiaLinestringEquals (linestr1, linestr2);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -1;
+	  goto exit;
+      }
+
     /* non-matching linestring lengths */
     gaiaFreeLinestring (linestr1);
     gaiaFreeLinestring (linestr2);
-    linestr1 = gaiaAllocLinestring(2);
-    linestr2 = gaiaAllocLinestring(3);
-    gaiaSetPoint(linestr1->Coords, 0, 1, 3); /* line1, first point */
-    gaiaSetPoint(linestr1->Coords, 1, 2, 4); /* line1, second point */
-    gaiaSetPoint(linestr2->Coords, 0, 4, -2); /* line2, first point */
-    gaiaSetPoint(linestr2->Coords, 1, 1, 5); /* line2, second point */
-    gaiaSetPoint(linestr2->Coords, 2, 3, 4); /* line2, third point */
-    result = gaiaLinestringEquals(linestr1, linestr2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -2;
-	goto exit;
-    }
-    
+    linestr1 = gaiaAllocLinestring (2);
+    linestr2 = gaiaAllocLinestring (3);
+    gaiaSetPoint (linestr1->Coords, 0, 1, 3);	/* line1, first point */
+    gaiaSetPoint (linestr1->Coords, 1, 2, 4);	/* line1, second point */
+    gaiaSetPoint (linestr2->Coords, 0, 4, -2);	/* line2, first point */
+    gaiaSetPoint (linestr2->Coords, 1, 1, 5);	/* line2, second point */
+    gaiaSetPoint (linestr2->Coords, 2, 3, 4);	/* line2, third point */
+    result = gaiaLinestringEquals (linestr1, linestr2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -2;
+	  goto exit;
+      }
+
     /* identical lines */
     gaiaFreeLinestring (linestr2);
-    linestr2 = gaiaCloneLinestring(linestr1);
-    result = gaiaLinestringEquals(linestr1, linestr2);
-    if (result != 1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -3;
-	goto exit;
-    }
-    
+    linestr2 = gaiaCloneLinestring (linestr1);
+    result = gaiaLinestringEquals (linestr1, linestr2);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -3;
+	  goto exit;
+      }
+
     /* not quite identical lines */
-    gaiaSetPoint(linestr2->Coords, 1, 2, -4);
-    result = gaiaLinestringEquals(linestr1, linestr2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -4;
-	goto exit;
-    }    
-    
+    gaiaSetPoint (linestr2->Coords, 1, 2, -4);
+    result = gaiaLinestringEquals (linestr1, linestr2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -4;
+	  goto exit;
+      }
+
     /* zero length polygon */
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -5;
-	goto exit;
-    }
-    
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -5;
+	  goto exit;
+      }
+
     /* matching polygons */
     gaiaFreePolygon (poly1);
     gaiaFreePolygon (poly2);
-    poly1 = gaiaAllocPolygon(5, 0);
-    gaiaSetPoint(poly1->Exterior->Coords, 0, 0, 0);
-    gaiaSetPoint(poly1->Exterior->Coords, 1, 10, 0);
-    gaiaSetPoint(poly1->Exterior->Coords, 2, 10, 10);
-    gaiaSetPoint(poly1->Exterior->Coords, 3, 0, 10);
-    gaiaSetPoint(poly1->Exterior->Coords, 4, 0, 0);
-    poly2 = gaiaClonePolygon(poly1);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -6;
-	goto exit;
-    }
-    
+    poly1 = gaiaAllocPolygon (5, 0);
+    gaiaSetPoint (poly1->Exterior->Coords, 0, 0, 0);
+    gaiaSetPoint (poly1->Exterior->Coords, 1, 10, 0);
+    gaiaSetPoint (poly1->Exterior->Coords, 2, 10, 10);
+    gaiaSetPoint (poly1->Exterior->Coords, 3, 0, 10);
+    gaiaSetPoint (poly1->Exterior->Coords, 4, 0, 0);
+    poly2 = gaiaClonePolygon (poly1);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -6;
+	  goto exit;
+      }
+
     /* not quite matching polygons */
-    gaiaSetPoint(poly2->Exterior->Coords, 2, 10, -10);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -7;
-	goto exit;
-    }
-    
+    gaiaSetPoint (poly2->Exterior->Coords, 2, 10, -10);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -7;
+	  goto exit;
+      }
+
     /* polygons with different numbers of interiors */
     gaiaFreePolygon (poly2);
-    poly2 = gaiaAllocPolygon(5, 1);
-    gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0);
-    gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0);
-    gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10);
-    gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 10);
-    gaiaSetPoint(poly2->Exterior->Coords, 4, 0, 0);
-    interior = gaiaAddInteriorRing(poly2, 0, 4);
-    gaiaSetPoint(interior->Coords, 0, 1, 1);
-    gaiaSetPoint(interior->Coords, 1, 3, 2);
-    gaiaSetPoint(interior->Coords, 2, 3, 1);
-    gaiaSetPoint(interior->Coords, 3, 1, 1);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -8;
-	goto exit;
-    }
-    
+    poly2 = gaiaAllocPolygon (5, 1);
+    gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0);
+    gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0);
+    gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10);
+    gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 10);
+    gaiaSetPoint (poly2->Exterior->Coords, 4, 0, 0);
+    interior = gaiaAddInteriorRing (poly2, 0, 4);
+    gaiaSetPoint (interior->Coords, 0, 1, 1);
+    gaiaSetPoint (interior->Coords, 1, 3, 2);
+    gaiaSetPoint (interior->Coords, 2, 3, 1);
+    gaiaSetPoint (interior->Coords, 3, 1, 1);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -8;
+	  goto exit;
+      }
+
     /* same exteriors and interiors */
     gaiaFreePolygon (poly1);
-    poly1 = gaiaClonePolygon(poly2);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -9;
-	goto exit;
-    }
-    
+    poly1 = gaiaClonePolygon (poly2);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -9;
+	  goto exit;
+      }
+
     /* slightly different interiors */
-    gaiaSetPoint(interior->Coords, 2, 3, 3);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -10;
-	goto exit;
-    }
+    gaiaSetPoint (interior->Coords, 2, 3, 3);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -10;
+	  goto exit;
+      }
 
     /* different number of exterior points */
-    gaiaFreePolygon(poly2);
-    poly2 = gaiaAllocPolygon(4, 1);
-    gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0);
-    gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0);
-    gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10);
-    gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 0);
-    interior = gaiaAddInteriorRing(poly2, 0, 4);
-    gaiaSetPoint(interior->Coords, 0, 1, 1);
-    gaiaSetPoint(interior->Coords, 1, 3, 2);
-    gaiaSetPoint(interior->Coords, 2, 3, 1);
-    gaiaSetPoint(interior->Coords, 3, 1, 1);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -11;
-	goto exit;
-    }
-    
+    gaiaFreePolygon (poly2);
+    poly2 = gaiaAllocPolygon (4, 1);
+    gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0);
+    gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0);
+    gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10);
+    gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 0);
+    interior = gaiaAddInteriorRing (poly2, 0, 4);
+    gaiaSetPoint (interior->Coords, 0, 1, 1);
+    gaiaSetPoint (interior->Coords, 1, 3, 2);
+    gaiaSetPoint (interior->Coords, 2, 3, 1);
+    gaiaSetPoint (interior->Coords, 3, 1, 1);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -11;
+	  goto exit;
+      }
+
     /* same exterior points, but different number of points on first interior */
     gaiaFreePolygon (poly2);
-    poly2 = gaiaAllocPolygon(5, 1);
-    gaiaSetPoint(poly2->Exterior->Coords, 0, 0, 0);
-    gaiaSetPoint(poly2->Exterior->Coords, 1, 10, 0);
-    gaiaSetPoint(poly2->Exterior->Coords, 2, 10, 10);
-    gaiaSetPoint(poly2->Exterior->Coords, 3, 0, 10);
-    gaiaSetPoint(poly2->Exterior->Coords, 4, 0, 0);
-    interior = gaiaAddInteriorRing(poly2, 0, 5);
-    gaiaSetPoint(interior->Coords, 0, 1, 1);
-    gaiaSetPoint(interior->Coords, 1, 3, 2);
-    gaiaSetPoint(interior->Coords, 2, 3, 3);
-    gaiaSetPoint(interior->Coords, 3, 1, 3);
-    gaiaSetPoint(interior->Coords, 4, 1, 1);
-    result = gaiaPolygonEquals(poly1, poly2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -12;
-	goto exit;
-    }
-    
+    poly2 = gaiaAllocPolygon (5, 1);
+    gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0);
+    gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0);
+    gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10);
+    gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 10);
+    gaiaSetPoint (poly2->Exterior->Coords, 4, 0, 0);
+    interior = gaiaAddInteriorRing (poly2, 0, 5);
+    gaiaSetPoint (interior->Coords, 0, 1, 1);
+    gaiaSetPoint (interior->Coords, 1, 3, 2);
+    gaiaSetPoint (interior->Coords, 2, 3, 3);
+    gaiaSetPoint (interior->Coords, 3, 1, 3);
+    gaiaSetPoint (interior->Coords, 4, 1, 1);
+    result = gaiaPolygonEquals (poly1, poly2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -12;
+	  goto exit;
+      }
+
     /* Cleanup and exit */
-exit:
+  exit:
     gaiaFreeLinestring (linestr1);
     gaiaFreeLinestring (linestr2);
     gaiaFreePolygon (poly1);
     gaiaFreePolygon (poly2);
-    
+
+    spatialite_shutdown ();
     return returnValue;
 }
diff --git a/test/check_fdo1.c b/test/check_fdo1.c
index 9d0da15..9e7c0e8 100644
--- a/test/check_fdo1.c
+++ b/test/check_fdo1.c
@@ -57,9 +57,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <geos_c.h>
 #endif
 
-int main (int argc, char *argv[])
+static int
+do_test (int legacy_mode)
 {
-#ifndef OMIT_GEOS	/* only if GEOS is supported */
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
@@ -68,377 +69,519 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = NULL;
+    if (!legacy_mode)
+	cache = spatialite_alloc_connection ();
+    else
+	spatialite_init (0);
 
-    if (argc > 1 || argv[0] == NULL)
-	argc = 1;		/* silencing stupid compiler warnings */
-
-    ret = system("cp sql_stmt_tests/testFDO.sqlite testFDO.sqlite");
+    ret = system ("cp sql_stmt_tests/testFDO.sqlite testFDO.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy testFDO.sqlite database\n");
-        return -1001;
-    }
+      {
+	  fprintf (stderr, "cannot copy testFDO.sqlite database\n");
+	  return -1001;
+      }
 
-    ret = sqlite3_open_v2 ("testFDO.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open testFDO.sqlite db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1000;
-    }
+    ret =
+	sqlite3_open_v2 ("testFDO.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open testFDO.sqlite db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1000;
+      }
 
-    spatialite_init_ex (handle, cache, 0);
+    if (!legacy_mode)
+	spatialite_init_ex (handle, cache, 0);
 
 /* FDO start-up */
     sql = "SELECT AutoFDOStart()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -1;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -1;
+      }
 
 /* testing aggregate Union() PointZ WKT "p02" */
     sql = "SELECT AsText(ST_Union(WKT_GEOMETRY)) FROM fdo_p02";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -2;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -3;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -4;
-    } 
-    if (strcmp(results[1], "MULTIPOINT Z(664350.17954 5171957.915655 314.52, 664642.363686 5169415.339218 294.37, 664964.447225 5170571.245732 318.25)") != 0) {        
-          fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]);
-        return -5;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -3;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -4;
+      }
+    if (strcmp
+	(results[1],
+	 "MULTIPOINT Z(664350.17954 5171957.915655 314.52, 664642.363686 5169415.339218 294.37, 664964.447225 5170571.245732 318.25)")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result %s\n", results[1]);
+	  return -5;
+      }
     sqlite3_free_table (results);
 
 /* testing aggregate Union() PointZ WKB "p03" */
-    sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p03 WHERE text_dil IS NULL AND OGC_FID < 3";
+    sql =
+	"SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p03 WHERE text_dil IS NULL AND OGC_FID < 3";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -7;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -8;
-    } 
-    if (strcmp(results[1], "MULTIPOINT Z(665216.306643 5169825.707161 296.06, 665224.506512 5169827.907054 296.16)") != 0) {        
-          fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]);
-        return -9;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -7;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -8;
+      }
+    if (strcmp
+	(results[1],
+	 "MULTIPOINT Z(665216.306643 5169825.707161 296.06, 665224.506512 5169827.907054 296.16)")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result |%s|\n",
+		   results[1]);
+	  return -9;
+      }
     sqlite3_free_table (results);
 
 /* testing aggregate Union() PointZ SpatiaLite "p05" */
-    sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p05 WHERE text_dil IS NULL AND OGC_FID < 3";
+    sql =
+	"SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p05 WHERE text_dil IS NULL AND OGC_FID < 3";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -11;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result |%s|\n", results[1]);
-      return -12;
-    }
-    if (strcmp(results[1], "MULTIPOINT Z(667687.978175 5169352.045712 583.140015, 667710.008189 5169402.894615 589.849976)") != 0) {        
-          fprintf (stderr, "Unexpected error: invalid result b|%s|\n", results[1]);
-          return -13;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -11;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result %s\n", results[1]);
+	  return -12;
+      }
+    if (strcmp
+	(results[1],
+	 "MULTIPOINT Z(667687.978175 5169352.045712 583.140015, 667710.008189 5169402.894615 589.849976)")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result b|%s|\n",
+		   results[1]);
+	  return -13;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(GLength()) LinestringZ WKT "l05" */
     sql = "SELECT Sum(GLength(WKT_GEOMETRY)) FROM fdo_l05";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -15;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -16;
-    }
-    if (strncmp(results[1], "59.417763", 9) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -17;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -15;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -16;
+      }
+    if (strncmp (results[1], "59.417763", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -17;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(GLength()) LinestringZ WKB "l06" */
     sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l06";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -19;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -20;
-    }
-    if (strncmp(results[1], "273.076064", 10) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -21;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -19;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -20;
+      }
+    if (strncmp (results[1], "273.076064", 10) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -21;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(GLength()) LinestringZ SpatiaLite "l07" */
     sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l07";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -22;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -23;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -24;
-    }
-    if (strncmp(results[1], "219.459808", 10) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -25;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -23;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -24;
+      }
+    if (strncmp (results[1], "219.459808", 10) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -25;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(Area()) PolygonZ WKT "f04" */
     sql = "SELECT Sum(Area(WKT_GEOMETRY)) FROM fdo_f04";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -26;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -27;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -28;
-    }
-    if (strncmp(results[1], "9960.931239", 11) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -29;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -27;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -28;
+      }
+    if (strncmp (results[1], "9960.931239", 11) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -29;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(Area()) PolygonZ WKB "f05" */
     sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f05";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -30;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -31;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -32;
-    }
-    if (strncmp(results[1], "69972.113393", 12) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -33;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -31;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -32;
+      }
+    if (strncmp (results[1], "69972.113393", 12) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -33;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(Area()) PolygonZ SpatiaLite "f06" */
     sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f06";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -34;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -35;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -36;
-    }
-    if (strncmp(results[1], "1125.064396", 11) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -37;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -35;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -36;
+      }
+    if (strncmp (results[1], "1125.064396", 11) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -37;
+      }
     sqlite3_free_table (results);
 
 /* testing IsValid() LinestringZ WKB "l06" */
     sql = "SELECT IsValid(GEOMETRY) FROM fdo_l06";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -38;
-    }
-    if ((rows != 12) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -39;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -38;
+      }
+    if ((rows != 12) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -39;
+      }
     for (i = 1; i <= rows; i++)
-    {
-      if (results[i] == NULL) {
-        fprintf (stderr, "Unexpected error: NULL result\n");
-        return -40;
-      }
-      if (strcmp(results[i], "0") == 0) {
-        const char *geos_msg = gaiaGetGeosErrorMsg();
-        if (geos_msg == NULL)
-          geos_msg = gaiaGetGeosWarningMsg();
-        if (geos_msg == NULL) {
-          fprintf (stderr, "Unexpected error: invalid result\n");
-          return -41;
-        }
-      }
-    }
+      {
+	  if (results[i] == NULL)
+	    {
+		fprintf (stderr, "Unexpected error: NULL result\n");
+		return -40;
+	    }
+	  if (strcmp (results[i], "0") == 0)
+	    {
+		const char *geos_msg;
+		if (legacy_mode)
+		    geos_msg = gaiaGetGeosErrorMsg ();
+		else
+		    geos_msg = gaiaGetGeosErrorMsg_r (cache);
+		if (geos_msg == NULL)
+		  {
+		      if (legacy_mode)
+			  geos_msg = gaiaGetGeosWarningMsg ();
+		      else
+			  geos_msg = gaiaGetGeosWarningMsg_r (cache);
+		  }
+		if (geos_msg == NULL)
+		  {
+		      fprintf (stderr, "Unexpected error: invalid result\n");
+		      return -41;
+		  }
+	    }
+      }
     sqlite3_free_table (results);
 
 /* testing IsValid() PolygonZ WKT "f04" */
     sql = "SELECT IsValid(WKT_GEOMETRY) FROM fdo_f04";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -42;
-    }
-    if ((rows != 16) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -43;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -42;
+      }
+    if ((rows != 16) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -43;
+      }
     for (i = 1; i <= rows; i++)
-    {
-      if (results[i] == NULL) {
-        fprintf (stderr, "Unexpected error: NULL result\n");
-        return -44;
-      }
-      if (strcmp(results[i], "0") == 0) {
-        const char *geos_msg = gaiaGetGeosErrorMsg();
-        if (geos_msg == NULL)
-          geos_msg = gaiaGetGeosWarningMsg();
-        if (geos_msg == NULL) {
-          fprintf (stderr, "Unexpected error: invalid result\n");
-          return -45;
-        }
-      }
-    }
+      {
+	  if (results[i] == NULL)
+	    {
+		fprintf (stderr, "Unexpected error: NULL result\n");
+		return -44;
+	    }
+	  if (strcmp (results[i], "0") == 0)
+	    {
+		const char *geos_msg;
+		if (legacy_mode)
+		    geos_msg = gaiaGetGeosErrorMsg ();
+		else
+		    geos_msg = gaiaGetGeosErrorMsg_r (cache);
+		if (geos_msg == NULL)
+		  {
+		      if (legacy_mode)
+			  geos_msg = gaiaGetGeosWarningMsg ();
+		      else
+			  geos_msg = gaiaGetGeosWarningMsg_r (cache);
+		  }
+		if (geos_msg == NULL)
+		  {
+		      fprintf (stderr, "Unexpected error: invalid result\n");
+		      return -45;
+		  }
+	    }
+      }
     sqlite3_free_table (results);
 
 /* testing IsValid() PolygonZ WKB "f05" */
     sql = "SELECT IsValid(GEOMETRY) FROM fdo_f05";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -46;
-    }
-    if ((rows != 13) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -47;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
+    if ((rows != 13) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -47;
+      }
     for (i = 1; i <= rows; i++)
-    {
-      if (results[i] == NULL) {
-        fprintf (stderr, "Unexpected error: NULL result\n");
-        return -48;
-      }
-      if (strcmp(results[i], "0") == 0) {
-        const char *geos_msg = gaiaGetGeosErrorMsg();
-        if (geos_msg == NULL)
-          geos_msg = gaiaGetGeosWarningMsg();
-        if (geos_msg == NULL) {
-          fprintf (stderr, "Unexpected error: invalid result\n");
-          return -49;
-        }
-      }
-    }
+      {
+	  if (results[i] == NULL)
+	    {
+		fprintf (stderr, "Unexpected error: NULL result\n");
+		return -48;
+	    }
+	  if (strcmp (results[i], "0") == 0)
+	    {
+		const char *geos_msg;
+		if (legacy_mode)
+		    geos_msg = gaiaGetGeosErrorMsg ();
+		else
+		    geos_msg = gaiaGetGeosErrorMsg_r (cache);
+		if (geos_msg == NULL)
+		  {
+		      if (legacy_mode)
+			  geos_msg = gaiaGetGeosWarningMsg ();
+		      else
+			  geos_msg = gaiaGetGeosWarningMsg_r (cache);
+		  }
+		if (geos_msg == NULL)
+		  {
+		      fprintf (stderr, "Unexpected error: invalid result\n");
+		      return -49;
+		  }
+	    }
+      }
     sqlite3_free_table (results);
 
 /* testing DOUBLE and TEXT columns */
     sql = "SELECT datum, hoehe FROM fdo_p05 WHERE OGC_FID = 5";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -50;
-    }
-    if ((rows != 1) || (columns != 2)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -51;
-    }
-    if (results[2] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -52;
-    }
-    if (strcmp(results[2], "1997/03/07") != 0) {
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -53;
-    }
-    if (results[3] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -54;
-    }
-    if (strcmp(results[3], "277.55") != 0) {
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -54;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -50;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -51;
+      }
+    if (results[2] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -52;
+      }
+    if (strcmp (results[2], "1997/03/07") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -53;
+      }
+    if (results[3] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -54;
+      }
+    if (strcmp (results[3], "277.55") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -54;
+      }
     sqlite3_free_table (results);
 
 /* FDO shut-down */
     sql = "SELECT AutoFDOStop()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -55;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -56;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -56;
+      }
+
     spatialite_cleanup_ex (cache);
-    ret = unlink("testFDO.sqlite");
+    ret = unlink ("testFDO.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot remove testFDO database\n");
+	  return -57;
+      }
+#endif /* end GEOS conditional */
+
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+    int ret;
+
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+    fprintf (stderr, "********* testing in current mode\n");
+    ret = do_test (0);
+    if (ret != 0)
+	return ret;
+
+    fprintf (stderr, "********* testing in legacy mode\n");
+    ret = do_test (1);
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove testFDO database\n");
-        return -57;
-    }
-#endif	/* end GEOS conditional */
-    
+	return ret;
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_fdo2.c b/test/check_fdo2.c
index 9cef89c..219975c 100644
--- a/test/check_fdo2.c
+++ b/test/check_fdo2.c
@@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -57,830 +58,981 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
 /* FDO initialization */
     sql = "SELECT InitFDOSpatialMetadata()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -2;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
 
 /* creating a Point 2D WKT table */
     sql = "CREATE TABLE pt_2d_wkt (id INTEGER, name TEXT, value DOUBLE)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -3;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
     sql = "SELECT AddFDOGeometryColumn('pt_2d_wkt', 'g', -1, 1, 2, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
 
 /* creating a Point 3D WKT table */
     sql = "CREATE TABLE pt_3d_wkt (id INTEGER, pic1 BLOB, pic2 BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
     sql = "SELECT AddFDOGeometryColumn('pt_3d_wkt', 'g', -1, 1, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
 
 /* creating a Point 2D WKB table */
     sql = "CREATE TABLE pt_2d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
     sql = "SELECT AddFDOGeometryColumn('pt_2d_wkb', 'g', -1, 1, 2, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
 
 /* creating a Point 3D WKB table */
     sql = "CREATE TABLE pt_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
     sql = "SELECT AddFDOGeometryColumn('pt_3d_wkb', 'g', -1, 1, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
 /* creating a Point 3D WKB table */
     sql = "CREATE TABLE pt_3d_spl (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    } 
-    sql = "SELECT AddFDOGeometryColumn('pt_3d_spl', 'g', -1, 1, 3, 'SPATIALITE')";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    sql =
+	"SELECT AddFDOGeometryColumn('pt_3d_spl', 'g', -1, 1, 3, 'SPATIALITE')";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
 
 /* creating a Linestring 3D WKT table */
     sql = "CREATE TABLE ln_3d_wkt (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
     sql = "SELECT AddFDOGeometryColumn('ln_3d_wkt', 'g', -1, 2, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
 
 /* creating a Linestring 3D WKB table */
     sql = "CREATE TABLE ln_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
     sql = "SELECT AddFDOGeometryColumn('ln_3d_wkb', 'g', -1, 2, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
 
 /* creating a Polygon 3D WKT table */
     sql = "CREATE TABLE pg_3d_wkt (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -16;
+      }
     sql = "SELECT AddFDOGeometryColumn('pg_3d_wkt', 'g', -1, 3, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
 
 /* creating a Polygon 3D WKB table */
     sql = "CREATE TABLE pg_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
     sql = "SELECT AddFDOGeometryColumn('pg_3d_wkb', 'g', -1, 3, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -19;
+      }
 
 /* creating a MultiPoint 3D WKT table */
     sql = "CREATE TABLE mpt_3d_wkt (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
     sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
 
 /* creating a MultiPoint 3D WKB table */
     sql = "CREATE TABLE mpt_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -22;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
     sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkb', 'g', -1, 4, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -23;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
 
 /* creating a MultiLinestring 3D WKT table */
     sql = "CREATE TABLE mln_3d_wkt (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -24;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
     sql = "SELECT AddFDOGeometryColumn('mln_3d_wkt', 'g', -1, 5, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -25;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
 
 /* creating a MultiLinestring 3D WKB table */
     sql = "CREATE TABLE mln_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -26;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
     sql = "SELECT AddFDOGeometryColumn('mln_3d_wkb', 'g', -1, 5, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -27;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
 
 /* creating a MultiPolygon 3D WKT table */
     sql = "CREATE TABLE mpg_3d_wkt (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -28;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
     sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkt', 'g', -1, 6, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -29;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
 
 /* creating a MultiPolygon 3D WKB table */
     sql = "CREATE TABLE mpg_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -30;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
     sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkb', 'g', -1, 6, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -31;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
 
 /* creating a GeometryCollection 3D WKT table */
     sql = "CREATE TABLE gcoll_3d_wkt (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -32;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -32;
+      }
     sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkt', 'g', -1, 7, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -33;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
 
 /* creating a GeometryCollection 3D WKB table */
     sql = "CREATE TABLE gcoll_3d_wkb (id INTEGER)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -34;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
     sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkb', 'g', -1, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -35;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
 
 /* FDO start-up */
     sql = "SELECT AutoFDOStart()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -36;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -36;
+      }
 
 /* Inserting into pt_2d_wkt */
-    sql = "INSERT INTO fdo_pt_2d_wkt (id, name, value, g) VALUES (1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))";
+    sql =
+	"INSERT INTO fdo_pt_2d_wkt (id, name, value, g) VALUES (1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -37;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -37;
+      }
 
 /* Updating pt_2d_wkt */
-    sql = "UPDATE fdo_pt_2d_wkt SET name = 'beta', value = 0.2, g = GeomFromText('POINT(10 20)', -1) WHERE id = 1";
+    sql =
+	"UPDATE fdo_pt_2d_wkt SET name = 'beta', value = 0.2, g = GeomFromText('POINT(10 20)', -1) WHERE id = 1";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -38;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -38;
+      }
 
 /* Deleting form pt_2d_wkt */
     sql = "DELETE FROM fdo_pt_2d_wkt";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -39;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -39;
+      }
 
 /* Inserting into pt_3d_wkt */
-    sql = "INSERT INTO fdo_pt_3d_wkt (id, pic1, pic2, g) VALUES (1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))";
+    sql =
+	"INSERT INTO fdo_pt_3d_wkt (id, pic1, pic2, g) VALUES (1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -40;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -40;
+      }
 
 /* Updating pt_3d_wkt */
-    sql = "UPDATE fdo_pt_3d_wkt SET pic1 = NULL, pic2 = zeroblob(8), g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1";
+    sql =
+	"UPDATE fdo_pt_3d_wkt SET pic1 = NULL, pic2 = zeroblob(8), g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -41;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -41;
+      }
 
 /* Inserting into pt_2d_wkb */
-    sql = "INSERT INTO fdo_pt_2d_wkb (id, g) VALUES (1, GeomFromText('POINT(1 2)', -1))";
+    sql =
+	"INSERT INTO fdo_pt_2d_wkb (id, g) VALUES (1, GeomFromText('POINT(1 2)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -42;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -42;
+      }
 
 /* Updating pt_2d_wkb */
-    sql = "UPDATE fdo_pt_2d_wkb SET g = GeomFromText('POINT(10 20)', -1) WHERE id = 1";
+    sql =
+	"UPDATE fdo_pt_2d_wkb SET g = GeomFromText('POINT(10 20)', -1) WHERE id = 1";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -43;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -43;
+      }
 
 /* Inserting into pt_3d_wkb */
-    sql = "INSERT INTO fdo_pt_3d_wkb (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))";
+    sql =
+	"INSERT INTO fdo_pt_3d_wkb (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -44;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -44;
+      }
 
 /* Updating pt_3d_wkb */
-    sql = "UPDATE fdo_pt_3d_wkb SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1";
+    sql =
+	"UPDATE fdo_pt_3d_wkb SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -45;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
 
 /* Inserting into pt_3d_spl */
-    sql = "INSERT INTO fdo_pt_3d_spl (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))";
+    sql =
+	"INSERT INTO fdo_pt_3d_spl (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -46;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
 
 /* Updating pt_3d_spl */
-    sql = "UPDATE fdo_pt_3d_spl SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1";
+    sql =
+	"UPDATE fdo_pt_3d_spl SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -47;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
 
 /* Inserting into ln_3d_wkt */
-    sql = "INSERT INTO fdo_ln_3d_wkt (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))";
+    sql =
+	"INSERT INTO fdo_ln_3d_wkt (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -48;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
 
 /* Inserting into ln_3d_wkb */
-    sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))";
+    sql =
+	"INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -49;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -49;
+      }
 
 /* Inserting into ln_3d_wkb */
-    sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (2, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', -1))";
+    sql =
+	"INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (2, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -50;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -50;
+      }
 
 /* Inserting into ln_3d_wkb */
-    sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (3, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', -1))";
+    sql =
+	"INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (3, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -51;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -51;
+      }
 
 /* Inserting into ln_3d_wkb */
-    sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (4, GeomFromText('LINESTRING(1 2, 4 5)', -1))";
+    sql =
+	"INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (4, GeomFromText('LINESTRING(1 2, 4 5)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -52;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -52;
+      }
 
 /* Inserting into pg_3d_wkt */
-    sql = "INSERT INTO fdo_pg_3d_wkt (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))";
+    sql =
+	"INSERT INTO fdo_pg_3d_wkt (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -53;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -53;
+      }
 
 /* Inserting into pg_3d_wkb */
-    sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))";
+    sql =
+	"INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -54;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
 
 /* Inserting into pg_3d_wkb */
-    sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (2, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', -1))";
+    sql =
+	"INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (2, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -55;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
 
 /* Inserting into pg_3d_wkb */
-    sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (3, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', -1))";
+    sql =
+	"INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (3, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -56;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -56;
+      }
 
 /* Inserting into pg_3d_wkb */
-    sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (4, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', -1))";
+    sql =
+	"INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (4, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -57;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -57;
+      }
 
 /* Inserting into mpt_3d_wkt */
-    sql = "INSERT INTO fdo_mpt_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))";
+    sql =
+	"INSERT INTO fdo_mpt_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -58;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -58;
+      }
 
 /* Inserting into mpt_3d_wkb */
-    sql = "INSERT INTO fdo_mpt_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))";
+    sql =
+	"INSERT INTO fdo_mpt_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -59;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -59;
+      }
 
 /* Inserting into mln_3d_wkt */
-    sql = "INSERT INTO fdo_mln_3d_wkt (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))";
+    sql =
+	"INSERT INTO fdo_mln_3d_wkt (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -60;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -60;
+      }
 
 /* Inserting into mln_3d_wkb */
-    sql = "INSERT INTO fdo_mln_3d_wkb (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))";
+    sql =
+	"INSERT INTO fdo_mln_3d_wkb (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -61;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -61;
+      }
 
 /* Inserting into mpg_3d_wkt */
-    sql = "INSERT INTO fdo_mpg_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
+    sql =
+	"INSERT INTO fdo_mpg_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -62;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -62;
+      }
 
 /* Inserting into mpg_3d_wkb */
-    sql = "INSERT INTO fdo_mpg_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
+    sql =
+	"INSERT INTO fdo_mpg_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -63;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -63;
+      }
 
 /* Inserting into gcoll_3d_wkt */
-    sql = "INSERT INTO fdo_gcoll_3d_wkt (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
+    sql =
+	"INSERT INTO fdo_gcoll_3d_wkt (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -64;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -64;
+      }
 
 /* Inserting into gcoll_3d_wkb */
-    sql = "INSERT INTO fdo_gcoll_3d_wkb (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
+    sql =
+	"INSERT INTO fdo_gcoll_3d_wkb (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -65;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -65;
+      }
 
 /* checking MultiPoint 3D WKT */
     sql = "SELECT AsText(g) FROM fdo_mpt_3d_wkt";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -66;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -67;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -68;
-    }
-    if (strcmp(results[1], "MULTIPOINT Z(1 2 3, 4 5 6)") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -69;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -66;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -67;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -68;
+      }
+    if (strcmp (results[1], "MULTIPOINT Z(1 2 3, 4 5 6)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -69;
+      }
     sqlite3_free_table (results);
 
 /* checking MultiLinestring 3D WKT */
     sql = "SELECT AsText(g) FROM fdo_mln_3d_wkt";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -70;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -71;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -72;
-    }
-    if (strcmp(results[1], "MULTILINESTRING Z((1 2 3, 4 5 6), (7 8 9, 10 11 12))") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -73;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -70;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -71;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -72;
+      }
+    if (strcmp
+	(results[1],
+	 "MULTILINESTRING Z((1 2 3, 4 5 6), (7 8 9, 10 11 12))") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -73;
+      }
     sqlite3_free_table (results);
 
 /* checking MultiPolygon 3D WKT */
     sql = "SELECT AsText(g) FROM fdo_mpg_3d_wkt";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -74;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -75;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -76;
-    }
-    if (strcmp(results[1], "MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -77;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -74;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -75;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -76;
+      }
+    if (strcmp
+	(results[1],
+	 "MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -77;
+      }
     sqlite3_free_table (results);
 
 /* checking GeometryCollection 3D WKT */
     sql = "SELECT AsText(g) FROM fdo_gcoll_3d_wkt";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -78;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -79;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -80;
-    }
-    if (strcmp(results[1], "GEOMETRYCOLLECTION Z(POINT Z(10 10 100), LINESTRING Z(5 5 10, 6 6 11), POLYGON Z((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -81;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -78;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -79;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -80;
+      }
+    if (strcmp
+	(results[1],
+	 "GEOMETRYCOLLECTION Z(POINT Z(10 10 100), LINESTRING Z(5 5 10, 6 6 11), POLYGON Z((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -81;
+      }
     sqlite3_free_table (results);
 
 /* dropping an FDO virtual table */
     sql = "DROP TABLE fdo_mpt_3d_wkt";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -82;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -82;
+      }
 
 /* discarding an FDO Geometry column */
     sql = "SELECT DiscardFDOGeometryColumn('fdo_mpt_3d_wkt', 'g')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -83;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -83;
+      }
     sql = "SELECT DiscardFDOGeometryColumn(1, 'g')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -84;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -84;
+      }
     sql = "SELECT DiscardFDOGeometryColumn('mpt_3d_wkt', 2)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -85;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -85;
+      }
 
 /* recovering an FDO Geometry column */
     sql = "SELECT RecoverFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -86;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -86;
+      }
 
 /* FDO shut-down */
     sql = "SELECT AutoFDOStop()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -66;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -66;
+      }
 
     sql = "SELECT AddFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -67;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -67;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -68;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -68;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -69;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -69;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -70;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -70;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -71;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -71;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -72;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -72;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -73;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -73;
+      }
     sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -74;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -74;
+      }
 
     sql = "SELECT RecoverFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -75;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -75;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -76;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -76;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -77;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -77;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -78;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -78;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -79;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -79;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -80;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -80;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -81;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -81;
+      }
     sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -82;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -82;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -83;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -83;
+      }
+
     spatialite_cleanup_ex (cache);
-    
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_fdo3.c b/test/check_fdo3.c
index c66a042..a85c30e 100644
--- a/test/check_fdo3.c
+++ b/test/check_fdo3.c
@@ -57,9 +57,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <geos_c.h>
 #endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_GEOS	/* only if GEOS is supported */
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
@@ -67,124 +68,151 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = system("cp sql_stmt_tests/testFGF.sqlite testFGF.sqlite");
+    ret = system ("cp sql_stmt_tests/testFGF.sqlite testFGF.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy testFGF.sqlite database\n");
-        return -1001;
-    }
-    ret = sqlite3_open_v2 ("testFGF.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open testFGF.sqlite db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1000;
-    }
+      {
+	  fprintf (stderr, "cannot copy testFGF.sqlite database\n");
+	  return -1001;
+      }
+    ret =
+	sqlite3_open_v2 ("testFGF.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open testFGF.sqlite db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1000;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
 /* FDO start-up */
     sql = "SELECT AutoFDOStart()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -1;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -1;
+      }
 
 /* testing aggregate Union() Point FGF "HouseNumbers" */
-    sql = "SELECT AsText(ST_Union(Geometry)) FROM fdo_HouseNumbers WHERE TEXT_LABEL LIKE '11%'";
+    sql =
+	"SELECT AsText(ST_Union(Geometry)) FROM fdo_HouseNumbers WHERE TEXT_LABEL LIKE '11%'";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -2;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -3;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -4;
-    }
-    if (strcmp(results[1], "MULTIPOINT(430417.1 5448290.9, 430666.6 5448125.4)") != 0) {        
-      	    fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]);
-        return -5;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -3;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -4;
+      }
+    if (strcmp
+	(results[1], "MULTIPOINT(430417.1 5448290.9, 430666.6 5448125.4)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result |%s|\n",
+		   results[1]);
+	  return -5;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(GLength()) Linestring FGF "Centrerlines" */
     sql = "SELECT Sum(GLength(Geometry)) FROM fdo_Centerlines";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -7;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -8;
-    }
-    if (strncmp(results[1], "895.3351", 7) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -9;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -7;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -8;
+      }
+    if (strncmp (results[1], "895.3351", 7) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -9;
+      }
     sqlite3_free_table (results);
 
 /* testing Sum(Area()) Polygon FGF "AssessmentParcels" */
     sql = "SELECT Sum(Area(Geometry)) FROM fdo_AssessmentParcels";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -11;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -12;
-    }
-    if (strncmp(results[1], "9022.1792", 9) != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -13;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -11;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -12;
+      }
+    if (strncmp (results[1], "9022.1792", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -13;
+      }
     sqlite3_free_table (results);
 
 /* FDO shut-down */
     sql = "SELECT AutoFDOStop()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -15;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -15;
+      }
+
     spatialite_cleanup_ex (cache);
-    ret = unlink("testFGF.sqlite");
+    ret = unlink ("testFGF.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove testFGF database\n");
-        return -16;
-    }
-#endif	/* end GEOS conditional */
-    
+      {
+	  fprintf (stderr, "cannot remove testFGF database\n");
+	  return -16;
+      }
+#endif /* end GEOS conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_fdo_bufovflw.c b/test/check_fdo_bufovflw.c
index ffc4c5a..5eb9624 100644
--- a/test/check_fdo_bufovflw.c
+++ b/test/check_fdo_bufovflw.c
@@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -62,238 +63,283 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
 /* FDO initialization */
     sql = "SELECT InitFDOSpatialMetadata()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -2;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
 
 /* setting up very long table and column names */
-    suffix = malloc(suffix_len);
-    memset(suffix, 'z', suffix_len);  
-    suffix[suffix_len-1] = '\0';
+    suffix = malloc (suffix_len);
+    memset (suffix, 'z', suffix_len);
+    suffix[suffix_len - 1] = '\0';
 
-    pt_2d_wkt = sqlite3_mprintf("pt_2d_wkt_%s", suffix);
-    pt_3d_wkt = sqlite3_mprintf("pt_3d_wkt_%s", suffix);
-    geometry = sqlite3_mprintf("geometry_%s", suffix);
+    pt_2d_wkt = sqlite3_mprintf ("pt_2d_wkt_%s", suffix);
+    pt_3d_wkt = sqlite3_mprintf ("pt_3d_wkt_%s", suffix);
+    geometry = sqlite3_mprintf ("geometry_%s", suffix);
 
 /* creating a Point 2D WKT table */
-    sql = sqlite3_mprintf("CREATE TABLE %s (id INTEGER, name TEXT, value DOUBLE)", pt_2d_wkt);
+    sql =
+	sqlite3_mprintf
+	("CREATE TABLE %s (id INTEGER, name TEXT, value DOUBLE)", pt_2d_wkt);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -3;
-    }
-    sql = sqlite3_mprintf( "SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 2, 'WKT')", pt_2d_wkt, geometry);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+    sql =
+	sqlite3_mprintf ("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 2, 'WKT')",
+			 pt_2d_wkt, geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
 
 /* creating a Point 3D WKT table */
-    sql = sqlite3_mprintf("CREATE TABLE %s (id INTEGER, pic1 BLOB, pic2 BLOB)", pt_3d_wkt);
+    sql =
+	sqlite3_mprintf ("CREATE TABLE %s (id INTEGER, pic1 BLOB, pic2 BLOB)",
+			 pt_3d_wkt);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    } 
-    sql = sqlite3_mprintf("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    sql =
+	sqlite3_mprintf ("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')",
+			 pt_3d_wkt, geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
 
 /* FDO start-up */
     sql = "SELECT AutoFDOStart()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
 
 /* Inserting into pt_2d_wkt */
-    sql = sqlite3_mprintf("INSERT INTO %s (id, name, value, %s) VALUES "
-                          "(1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))", 
-                          pt_2d_wkt, geometry);
+    sql = sqlite3_mprintf ("INSERT INTO %s (id, name, value, %s) VALUES "
+			   "(1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))",
+			   pt_2d_wkt, geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
 
 /* Inserting (take two) into pt_2d_wkt */
-    sql = sqlite3_mprintf("INSERT INTO %s (id, name, value, %s) VALUES "
-                          "(2, 'beta', 0.2, GeomFromText('POINT(2 3)', -1))", 
-                          pt_2d_wkt, geometry);
+    sql = sqlite3_mprintf ("INSERT INTO %s (id, name, value, %s) VALUES "
+			   "(2, 'beta', 0.2, GeomFromText('POINT(2 3)', -1))",
+			   pt_2d_wkt, geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
 /* Updating pt_2d_wkt */
-    sql = sqlite3_mprintf("UPDATE %s SET name = 'beta', value = 0.2, "
-                          "%s = GeomFromText('POINT(10 20)', -1) WHERE id = 1",
-                          pt_2d_wkt, geometry);
+    sql = sqlite3_mprintf ("UPDATE %s SET name = 'beta', value = 0.2, "
+			   "%s = GeomFromText('POINT(10 20)', -1) WHERE id = 1",
+			   pt_2d_wkt, geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
 
 /* Deleting form pt_2d_wkt */
-    sql = sqlite3_mprintf("DELETE FROM %s WHERE id = 1", pt_2d_wkt);
+    sql = sqlite3_mprintf ("DELETE FROM %s WHERE id = 1", pt_2d_wkt);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
 
 /* Inserting into pt_3d_wkt */
-    sql = sqlite3_mprintf("INSERT INTO %s (id, pic1, pic2, %s) VALUES "
-                          "(1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))",
-                          pt_3d_wkt, geometry);
+    sql = sqlite3_mprintf ("INSERT INTO %s (id, pic1, pic2, %s) VALUES "
+			   "(1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))",
+			   pt_3d_wkt, geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
 
 /* checking pt_2d_wkt */
-    sql = sqlite3_mprintf("SELECT AsText(%s) FROM %s", geometry, pt_2d_wkt);
+    sql = sqlite3_mprintf ("SELECT AsText(%s) FROM %s", geometry, pt_2d_wkt);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -14;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -15;
-    }
-    if (strcmp(results[1], "POINT(2 3)") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -16;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -14;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -15;
+      }
+    if (strcmp (results[1], "POINT(2 3)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -16;
+      }
     sqlite3_free_table (results);
 
 /* checking pt_3d_wkt */
-    sql = sqlite3_mprintf("SELECT AsText(%s) FROM %s", geometry, pt_3d_wkt);
+    sql = sqlite3_mprintf ("SELECT AsText(%s) FROM %s", geometry, pt_3d_wkt);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -18;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -19;
-    }
-    if (strcmp(results[1], "POINT Z(1 2 3)") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -20;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -18;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -19;
+      }
+    if (strcmp (results[1], "POINT Z(1 2 3)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -20;
+      }
     sqlite3_free_table (results);
 
 /* dropping an FDO virtual table */
-    sql = sqlite3_mprintf("DROP TABLE %s", pt_2d_wkt);
+    sql = sqlite3_mprintf ("DROP TABLE %s", pt_2d_wkt);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
 
 /* discarding an FDO Geometry column */
-    sql = sqlite3_mprintf("SELECT DiscardFDOGeometryColumn(%Q, %Q)", pt_3d_wkt, geometry);
+    sql =
+	sqlite3_mprintf ("SELECT DiscardFDOGeometryColumn(%Q, %Q)", pt_3d_wkt,
+			 geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -22;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
 
 /* recovering an FDO Geometry column */
-    sql = sqlite3_mprintf("SELECT RecoverFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry);
+    sql =
+	sqlite3_mprintf
+	("SELECT RecoverFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt,
+	 geometry);
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -23;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
 
 /* FDO shut-down */
     sql = "SELECT AutoFDOStop()";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -24;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -25;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -25;
+      }
+
     spatialite_cleanup_ex (cache);
 
-    sqlite3_free(pt_2d_wkt);
-    sqlite3_free(pt_3d_wkt);
-    sqlite3_free(geometry);
-    free(suffix);
-    
+    sqlite3_free (pt_2d_wkt);
+    sqlite3_free (pt_3d_wkt);
+    sqlite3_free (geometry);
+    free (suffix);
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_gaia_utf8.c b/test/check_gaia_utf8.c
index cff116e..5fda3b9 100644
--- a/test/check_gaia_utf8.c
+++ b/test/check_gaia_utf8.c
@@ -56,65 +56,77 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "asprintf4win.h"
 #endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
-    void * converter;
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
+    void *converter;
     char *test_str1;
     int err;
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    asprintf(&test_str1, "Hello World");
-    gaiaConvertCharset(&test_str1, "ASCII", "UTF-8");
-    if (strcmp(test_str1, "Hello World") != 0) {
-	fprintf(stderr, "bad ASCII to UTF-8 conversion: %s\n", test_str1);
-	free(test_str1);
-	return -1;
-    }
-    free(test_str1);
+    asprintf (&test_str1, "Hello World");
+    gaiaConvertCharset (&test_str1, "ASCII", "UTF-8");
+    if (strcmp (test_str1, "Hello World") != 0)
+      {
+	  fprintf (stderr, "bad ASCII to UTF-8 conversion: %s\n", test_str1);
+	  free (test_str1);
+	  return -1;
+      }
+    free (test_str1);
 
 #if 0
     /* TODO: this will cause a buffer overflow */
-    asprintf(&test_str1, "Hello World");
-    gaiaConvertCharset(&test_str1, "ASCII", "UTF-16LE");
-    if (memcmp(test_str1, "H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0", 24) != 0) {
-	fprintf(stderr, "bad ASCII to UTF-16LE conversion\n");
-	free(test_str1);
-	return -2;
-    }
-    free(test_str1);
+    asprintf (&test_str1, "Hello World");
+    gaiaConvertCharset (&test_str1, "ASCII", "UTF-16LE");
+    if (memcmp (test_str1, "H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0", 24) != 0)
+      {
+	  fprintf (stderr, "bad ASCII to UTF-16LE conversion\n");
+	  free (test_str1);
+	  return -2;
+      }
+    free (test_str1);
 #endif
 
     converter = gaiaCreateUTF8Converter ("CP1252");
-    if (! converter) {
-	fprintf(stderr, "null UTF8 converter\n");
-	return -3;
-    }
-    
-    test_str1 = gaiaConvertToUTF8(converter, "Hello world", strlen("Hello world"), &err);
-    if (memcmp("Hello world", test_str1, strlen("Hello world") + 1) != 0) {
-	fprintf(stderr, "bad conversion to UTF8: %s\n", test_str1);
-	free(test_str1);
-	return -4;
-    }
-    free(test_str1);
-    
+    if (!converter)
+      {
+	  fprintf (stderr, "null UTF8 converter\n");
+	  return -3;
+      }
+
+    test_str1 =
+	gaiaConvertToUTF8 (converter, "Hello world", strlen ("Hello world"),
+			   &err);
+    if (memcmp ("Hello world", test_str1, strlen ("Hello world") + 1) != 0)
+      {
+	  fprintf (stderr, "bad conversion to UTF8: %s\n", test_str1);
+	  free (test_str1);
+	  return -4;
+      }
+    free (test_str1);
+
     gaiaFreeUTF8Converter (converter);
     converter = NULL;
     /* test null converter */
     gaiaFreeUTF8Converter (converter);
-    
-    test_str1 = gaiaConvertToUTF8(converter, "Hello world", strlen("Hello world"), &err);
-    if ((test_str1 != NULL) || (err != 1)) {
-	fprintf(stderr, "unexpected null converter result: %s, %i\n", test_str1, err);
-	return -5;
-    }
+
+    test_str1 =
+	gaiaConvertToUTF8 (converter, "Hello world", strlen ("Hello world"),
+			   &err);
+    if ((test_str1 != NULL) || (err != 1))
+      {
+	  fprintf (stderr, "unexpected null converter result: %s, %i\n",
+		   test_str1, err);
+	  return -5;
+      }
 
     /* there is no sane way to test this automatically */
-    printf("Local codeset: %s\n", gaiaGetLocaleCharset() );
-#endif	/* end ICONV conditional */
+    printf ("Local codeset: %s\n", gaiaGetLocaleCharset ());
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_gaia_util.c b/test/check_gaia_util.c
index 44601d0..0609a74 100644
--- a/test/check_gaia_util.c
+++ b/test/check_gaia_util.c
@@ -54,7 +54,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "asprintf4win.h"
 #endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int result;
     char *test_str1;
@@ -62,355 +63,427 @@ int main (int argc, char *argv[])
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
-    
+
     result = gaiaIsReservedSqliteName ("AUTOINCREMENT");
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result);
-	return -1;
-    }
+    if (!result)
+      {
+	  fprintf (stderr,
+		   "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n",
+		   result);
+	  return -1;
+      }
 
     result = gaiaIsReservedSqliteName ("AUTOINCREMEN");
-    if (result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMEN: %i\n", result);
-	return -2;
-    }
+    if (result)
+      {
+	  fprintf (stderr,
+		   "gaiaIsReservedSqliteName() fail for AUTOINCREMEN: %i\n",
+		   result);
+	  return -2;
+      }
 
     result = gaiaIsReservedSqliteName ("AUTOINCREMENTED");
-    if (result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result);
-	return -3;
-    }
+    if (result)
+      {
+	  fprintf (stderr,
+		   "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n",
+		   result);
+	  return -3;
+      }
 
     result = gaiaIsReservedSqliteName ("foo");
-    if (result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for foo: %i\n", result);
-	return -4;
-    }
-
-    result = gaiaIsReservedSqliteName ("ALL"); /* first item */
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for ALL: %i\n", result);
-	return -5;
-    }
-
-    result = gaiaIsReservedSqliteName ("WHERE"); /* last item */
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for WHERE: %i\n", result);
-	return -6;
-    }
- 
+    if (result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqliteName() fail for foo: %i\n",
+		   result);
+	  return -4;
+      }
+
+    result = gaiaIsReservedSqliteName ("ALL");	/* first item */
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqliteName() fail for ALL: %i\n",
+		   result);
+	  return -5;
+      }
+
+    result = gaiaIsReservedSqliteName ("WHERE");	/* last item */
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqliteName() fail for WHERE: %i\n",
+		   result);
+	  return -6;
+      }
+
     result = gaiaIsReservedSqliteName ("autoincrement");
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqliteName() fail for autoincrement: %i\n", result);
-	return -7;
-    }
- 
+    if (!result)
+      {
+	  fprintf (stderr,
+		   "gaiaIsReservedSqliteName() fail for autoincrement: %i\n",
+		   result);
+	  return -7;
+      }
+
     result = gaiaIsReservedSqlName ("SELECT");
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for SELECT: %i\n", result);
-	return -8;
-    }
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for SELECT: %i\n",
+		   result);
+	  return -8;
+      }
 
     result = gaiaIsReservedSqlName ("select");
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for select: %i\n", result);
-	return -9;
-    }
- 
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for select: %i\n",
+		   result);
+	  return -9;
+      }
+
     result = gaiaIsReservedSqlName ("foo");
-    if (result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for foo: %i\n", result);
-	return -10;
-    }
+    if (result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for foo: %i\n",
+		   result);
+	  return -10;
+      }
 
     result = gaiaIsReservedSqlName ("ABSOLUTE");
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for ABSOLUTE: %i\n", result);
-	return -11;
-    }
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for ABSOLUTE: %i\n",
+		   result);
+	  return -11;
+      }
 
     result = gaiaIsReservedSqlName ("ZONE");
-    if (!result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for ZONE: %i\n", result);
-	return -12;
-    }
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for ZONE: %i\n",
+		   result);
+	  return -12;
+      }
 
     result = gaiaIsReservedSqlName ("SELECTED");
-    if (result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for SELECTED: %i\n", result);
-	return -13;
-    }
- 
+    if (result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for SELECTED: %i\n",
+		   result);
+	  return -13;
+      }
+
     result = gaiaIsReservedSqlName ("SELEC");
-    if (result) {
-	fprintf(stderr, "gaiaIsReservedSqlName() fail for SELEC: %i\n", result);
-	return -14;
-    }
-
-    result = gaiaIllegalSqlName(NULL);
-    if (!result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for (NULL): %i\n", result);
-	return -15;
-    }
-
-    result = gaiaIllegalSqlName("a");
-    if (result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for a: %i\n", result);
-	return -16;
-    }
-    result = gaiaIllegalSqlName("-");
-    if (!result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for -: %i\n", result);
-	return -17;
-    }
-    result = gaiaIllegalSqlName("AbbcdE0187r");
-    if (result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r: %i\n", result);
-	return -18;
-    }
-    result = gaiaIllegalSqlName("AbbcdE0187+");
-    if (!result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r+: %i\n", result);
-	return -19;
-    }
-    result = gaiaIllegalSqlName("");
-    if (!result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result);
-	return -20;
-    }
-    result = gaiaIllegalSqlName("_ABCedFg");
-    if (!result) {
-	fprintf(stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result);
-	return -21;
-    }
-
-    asprintf(&test_str1, "SELECT %s from %s;", "Foo", "Bar");
-    gaiaCleanSqlString(test_str1);
-    if (strcmp(test_str1, "SELECT Foo from Bar;") != 0) {
-	fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
-	free(test_str1);
-	return -22;
-    }
-    free(test_str1);
-
-    asprintf(&test_str1, "SELECT %s from %s;           ", "Foo", "Bar");
-    gaiaCleanSqlString(test_str1);
-    if (strcmp(test_str1, "SELECT Foo from Bar;") != 0) {
-	fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
-	free(test_str1);
-	return -23;
-    }
-    free(test_str1);
-
-    asprintf(&test_str1, "SELECT %s from %s;           ", "Foo", "'");
-    gaiaCleanSqlString(test_str1);
-    if (strcmp(test_str1, "SELECT Foo from '';") != 0) {
-	fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
-	free(test_str1);
-	return -24;
-    }
-    free(test_str1);
+    if (result)
+      {
+	  fprintf (stderr, "gaiaIsReservedSqlName() fail for SELEC: %i\n",
+		   result);
+	  return -14;
+      }
+
+    result = gaiaIllegalSqlName (NULL);
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for (NULL): %i\n",
+		   result);
+	  return -15;
+      }
+
+    result = gaiaIllegalSqlName ("a");
+    if (result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for a: %i\n", result);
+	  return -16;
+      }
+    result = gaiaIllegalSqlName ("-");
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for -: %i\n", result);
+	  return -17;
+      }
+    result = gaiaIllegalSqlName ("AbbcdE0187r");
+    if (result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r: %i\n",
+		   result);
+	  return -18;
+      }
+    result = gaiaIllegalSqlName ("AbbcdE0187+");
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r+: %i\n",
+		   result);
+	  return -19;
+      }
+    result = gaiaIllegalSqlName ("");
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for (empty): %i\n",
+		   result);
+	  return -20;
+      }
+    result = gaiaIllegalSqlName ("_ABCedFg");
+    if (!result)
+      {
+	  fprintf (stderr, "gaiaIllegalSqlName() fail for (empty): %i\n",
+		   result);
+	  return -21;
+      }
+
+    asprintf (&test_str1, "SELECT %s from %s;", "Foo", "Bar");
+    gaiaCleanSqlString (test_str1);
+    if (strcmp (test_str1, "SELECT Foo from Bar;") != 0)
+      {
+	  fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
+	  free (test_str1);
+	  return -22;
+      }
+    free (test_str1);
+
+    asprintf (&test_str1, "SELECT %s from %s;           ", "Foo", "Bar");
+    gaiaCleanSqlString (test_str1);
+    if (strcmp (test_str1, "SELECT Foo from Bar;") != 0)
+      {
+	  fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
+	  free (test_str1);
+	  return -23;
+      }
+    free (test_str1);
+
+    asprintf (&test_str1, "SELECT %s from %s;           ", "Foo", "'");
+    gaiaCleanSqlString (test_str1);
+    if (strcmp (test_str1, "SELECT Foo from '';") != 0)
+      {
+	  fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
+	  free (test_str1);
+	  return -24;
+      }
+    free (test_str1);
 
 #if 0
     /* TODO: This will cause a buffer overflow */
-    asprintf(&test_str1, "SELECT %s from %s;", "Foo", "'");
-    gaiaCleanSqlString(test_str1);
-    if (strcmp(test_str1, "SELECT Foo from '';") != 0) {
-	fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
-	free(test_str1);
-	return -25;
-    }
-    free(test_str1);
+    asprintf (&test_str1, "SELECT %s from %s;", "Foo", "'");
+    gaiaCleanSqlString (test_str1);
+    if (strcmp (test_str1, "SELECT Foo from '';") != 0)
+      {
+	  fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
+	  free (test_str1);
+	  return -25;
+      }
+    free (test_str1);
 #endif
 
-    asprintf(&test_str1, "           ");
-    gaiaCleanSqlString(test_str1);
-    if (strcmp(test_str1, "") != 0) {
-	fprintf(stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
-	free(test_str1);
-	return -26;
-    }
-    free(test_str1);
-
-    asprintf(&test_str1, "SELECT %s from %s;", "Foo", "Bar");
-    quoted_str = gaiaSingleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "SELECT Foo from Bar;") != 0) {
-	fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -27;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "SELECT %s from %s;           ", "Foo", "Bar");
-    quoted_str = gaiaSingleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "SELECT Foo from Bar;") != 0) {
-	fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -28;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "SELECT %s from %s;", "Foo", "'");
-    quoted_str = gaiaSingleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "SELECT Foo from '';") != 0) {
-	fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -29;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "SELECT %s from %s   ;    ", "Foo", "Bar");
-    quoted_str = gaiaSingleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "SELECT Foo from Bar   ;") != 0) {
-	fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -30;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "SELECT %s from %s;", "'", "Bar");
-    quoted_str = gaiaSingleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "SELECT '' from Bar;") != 0) {
-	fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -31;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "My Name");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "My Name") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -32;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    quoted_str = gaiaDoubleQuotedSql(NULL);
-    if (quoted_str != NULL) {
-	fprintf(stderr, "gaiaDoubleQuotedSql NULL failure: %s\n", quoted_str);
-	free(quoted_str);
-	return -33;
-    }
-
-    quoted_str = gaiaSingleQuotedSql(NULL);
-    if (quoted_str != NULL) {
-	fprintf(stderr, "gaiaSingleQuotedSql NULL failure: %s\n", quoted_str);
-	free(quoted_str);
-	return -34;
-    }
-
-    quoted_str = gaiaQuotedSql("foo", GAIA_SQL_SINGLE_QUOTE);
-    if (strcmp(quoted_str, "foo") != 0) {
-	fprintf(stderr, "gaiaQuotedSql failure SINGLE_QUOTE: %s\n", quoted_str);
-	free(quoted_str);
-	return -35;
-    }
-    free(quoted_str);
-
-    quoted_str = gaiaQuotedSql("foo", GAIA_SQL_DOUBLE_QUOTE);
-    if (strcmp(quoted_str, "foo") != 0) {
-	fprintf(stderr, "gaiaQuotedSql failure DOUBLE_QUOTE: %s\n", quoted_str);
-	free(quoted_str);
-	return -36;
-    }
-    free(quoted_str);
-
-    quoted_str = gaiaQuotedSql("foo", 1000);
-    if (quoted_str != NULL) {
-	fprintf(stderr, "gaiaQuotedSql failure 1000: %s\n", quoted_str);
-	free(quoted_str);
-	return -37;
-    }
-
-    asprintf(&test_str1, "My \"Name");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "My \"\"Name") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -38;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "My \"Name                   ");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "My \"\"Name") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -39;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "%s", "");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -40;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "          ");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: |%s|\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -41;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "'          ");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "'") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -42;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "'");
-    quoted_str = gaiaDoubleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "'") != 0) {
-	fprintf(stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -43;
-    }
-    free(test_str1);
-    free(quoted_str);
-
-    asprintf(&test_str1, "\"");
-    quoted_str = gaiaSingleQuotedSql(test_str1);
-    if (strcmp(quoted_str, "\"") != 0) {
-	fprintf(stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
-	free(test_str1);
-	free(quoted_str);
-	return -44;
-    }
-    free(test_str1);
-    free(quoted_str);
-
+    asprintf (&test_str1, "           ");
+    gaiaCleanSqlString (test_str1);
+    if (strcmp (test_str1, "") != 0)
+      {
+	  fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1);
+	  free (test_str1);
+	  return -26;
+      }
+    free (test_str1);
+
+    asprintf (&test_str1, "SELECT %s from %s;", "Foo", "Bar");
+    quoted_str = gaiaSingleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "SELECT Foo from Bar;") != 0)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -27;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "SELECT %s from %s;           ", "Foo", "Bar");
+    quoted_str = gaiaSingleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "SELECT Foo from Bar;") != 0)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -28;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "SELECT %s from %s;", "Foo", "'");
+    quoted_str = gaiaSingleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "SELECT Foo from '';") != 0)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -29;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "SELECT %s from %s   ;    ", "Foo", "Bar");
+    quoted_str = gaiaSingleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "SELECT Foo from Bar   ;") != 0)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -30;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "SELECT %s from %s;", "'", "Bar");
+    quoted_str = gaiaSingleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "SELECT '' from Bar;") != 0)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -31;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "My Name");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "My Name") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -32;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    quoted_str = gaiaDoubleQuotedSql (NULL);
+    if (quoted_str != NULL)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql NULL failure: %s\n",
+		   quoted_str);
+	  free (quoted_str);
+	  return -33;
+      }
+
+    quoted_str = gaiaSingleQuotedSql (NULL);
+    if (quoted_str != NULL)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql NULL failure: %s\n",
+		   quoted_str);
+	  free (quoted_str);
+	  return -34;
+      }
+
+    quoted_str = gaiaQuotedSql ("foo", GAIA_SQL_SINGLE_QUOTE);
+    if (strcmp (quoted_str, "foo") != 0)
+      {
+	  fprintf (stderr, "gaiaQuotedSql failure SINGLE_QUOTE: %s\n",
+		   quoted_str);
+	  free (quoted_str);
+	  return -35;
+      }
+    free (quoted_str);
+
+    quoted_str = gaiaQuotedSql ("foo", GAIA_SQL_DOUBLE_QUOTE);
+    if (strcmp (quoted_str, "foo") != 0)
+      {
+	  fprintf (stderr, "gaiaQuotedSql failure DOUBLE_QUOTE: %s\n",
+		   quoted_str);
+	  free (quoted_str);
+	  return -36;
+      }
+    free (quoted_str);
+
+    quoted_str = gaiaQuotedSql ("foo", 1000);
+    if (quoted_str != NULL)
+      {
+	  fprintf (stderr, "gaiaQuotedSql failure 1000: %s\n", quoted_str);
+	  free (quoted_str);
+	  return -37;
+      }
+
+    asprintf (&test_str1, "My \"Name");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "My \"\"Name") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -38;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "My \"Name                   ");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "My \"\"Name") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -39;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "%s", "");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -40;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "          ");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: |%s|\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -41;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "'          ");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "'") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -42;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "'");
+    quoted_str = gaiaDoubleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "'") != 0)
+      {
+	  fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -43;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    asprintf (&test_str1, "\"");
+    quoted_str = gaiaSingleQuotedSql (test_str1);
+    if (strcmp (quoted_str, "\"") != 0)
+      {
+	  fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str);
+	  free (test_str1);
+	  free (quoted_str);
+	  return -44;
+      }
+    free (test_str1);
+    free (quoted_str);
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_geom_aux.c b/test/check_geom_aux.c
index e71b012..8829fa7 100644
--- a/test/check_geom_aux.c
+++ b/test/check_geom_aux.c
@@ -50,7 +50,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include <spatialite/gaiageo.h>
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -80,922 +81,984 @@ int main (int argc, char *argv[])
     double max;
     int cnt;
     gaiaOutBuffer wkt;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1000;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1000;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
     gaiaOutBufferInitialize (&wkt);
 
 /* testing Dynamic Line */
-    dyn = gaiaAllocDynamicLine();
-    pt1 = gaiaAppendPointToDynamicLine(dyn, 1.0, 2.0);
-    pt2 = gaiaAppendPointToDynamicLine(dyn, 10.0, 11.0);
-    gaiaDynamicLineInsertAfter(dyn, pt1, 2.0, 3.0);
-    gaiaDynamicLineInsertBefore(dyn, pt2, 9.0, 10.0);
-    gaiaAppendPointToDynamicLine(dyn, 11.0, 12.0);
-    gaiaDynamicLineDeletePoint(dyn, pt2);
-    dyn2 = gaiaCloneDynamicLine(dyn);
-    dyn3 = gaiaReverseDynamicLine(dyn2);
-   
+    dyn = gaiaAllocDynamicLine ();
+    pt1 = gaiaAppendPointToDynamicLine (dyn, 1.0, 2.0);
+    pt2 = gaiaAppendPointToDynamicLine (dyn, 10.0, 11.0);
+    gaiaDynamicLineInsertAfter (dyn, pt1, 2.0, 3.0);
+    gaiaDynamicLineInsertBefore (dyn, pt2, 9.0, 10.0);
+    gaiaAppendPointToDynamicLine (dyn, 11.0, 12.0);
+    gaiaDynamicLineDeletePoint (dyn, pt2);
+    dyn2 = gaiaCloneDynamicLine (dyn);
+    dyn3 = gaiaReverseDynamicLine (dyn2);
+
     pt = dyn3->First;
     cnt = 0;
     while (pt)
-    {
-    /* testing result */
-	switch (cnt)
-        {
-            case 0:
-                if (pt->X != 11.0 || pt->Y != 12.0)
-                {
-                    fprintf(stderr, "ReverseDynamicLine: unexpected result (0)\n");
-                    return -1;
-                }
-                break; 
-            case 1:
-                if (pt->X != 9.0 || pt->Y != 10.0)
-                {
-                    fprintf(stderr, "ReverseDynamicLine: unexpected result (1)\n");
-                    return -3;
-                }
-                break; 
-            case 2:
-                if (pt->X != 2.0 || pt->Y != 3.0)
-                {
-                    fprintf(stderr, "ReverseDynamicLine: unexpected result (2)\n");
-                    return -4;
-                }
-                break; 
-            case 3:
-                if (pt->X != 1.0 || pt->Y != 2.0)
-                {
-                    fprintf(stderr, "ReverseDynamicLine: unexpected result (3)\n");
-                    return -5;
-                }
-                break; 
-            default:
-                fprintf(stderr, "ReverseDynamicLine: Point count > 4\n");
-                return -6;
-        };
-        cnt++;
-        pt = pt->Next;
-    }
-   
-    gaiaFreeDynamicLine(dyn3);
-    gaiaFreeDynamicLine(dyn2);
+      {
+	  /* testing result */
+	  switch (cnt)
+	    {
+	    case 0:
+		if (pt->X != 11.0 || pt->Y != 12.0)
+		  {
+		      fprintf (stderr,
+			       "ReverseDynamicLine: unexpected result (0)\n");
+		      return -1;
+		  }
+		break;
+	    case 1:
+		if (pt->X != 9.0 || pt->Y != 10.0)
+		  {
+		      fprintf (stderr,
+			       "ReverseDynamicLine: unexpected result (1)\n");
+		      return -3;
+		  }
+		break;
+	    case 2:
+		if (pt->X != 2.0 || pt->Y != 3.0)
+		  {
+		      fprintf (stderr,
+			       "ReverseDynamicLine: unexpected result (2)\n");
+		      return -4;
+		  }
+		break;
+	    case 3:
+		if (pt->X != 1.0 || pt->Y != 2.0)
+		  {
+		      fprintf (stderr,
+			       "ReverseDynamicLine: unexpected result (3)\n");
+		      return -5;
+		  }
+		break;
+	    default:
+		fprintf (stderr, "ReverseDynamicLine: Point count > 4\n");
+		return -6;
+	    };
+	  cnt++;
+	  pt = pt->Next;
+      }
+
+    gaiaFreeDynamicLine (dyn3);
+    gaiaFreeDynamicLine (dyn2);
     xy[0] = 10.0;
     xy[1] = 20.0;
     xy[2] = 11.0;
     xy[3] = 21.0;
     xy[4] = 12.0;
     xy[5] = 22.0;
-    dyn3 = gaiaCreateDynamicLine(xy, 3);
-    dyn2 = gaiaDynamicLineJoinAfter(dyn, pt1, dyn3);
-   
+    dyn3 = gaiaCreateDynamicLine (xy, 3);
+    dyn2 = gaiaDynamicLineJoinAfter (dyn, pt1, dyn3);
+
     pt = dyn2->First;
     cnt = 0;
     while (pt)
-    {
-    /* testing result */
-	switch (cnt)
-        {
-            case 0:
-                if (pt->X != 1.0 || pt->Y != 2.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (0)\n");
-                    return -7;
-                }
-                break; 
-            case 1:
-                if (pt->X != 10.0 || pt->Y != 20.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (1)\n");
-                    return -8;
-                }
-                break; 
-            case 2:
-                if (pt->X != 11.0 || pt->Y != 21.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (2)\n");
-                    return -9;
-                }
-                break; 
-            case 3:
-                if (pt->X != 12.0 || pt->Y != 22.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (3)\n");
-                    return -10;
-                }
-                break;  
-            case 4:
-                if (pt->X != 2.0 || pt->Y != 3.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (4)\n");
-                    return -11;
-                }
-                break; 
-            case 5:
-                if (pt->X != 9.0 || pt->Y != 10.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (5)\n");
-                    return -12;
-                }
-                break; 
-            case 6:
-                if (pt->X != 11.0 || pt->Y != 12.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinAfter: unexpected result (6)\n");
-                    return -13;
-                }
-                break; 
-            default:
-                fprintf(stderr, "DynamicLineJoinAfter: Point count > 7\n");
-                return -14;
-        };
-        cnt++;
-        pt = pt->Next;
-    }
-   
-    gaiaFreeDynamicLine(dyn2);
-    dyn2 = gaiaDynamicLineJoinBefore(dyn, pt1, dyn3);
-   
+      {
+	  /* testing result */
+	  switch (cnt)
+	    {
+	    case 0:
+		if (pt->X != 1.0 || pt->Y != 2.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (0)\n");
+		      return -7;
+		  }
+		break;
+	    case 1:
+		if (pt->X != 10.0 || pt->Y != 20.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (1)\n");
+		      return -8;
+		  }
+		break;
+	    case 2:
+		if (pt->X != 11.0 || pt->Y != 21.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (2)\n");
+		      return -9;
+		  }
+		break;
+	    case 3:
+		if (pt->X != 12.0 || pt->Y != 22.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (3)\n");
+		      return -10;
+		  }
+		break;
+	    case 4:
+		if (pt->X != 2.0 || pt->Y != 3.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (4)\n");
+		      return -11;
+		  }
+		break;
+	    case 5:
+		if (pt->X != 9.0 || pt->Y != 10.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (5)\n");
+		      return -12;
+		  }
+		break;
+	    case 6:
+		if (pt->X != 11.0 || pt->Y != 12.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinAfter: unexpected result (6)\n");
+		      return -13;
+		  }
+		break;
+	    default:
+		fprintf (stderr, "DynamicLineJoinAfter: Point count > 7\n");
+		return -14;
+	    };
+	  cnt++;
+	  pt = pt->Next;
+      }
+
+    gaiaFreeDynamicLine (dyn2);
+    dyn2 = gaiaDynamicLineJoinBefore (dyn, pt1, dyn3);
+
     pt = dyn2->First;
     cnt = 0;
     while (pt)
-    {
-    /* testing result */
-	switch (cnt)
-        {
-            case 0:
-                if (pt->X != 10.0 || pt->Y != 20.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (0)\n");
-                    return -15;
-                }
-                break; 
-            case 1:
-                if (pt->X != 11.0 || pt->Y != 21.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (1)\n");
-                    return -16;
-                }
-                break; 
-            case 2:
-                if (pt->X != 12.0 || pt->Y != 22.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (2)\n");
-                    return -17;
-                }
-                break; 
-            case 3:
-                if (pt->X != 1.0 || pt->Y != 2.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (3)\n");
-                    return -18;
-                }
-                break;  
-            case 4:
-                if (pt->X != 2.0 || pt->Y != 3.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (4)\n");
-                    return -19;
-                }
-                break; 
-            case 5:
-                if (pt->X != 9.0 || pt->Y != 10.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (5)\n");
-                    return -20;
-                }
-                break; 
-            case 6:
-                if (pt->X != 11.0 || pt->Y != 12.0)
-                {
-                    fprintf(stderr, "DynamicLineJoinBefore: unexpected result (6)\n");
-                    return -21;
-                }
-                break; 
-            default:
-                fprintf(stderr, "DynamicLineJoinBefore: Point count > 7\n");
-                return -22;
-        };
-        cnt++;
-        pt = pt->Next;
-    }
-   
-    gaiaFreeDynamicLine(dyn3);
-    gaiaFreeDynamicLine(dyn2);
-    dyn3 = gaiaCloneDynamicLine(dyn);
-    pt1 = gaiaDynamicLineFindByCoords(dyn, 9.0, 10.0);
-    dyn2 = gaiaDynamicLineSplitBefore(dyn, pt1);
-   
+      {
+	  /* testing result */
+	  switch (cnt)
+	    {
+	    case 0:
+		if (pt->X != 10.0 || pt->Y != 20.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (0)\n");
+		      return -15;
+		  }
+		break;
+	    case 1:
+		if (pt->X != 11.0 || pt->Y != 21.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (1)\n");
+		      return -16;
+		  }
+		break;
+	    case 2:
+		if (pt->X != 12.0 || pt->Y != 22.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (2)\n");
+		      return -17;
+		  }
+		break;
+	    case 3:
+		if (pt->X != 1.0 || pt->Y != 2.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (3)\n");
+		      return -18;
+		  }
+		break;
+	    case 4:
+		if (pt->X != 2.0 || pt->Y != 3.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (4)\n");
+		      return -19;
+		  }
+		break;
+	    case 5:
+		if (pt->X != 9.0 || pt->Y != 10.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (5)\n");
+		      return -20;
+		  }
+		break;
+	    case 6:
+		if (pt->X != 11.0 || pt->Y != 12.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineJoinBefore: unexpected result (6)\n");
+		      return -21;
+		  }
+		break;
+	    default:
+		fprintf (stderr, "DynamicLineJoinBefore: Point count > 7\n");
+		return -22;
+	    };
+	  cnt++;
+	  pt = pt->Next;
+      }
+
+    gaiaFreeDynamicLine (dyn3);
+    gaiaFreeDynamicLine (dyn2);
+    dyn3 = gaiaCloneDynamicLine (dyn);
+    pt1 = gaiaDynamicLineFindByCoords (dyn, 9.0, 10.0);
+    dyn2 = gaiaDynamicLineSplitBefore (dyn, pt1);
+
     pt = dyn2->First;
     cnt = 0;
     while (pt)
-    {
-    /* testing result */
-	switch (cnt)
-        {
-            case 0:
-                if (pt->X != 1.0 || pt->Y != 2.0)
-                {
-                    fprintf(stderr, "DynamicLineSplitBefore: unexpected result (0)\n");
-                    return -23;
-                }
-                break; 
-            case 1:
-                if (pt->X != 2.0 || pt->Y != 3.0)
-                {
-                    fprintf(stderr, "DynamicLineSplitBefore: unexpected result (1)\n");
-                    return -24;
-                }
-                break;
-            default:
-                fprintf(stderr, "DynamicLineSplitBefore: Point count > 2\n");
-                return -25;
-        };
-        cnt++;
-        pt = pt->Next;
-    }
-   
-    gaiaFreeDynamicLine(dyn2);
-    gaiaFreeDynamicLine(dyn);
-    pt1 = gaiaDynamicLineFindByPos(dyn3, 1);
-
-    dyn2 = gaiaDynamicLineSplitAfter(dyn3, pt1);
-   
+      {
+	  /* testing result */
+	  switch (cnt)
+	    {
+	    case 0:
+		if (pt->X != 1.0 || pt->Y != 2.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineSplitBefore: unexpected result (0)\n");
+		      return -23;
+		  }
+		break;
+	    case 1:
+		if (pt->X != 2.0 || pt->Y != 3.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineSplitBefore: unexpected result (1)\n");
+		      return -24;
+		  }
+		break;
+	    default:
+		fprintf (stderr, "DynamicLineSplitBefore: Point count > 2\n");
+		return -25;
+	    };
+	  cnt++;
+	  pt = pt->Next;
+      }
+
+    gaiaFreeDynamicLine (dyn2);
+    gaiaFreeDynamicLine (dyn);
+    pt1 = gaiaDynamicLineFindByPos (dyn3, 1);
+
+    dyn2 = gaiaDynamicLineSplitAfter (dyn3, pt1);
+
     pt = dyn2->First;
     cnt = 0;
     while (pt)
-    {
-    /* testing result */
-	switch (cnt)
-        {
-            case 0:
-                if (pt->X != 9.0 || pt->Y != 10.0)
-                {
-                    fprintf(stderr, "DynamicLineSplitAfter: unexpected result (0)\n");
-                    return -26;
-                }
-                break; 
-            case 1:
-                if (pt->X != 11.0 || pt->Y != 12.0)
-                {
-                    fprintf(stderr, "DynamicLineSplitAfter: unexpected result (1)\n");
-                    return -27;
-                }
-                break;
-            default:
-                fprintf(stderr, "DynamicLineSplitAfter: Point count > 2\n");
-                return -28;
-        };
-        cnt++;
-        pt = pt->Next;
-    }
-   
-    gaiaFreeDynamicLine(dyn2);
-    gaiaFreeDynamicLine(dyn3);
+      {
+	  /* testing result */
+	  switch (cnt)
+	    {
+	    case 0:
+		if (pt->X != 9.0 || pt->Y != 10.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineSplitAfter: unexpected result (0)\n");
+		      return -26;
+		  }
+		break;
+	    case 1:
+		if (pt->X != 11.0 || pt->Y != 12.0)
+		  {
+		      fprintf (stderr,
+			       "DynamicLineSplitAfter: unexpected result (1)\n");
+		      return -27;
+		  }
+		break;
+	    default:
+		fprintf (stderr, "DynamicLineSplitAfter: Point count > 2\n");
+		return -28;
+	    };
+	  cnt++;
+	  pt = pt->Next;
+      }
+
+    gaiaFreeDynamicLine (dyn2);
+    gaiaFreeDynamicLine (dyn3);
 
 /* testing Geometry */
-    geom_pt = gaiaAllocGeomColl();
-    gaiaAddPointToGeomColl(geom_pt, 5.0, 5.0);
-    geom1 = gaiaAllocGeomColl();
-    gaiaAddPointToGeomColl(geom1, 15.0, 15.0);
-    ln = gaiaAddLinestringToGeomColl(geom1, 2); 
-    gaiaLineSetPoint(ln, 0, 1.0, 1.0, 0.0, 0.0);
-    gaiaLineSetPoint(ln, 1, 2.0, 2.0, 0.0, 0.0);
-    pg = gaiaAddPolygonToGeomColl(geom1, 5, 0);
+    geom_pt = gaiaAllocGeomColl ();
+    gaiaAddPointToGeomColl (geom_pt, 5.0, 5.0);
+    geom1 = gaiaAllocGeomColl ();
+    gaiaAddPointToGeomColl (geom1, 15.0, 15.0);
+    ln = gaiaAddLinestringToGeomColl (geom1, 2);
+    gaiaLineSetPoint (ln, 0, 1.0, 1.0, 0.0, 0.0);
+    gaiaLineSetPoint (ln, 1, 2.0, 2.0, 0.0, 0.0);
+    pg = gaiaAddPolygonToGeomColl (geom1, 5, 0);
     rng = pg->Exterior;
-    gaiaRingSetPoint(rng, 0, 1.0, 1.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 1, 5.0, 1.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 2, 5.0, 5.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 3, 1.0, 5.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 4, 1.0, 1.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 0, 1.0, 1.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 1, 5.0, 1.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 2, 5.0, 5.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 3, 1.0, 5.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 4, 1.0, 1.0, 0.0, 0.0);
     rng = gaiaAllocRing (5);
-    gaiaRingSetPoint(rng, 0, 2.0, 2.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 1, 3.0, 2.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 2, 3.0, 3.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 3, 2.0, 3.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 4, 2.0, 2.0, 0.0, 0.0);
-    gaiaInsertInteriorRing(pg, rng);
-    gaiaFreeRing(rng);
+    gaiaRingSetPoint (rng, 0, 2.0, 2.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 1, 3.0, 2.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 2, 3.0, 3.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 3, 2.0, 3.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 4, 2.0, 2.0, 0.0, 0.0);
+    gaiaInsertInteriorRing (pg, rng);
+    gaiaFreeRing (rng);
     rng = gaiaAllocRing (5);
-    gaiaRingSetPoint(rng, 0, 3.5, 3.5, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 1, 4.0, 3.5, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 2, 4.0, 4.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 3, 3.5, 4.0, 0.0, 0.0);
-    gaiaRingSetPoint(rng, 4, 3.5, 3.5, 0.0, 0.0);
-    gaiaInsertInteriorRing(pg, rng);
-    gaiaFreeRing(rng);
-    geom2 = gaiaCloneGeomColl(geom1);
-
-    gaiaOutWkt(&wkt, geom2);
+    gaiaRingSetPoint (rng, 0, 3.5, 3.5, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 1, 4.0, 3.5, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 2, 4.0, 4.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 3, 3.5, 4.0, 0.0, 0.0);
+    gaiaRingSetPoint (rng, 4, 3.5, 3.5, 0.0, 0.0);
+    gaiaInsertInteriorRing (pg, rng);
+    gaiaFreeRing (rng);
+    geom2 = gaiaCloneGeomColl (geom1);
+
+    gaiaOutWkt (&wkt, geom2);
     if (wkt.Error || wkt.Buffer == NULL)
-    {
-        fprintf(stderr, "Geom2D: unable to get WKT\n");
-        return -29;
-    }
+      {
+	  fprintf (stderr, "Geom2D: unable to get WKT\n");
+	  return -29;
+      }
     else
-    {
-    /* testing WKT result */
-        if (strcmp(wkt.Buffer, "GEOMETRYCOLLECTION(POINT(15 15), LINESTRING(1 1, 2 2), POLYGON((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0)
-        {
-        /* unexpected result */
-            fprintf(stderr, "Geom2D: unexpected result %s|\n", wkt.Buffer);
-            return -30;
-        }
-        gaiaOutBufferReset (&wkt);
-    }
-
-    gaiaMakeLine(NULL, geom2, &blob, &size);
+      {
+	  /* testing WKT result */
+	  if (strcmp
+	      (wkt.Buffer,
+	       "GEOMETRYCOLLECTION(POINT(15 15), LINESTRING(1 1, 2 2), POLYGON((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))")
+	      != 0)
+	    {
+		/* unexpected result */
+		fprintf (stderr, "Geom2D: unexpected result %s|\n", wkt.Buffer);
+		return -30;
+	    }
+	  gaiaOutBufferReset (&wkt);
+      }
+
+    gaiaMakeLine (NULL, geom2, &blob, &size);
     if (blob)
-        free(blob);
-    gaiaMakeLine(geom_pt, NULL, &blob, &size);
+	free (blob);
+    gaiaMakeLine (geom_pt, NULL, &blob, &size);
     if (blob)
-        free(blob);
-    gaiaMakeLine(geom_pt, geom2, &blob, &size);
+	free (blob);
+    gaiaMakeLine (geom_pt, geom2, &blob, &size);
     if (blob)
-        free(blob);
-    gaiaMakeLine(geom1, geom2, &blob, &size);
+	free (blob);
+    gaiaMakeLine (geom1, geom2, &blob, &size);
     if (blob)
-        free(blob);
-    gaiaFreeGeomColl(geom2);
-    geom2 = gaiaCloneGeomCollPoints(geom1);
+	free (blob);
+    gaiaFreeGeomColl (geom2);
+    geom2 = gaiaCloneGeomCollPoints (geom1);
 
-    gaiaOutWkt(&wkt, geom2);
+    gaiaOutWkt (&wkt, geom2);
     if (wkt.Error || wkt.Buffer == NULL)
-    {
-        fprintf(stderr, "Geom2D Points: unable to get WKT\n");
-        return -30;
-    }
+      {
+	  fprintf (stderr, "Geom2D Points: unable to get WKT\n");
+	  return -30;
+      }
     else
-    {
-    /* testing WKT result */
-        if (strcmp(wkt.Buffer, "MULTIPOINT(15 15)") != 0)
-        {
-        /* unexpected result */
-            fprintf(stderr, "Geom2D Points: unexpected result %s|\n", wkt.Buffer);
-            return -31;
-        }
-        gaiaOutBufferReset (&wkt);
-    }
-
-    gaiaFreeGeomColl(geom2);
-    geom2 = gaiaCloneGeomCollLinestrings(geom1);
-
-    gaiaOutWkt(&wkt, geom2);
+      {
+	  /* testing WKT result */
+	  if (strcmp (wkt.Buffer, "MULTIPOINT(15 15)") != 0)
+	    {
+		/* unexpected result */
+		fprintf (stderr, "Geom2D Points: unexpected result %s|\n",
+			 wkt.Buffer);
+		return -31;
+	    }
+	  gaiaOutBufferReset (&wkt);
+      }
+
+    gaiaFreeGeomColl (geom2);
+    geom2 = gaiaCloneGeomCollLinestrings (geom1);
+
+    gaiaOutWkt (&wkt, geom2);
     if (wkt.Error || wkt.Buffer == NULL)
-    {
-        fprintf(stderr, "Geom2D Lines: unable to get WKT\n");
-        return -32;
-    }
+      {
+	  fprintf (stderr, "Geom2D Lines: unable to get WKT\n");
+	  return -32;
+      }
     else
-    {
-    /* testing WKT result */
-        if (strcmp(wkt.Buffer, "MULTILINESTRING((1 1, 2 2))") != 0)
-        {
-        /* unexpected result */
-            fprintf(stderr, "Geom2D Lines: unexpected result %s|\n", wkt.Buffer);
-            return -33;
-        }
-        gaiaOutBufferReset (&wkt);
-    }
-
-    gaiaFreeGeomColl(geom2);
-    geom2 = gaiaCloneGeomCollPolygons(geom1);
-
-    gaiaOutWkt(&wkt, geom2);
+      {
+	  /* testing WKT result */
+	  if (strcmp (wkt.Buffer, "MULTILINESTRING((1 1, 2 2))") != 0)
+	    {
+		/* unexpected result */
+		fprintf (stderr, "Geom2D Lines: unexpected result %s|\n",
+			 wkt.Buffer);
+		return -33;
+	    }
+	  gaiaOutBufferReset (&wkt);
+      }
+
+    gaiaFreeGeomColl (geom2);
+    geom2 = gaiaCloneGeomCollPolygons (geom1);
+
+    gaiaOutWkt (&wkt, geom2);
     if (wkt.Error || wkt.Buffer == NULL)
-    {
-        fprintf(stderr, "Geom2D Polygons: unable to get WKT\n");
-        return -34;
-    }
+      {
+	  fprintf (stderr, "Geom2D Polygons: unable to get WKT\n");
+	  return -34;
+      }
     else
-    {
-    /* testing WKT result */
-        if (strcmp(wkt.Buffer, "MULTIPOLYGON(((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0)
-        {
-        /* unexpected result */
-            fprintf(stderr, "Geom2D Polygons: unexpected result %s|\n", wkt.Buffer);
-            return -35;
-        }
-        gaiaOutBufferReset (&wkt);
-    }
-
-    gaiaFreeGeomColl(geom2);
-    min = gaiaMeasureLength(geom1->FirstLinestring->DimensionModel,
-      geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points);
+      {
+	  /* testing WKT result */
+	  if (strcmp
+	      (wkt.Buffer,
+	       "MULTIPOLYGON(((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))")
+	      != 0)
+	    {
+		/* unexpected result */
+		fprintf (stderr, "Geom2D Polygons: unexpected result %s|\n",
+			 wkt.Buffer);
+		return -35;
+	    }
+	  gaiaOutBufferReset (&wkt);
+      }
+
+    gaiaFreeGeomColl (geom2);
+    min = gaiaMeasureLength (geom1->FirstLinestring->DimensionModel,
+			     geom1->FirstLinestring->Coords,
+			     geom1->FirstLinestring->Points);
     rng = geom1->FirstPolygon->Exterior;
-    min = gaiaMeasureArea(rng);
-    gaiaRingCentroid(rng, &min, &max);
-    gaiaIsPointOnPolygonSurface(geom1->FirstPolygon, 17.0, 22.0);
-    min = gaiaMinDistance(1.0, 2.0, geom1->FirstLinestring->DimensionModel,
-      geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points);
+    min = gaiaMeasureArea (rng);
+    gaiaRingCentroid (rng, &min, &max);
+    gaiaIsPointOnPolygonSurface (geom1->FirstPolygon, 17.0, 22.0);
+    min = gaiaMinDistance (1.0, 2.0, geom1->FirstLinestring->DimensionModel,
+			   geom1->FirstLinestring->Coords,
+			   geom1->FirstLinestring->Points);
 
 /* cast XYZ */
-    geom2 = gaiaCastGeomCollToXY(geom1);
-    gaiaFreeGeomColl(geom2);
-    geom2 = gaiaCastGeomCollToXYZ(geom1);
-    geom3 = gaiaCloneGeomColl(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollPoints(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollLinestrings(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollPolygons(geom2);
-    gaiaFreeGeomColl(geom3);
+    geom2 = gaiaCastGeomCollToXY (geom1);
+    gaiaFreeGeomColl (geom2);
+    geom2 = gaiaCastGeomCollToXYZ (geom1);
+    geom3 = gaiaCloneGeomColl (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollPoints (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollLinestrings (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollPolygons (geom2);
+    gaiaFreeGeomColl (geom3);
     rng = geom2->FirstPolygon->Exterior;
 
-    min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel,
-      geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points);
+    min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel,
+			     geom2->FirstLinestring->Coords,
+			     geom2->FirstLinestring->Points);
     if (min < 1.41421 || min > 1.41422)
-    {
-    /* unexpected result */
-        fprintf(stderr, "Geom3D Length: unexpected result %1.6f|\n", min);
-        return -36;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "Geom3D Length: unexpected result %1.6f|\n", min);
+	  return -36;
+      }
 
-    min = gaiaMeasureArea(rng);
+    min = gaiaMeasureArea (rng);
     if (min != 16.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "Geom3D Area: unexpected result %1.6f|\n", min);
-        return -37;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "Geom3D Area: unexpected result %1.6f|\n", min);
+	  return -37;
+      }
 
-    gaiaRingCentroid(rng, &min, &max);
+    gaiaRingCentroid (rng, &min, &max);
     if (min != 3.0 || max != 3.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "Geom3D Centroid: unexpected result %1.6f %1.6f|\n", min, max);
-        return -38;
-    }
-
-    cnt = gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0);
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "Geom3D Centroid: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -38;
+      }
+
+    cnt = gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0);
     if (cnt)
-    {
-    /* unexpected result */
-        fprintf(stderr, "Geom3D IsPointOnPolygonSurface: unexpected result %d|\n", cnt);
-        return -39;
-    }
-
-    min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel,
-      geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points);
+      {
+	  /* unexpected result */
+	  fprintf (stderr,
+		   "Geom3D IsPointOnPolygonSurface: unexpected result %d|\n",
+		   cnt);
+	  return -39;
+      }
+
+    min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel,
+			   geom2->FirstLinestring->Coords,
+			   geom2->FirstLinestring->Points);
     if (min < 0.70710 || min > 0.70711)
-    {
-    /* unexpected result */
-        fprintf(stderr, "Geom3D MinDistance: unexpected result %1.6f|\n", min);
-        return -40;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "Geom3D MinDistance: unexpected result %1.6f|\n",
+		   min);
+	  return -40;
+      }
 
-    gaiaFreeGeomColl(geom2);
+    gaiaFreeGeomColl (geom2);
 
 /* cast to XYM */
-    geom2 = gaiaCastGeomCollToXYM(geom1);
-    geom3 = gaiaCloneGeomColl(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollPoints(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollLinestrings(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollPolygons(geom2);
-    gaiaFreeGeomColl(geom3);
-    min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel,
-      geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points);
+    geom2 = gaiaCastGeomCollToXYM (geom1);
+    geom3 = gaiaCloneGeomColl (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollPoints (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollLinestrings (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollPolygons (geom2);
+    gaiaFreeGeomColl (geom3);
+    min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel,
+			     geom2->FirstLinestring->Coords,
+			     geom2->FirstLinestring->Points);
     if (min < 1.41421 || min > 1.41422)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomM Length: unexpected result %1.6f|\n", min);
-        return -41;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomM Length: unexpected result %1.6f|\n", min);
+	  return -41;
+      }
 
     rng = geom2->FirstPolygon->Exterior;
-    min = gaiaMeasureArea(rng);
+    min = gaiaMeasureArea (rng);
     if (min != 16.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomM Area: unexpected result %1.6f|\n", min);
-        return -42;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomM Area: unexpected result %1.6f|\n", min);
+	  return -42;
+      }
 
-    gaiaRingCentroid(rng, &min, &max);
+    gaiaRingCentroid (rng, &min, &max);
     if (min != 3.0 || max != 3.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomM Centroid: unexpected result %1.6f %1.6f|\n", min, max);
-        return -43;
-    }
-
-    gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0);
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomM Centroid: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -43;
+      }
+
+    gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0);
     if (cnt)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomM IsPointOnPolygonSurface: unexpected result %d|\n", cnt);
-        return -44;
-    }
-
-    min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel,
-      geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points);
+      {
+	  /* unexpected result */
+	  fprintf (stderr,
+		   "GeomM IsPointOnPolygonSurface: unexpected result %d|\n",
+		   cnt);
+	  return -44;
+      }
+
+    min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel,
+			   geom2->FirstLinestring->Coords,
+			   geom2->FirstLinestring->Points);
     if (min < 0.70710 || min > 0.70711)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomM MinDistance: unexpected result %1.6f|\n", min);
-        return -45;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomM MinDistance: unexpected result %1.6f|\n",
+		   min);
+	  return -45;
+      }
 
-    gaiaFreeGeomColl(geom2);
+    gaiaFreeGeomColl (geom2);
 
 /* cast to XYZM */
-    geom2 = gaiaCastGeomCollToXYZM(geom1);
-    geom3 = gaiaCloneGeomColl(geom2);
-    gaiaFreeGeomColl(geom3);
-    gaiaMRangeGeometry(geom2, &min, &max);
-    gaiaZRangeGeometry(geom2, &min, &max);
-    geom3 = gaiaCloneGeomCollPoints(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollLinestrings(geom2);
-    gaiaFreeGeomColl(geom3);
-    geom3 = gaiaCloneGeomCollPolygons(geom2);
-    gaiaFreeGeomColl(geom3);
-    min = gaiaMeasureLength(geom2->FirstLinestring->DimensionModel,
-      geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points);
+    geom2 = gaiaCastGeomCollToXYZM (geom1);
+    geom3 = gaiaCloneGeomColl (geom2);
+    gaiaFreeGeomColl (geom3);
+    gaiaMRangeGeometry (geom2, &min, &max);
+    gaiaZRangeGeometry (geom2, &min, &max);
+    geom3 = gaiaCloneGeomCollPoints (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollLinestrings (geom2);
+    gaiaFreeGeomColl (geom3);
+    geom3 = gaiaCloneGeomCollPolygons (geom2);
+    gaiaFreeGeomColl (geom3);
+    min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel,
+			     geom2->FirstLinestring->Coords,
+			     geom2->FirstLinestring->Points);
     if (min < 1.41421 || min > 1.41422)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomZM Length: unexpected result %1.6f|\n", min);
-        return -46;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomZM Length: unexpected result %1.6f|\n", min);
+	  return -46;
+      }
 
     rng = geom2->FirstPolygon->Exterior;
-    min = gaiaMeasureArea(rng);
+    min = gaiaMeasureArea (rng);
     if (min != 16.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomZM Area: unexpected result %1.6f|\n", min);
-        return -47;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomZM Area: unexpected result %1.6f|\n", min);
+	  return -47;
+      }
 
-    gaiaRingCentroid(rng, &min, &max);
+    gaiaRingCentroid (rng, &min, &max);
     if (min != 3.0 || max != 3.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomZM Centroid: unexpected result %1.6f %1.6f|\n", min, max);
-        return -48;
-    }
-
-    gaiaIsPointOnPolygonSurface(geom2->FirstPolygon, 17.0, 22.0);
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomZM Centroid: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -48;
+      }
+
+    gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0);
     if (cnt)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomZM IsPointOnPolygonSurface: unexpected result %d|\n", cnt);
-        return -49;
-    }
-
-    min = gaiaMinDistance(1.0, 2.0, geom2->FirstLinestring->DimensionModel,
-      geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points);
+      {
+	  /* unexpected result */
+	  fprintf (stderr,
+		   "GeomZM IsPointOnPolygonSurface: unexpected result %d|\n",
+		   cnt);
+	  return -49;
+      }
+
+    min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel,
+			   geom2->FirstLinestring->Coords,
+			   geom2->FirstLinestring->Points);
     if (min < 0.70710 || min > 0.70711)
-    {
-    /* unexpected result */
-        fprintf(stderr, "GeomZM MinDistance: unexpected result %1.6f|\n", min);
-        return -50;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "GeomZM MinDistance: unexpected result %1.6f|\n",
+		   min);
+	  return -50;
+      }
 
-    gaiaFreeGeomColl(geom2);
+    gaiaFreeGeomColl (geom2);
 
-    
-    gaiaFreeGeomColl(geom_pt);
-    gaiaFreeGeomColl(geom1);
 
-    gaiaIntersect(&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 20.0); 
+    gaiaFreeGeomColl (geom_pt);
+    gaiaFreeGeomColl (geom1);
+
+    gaiaIntersect (&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 20.0);
     if (min != 5.0 || max != 10.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max);
-        return -51;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -51;
+      }
 
 /* same, reversed line direction */
-    gaiaIntersect(&min, &max, 20.0, 10.0, 0.0, 10.0, 5.0, 20.0, 5.0, 0.0);
+    gaiaIntersect (&min, &max, 20.0, 10.0, 0.0, 10.0, 5.0, 20.0, 5.0, 0.0);
     if (min != 5.0 || max != 10.0)
-    {
-    /* unexpected result */ 
-        fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max);
-        return -52;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -52;
+      }
 
 /* non-intersecting MBRs*/
     min = -20;
     max = -20;
-    gaiaIntersect(&min, &max, 20.0, 12.0, 0.0, 10.0, 25.0, 40.0, 45.0, 40.0);
+    gaiaIntersect (&min, &max, 20.0, 12.0, 0.0, 10.0, 25.0, 40.0, 45.0, 40.0);
     if (min != -20 || max != -20)
-    { 
-    /* unexpected result */ 
-        fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max);  
-        return -53;
-    }
-
-/* Just intersecting */  
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -53;
+      }
+
+/* Just intersecting */
     min = 0;
-    max = 0; 
-    gaiaIntersect(&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 10.0);
+    max = 0;
+    gaiaIntersect (&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 10.0);
     if (min != 5.0 || max != 10.0)
-    {
-    /* unexpected result */
-        fprintf(stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max);
-        return -54;
-    }
+      {
+	  /* unexpected result */
+	  fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n",
+		   min, max);
+	  return -54;
+      }
 
 /* cloning a Linestring XY */
-    line1 = gaiaAllocLinestring(4);
-    gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1);
-    gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2);
-    gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3);
-    gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER);
-    gaiaFreeLinestring(line2);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER);
-    gaiaFreeLinestring(line2);
-    gaiaFreeLinestring(line1);
+    line1 = gaiaAllocLinestring (4);
+    gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1);
+    gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2);
+    gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3);
+    gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER);
+    gaiaFreeLinestring (line2);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER);
+    gaiaFreeLinestring (line2);
+    gaiaFreeLinestring (line1);
 
 /* cloning a Linestring XYZ */
-    line1 = gaiaAllocLinestringXYZ(4);
-    gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1);
-    gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2);
-    gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3);
-    gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER);
-    gaiaFreeLinestring(line2);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER);
-    gaiaFreeLinestring(line2);
-    gaiaFreeLinestring(line1);
+    line1 = gaiaAllocLinestringXYZ (4);
+    gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1);
+    gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2);
+    gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3);
+    gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER);
+    gaiaFreeLinestring (line2);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER);
+    gaiaFreeLinestring (line2);
+    gaiaFreeLinestring (line1);
 
 /* cloning a Linestring XYM */
-    line1 = gaiaAllocLinestringXYM(4);
-    gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1);
-    gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2);
-    gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3);
-    gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER);
-    gaiaFreeLinestring(line2);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER);
-    gaiaFreeLinestring(line2);
-    gaiaFreeLinestring(line1);
+    line1 = gaiaAllocLinestringXYM (4);
+    gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1);
+    gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2);
+    gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3);
+    gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER);
+    gaiaFreeLinestring (line2);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER);
+    gaiaFreeLinestring (line2);
+    gaiaFreeLinestring (line1);
 
 /* cloning a Linestring XYZM */
-    line1 = gaiaAllocLinestringXYZM(4);
-    gaiaLineSetPoint(line1, 0, 1.1, 1.2, 100.1, 10.1);
-    gaiaLineSetPoint(line1, 1, 1.3, 1.4, 100.2, 10.2);
-    gaiaLineSetPoint(line1, 2, 1.5, 1.6, 100.3, 10.3);
-    gaiaLineSetPoint(line1, 3, 1.7, 1.8, 100.4, 10.4);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_SAME_ORDER);
-    gaiaFreeLinestring(line2);
-    line2 = gaiaCloneLinestringSpecial(line1, GAIA_REVERSE_ORDER);
-    gaiaFreeLinestring(line2);
-    gaiaFreeLinestring(line1);
+    line1 = gaiaAllocLinestringXYZM (4);
+    gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1);
+    gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2);
+    gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3);
+    gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER);
+    gaiaFreeLinestring (line2);
+    line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER);
+    gaiaFreeLinestring (line2);
+    gaiaFreeLinestring (line1);
 
 /* cloning a Ring XY */
-    ring1 = gaiaAllocRing(5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER);
-    gaiaFreeRing(ring2);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER);
-    gaiaFreeRing(ring2);
-    gaiaFreeRing(ring1);
+    ring1 = gaiaAllocRing (5);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER);
+    gaiaFreeRing (ring2);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER);
+    gaiaFreeRing (ring2);
+    gaiaFreeRing (ring1);
 
 /* cloning a Ring XYZ */
-    ring1 = gaiaAllocRingXYZ(5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER);
-    gaiaFreeRing(ring2);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER);
-    gaiaFreeRing(ring2);
-    gaiaFreeRing(ring1);
+    ring1 = gaiaAllocRingXYZ (5);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER);
+    gaiaFreeRing (ring2);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER);
+    gaiaFreeRing (ring2);
+    gaiaFreeRing (ring1);
 
 /* cloning a Ring XYM */
-    ring1 = gaiaAllocRingXYM(5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER);
-    gaiaFreeRing(ring2);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER);
-    gaiaFreeRing(ring2);
-    gaiaFreeRing(ring1);
+    ring1 = gaiaAllocRingXYM (5);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER);
+    gaiaFreeRing (ring2);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER);
+    gaiaFreeRing (ring2);
+    gaiaFreeRing (ring1);
 
 /* cloning a Ring XYZM */
-    ring1 = gaiaAllocRingXYZM(4);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_SAME_ORDER);
-    gaiaFreeRing(ring2);
-    ring2 = gaiaCloneRingSpecial(ring1, GAIA_REVERSE_ORDER);
-    gaiaFreeRing(ring2);
-    gaiaFreeRing(ring1);
+    ring1 = gaiaAllocRingXYZM (4);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER);
+    gaiaFreeRing (ring2);
+    ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER);
+    gaiaFreeRing (ring2);
+    gaiaFreeRing (ring1);
 
 /* cloning a Polygon XY (1) */
-    polyg1 = gaiaAllocPolygon(5, 1);
+    polyg1 = gaiaAllocPolygon (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XY (2) */
-    polyg1 = gaiaAllocPolygon(5, 1);
+    polyg1 = gaiaAllocPolygon (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XYZ (1) */
-    polyg1 = gaiaAllocPolygonXYZ(5, 1);
+    polyg1 = gaiaAllocPolygonXYZ (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XYZ (2) */
-    polyg1 = gaiaAllocPolygonXYZ(5, 1);
+    polyg1 = gaiaAllocPolygonXYZ (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XYM (1) */
-    polyg1 = gaiaAllocPolygonXYM(5, 1);
+    polyg1 = gaiaAllocPolygonXYM (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XYM (2) */
-    polyg1 = gaiaAllocPolygonXYM(5, 1);
+    polyg1 = gaiaAllocPolygonXYM (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XYZM (1) */
-    polyg1 = gaiaAllocPolygonXYZM(5, 1);
+    polyg1 = gaiaAllocPolygonXYZM (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 2.0, 1.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.0, 2.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.2, 1.1, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.1, 1.2, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
 /* cloning a Polygon XYZM (2) */
-    polyg1 = gaiaAllocPolygonXYZM(5, 1);
+    polyg1 = gaiaAllocPolygonXYZM (5, 1);
     ring1 = polyg1->Exterior;
-    gaiaRingSetPoint(ring1, 0, 1.0, 1.0, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.0, 2.0, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 2.0, 2.0, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 2.0, 1.0, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1);
     ring1 = gaiaAddInteriorRing (polyg1, 0, 5);
-    gaiaRingSetPoint(ring1, 0, 1.1, 1.1, 100.1, 10.1);
-    gaiaRingSetPoint(ring1, 1, 1.1, 1.2, 100.2, 10.2);
-    gaiaRingSetPoint(ring1, 2, 1.2, 1.2, 100.3, 10.3);
-    gaiaRingSetPoint(ring1, 3, 1.2, 1.1, 100.4, 10.4);
-    gaiaRingSetPoint(ring1, 4, 1.1, 1.1, 100.1, 10.1);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_SAME_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_REVERSE_ORDER);
-    gaiaFreePolygon(polyg2);
-    polyg2 = gaiaClonePolygonSpecial(polyg1, GAIA_LHR_ORDER);
-    gaiaFreePolygon(polyg2);
-    gaiaFreePolygon(polyg1);
+    gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1);
+    gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2);
+    gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3);
+    gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4);
+    gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER);
+    gaiaFreePolygon (polyg2);
+    polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER);
+    gaiaFreePolygon (polyg2);
+    gaiaFreePolygon (polyg1);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -1001;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -1001;
+      }
     spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
 
     return 0;
 }
diff --git a/test/check_geometry_cols.c b/test/check_geometry_cols.c
index 06be5d4..ca6e4e7 100644
--- a/test/check_geometry_cols.c
+++ b/test/check_geometry_cols.c
@@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -56,146 +57,224 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-
-    ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn(26, 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result AddGeometryColumn int arg1 bad result: %i/%i.\n", rows, columns);
-	return  -5;
-    }
-    if (strcmp(results[1], "0") != 0) {
-	fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg1 passed: %s.\n", results[1]);
-	return  -6;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE Point_Test (Name TEXT, Description TEXT)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT AddGeometryColumn(26, 'geomZ', 4326, 'POINT', 'XYZ', 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result AddGeometryColumn int arg1 bad result: %i/%i.\n",
+		   rows, columns);
+	  return -5;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected result: AddGeometryColumn with non-text arg1 passed: %s.\n",
+		   results[1]);
+	  return -6;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 8, 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result AddGeometryColumn int arg2 bad result: %i/%i.\n", rows, columns);
-	return  -8;
-    }
-    if (strcmp(results[1], "0") != 0) {
-	fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg2 passed: %s.\n", results[1]);
-	return  -9;
-    }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT AddGeometryColumn('Point_Test', 8, 4326, 'POINT', 'XYZ', 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result AddGeometryColumn int arg2 bad result: %i/%i.\n",
+		   rows, columns);
+	  return -8;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected result: AddGeometryColumn with non-text arg2 passed: %s.\n",
+		   results[1]);
+	  return -9;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 'sometext', 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result AddGeometryColumn text arg3 bad result: %i/%i.\n", rows, columns);
-	return  -11;
-    }
-    if (strcmp(results[1], "0") != 0) {
-	fprintf (stderr, "Unexpected result: AddGeometryColumn with non-int arg3 passed: %s.\n", results[1]);
-	return  -12;
-    }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT AddGeometryColumn('Point_Test', 'geomZ', 'sometext', 'POINT', 'XYZ', 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result AddGeometryColumn text arg3 bad result: %i/%i.\n",
+		   rows, columns);
+	  return -11;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected result: AddGeometryColumn with non-int arg3 passed: %s.\n",
+		   results[1]);
+	  return -12;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result AddGeometryColumn bad result: %i/%i.\n", rows, columns);
-	return  -14;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: AddGeometryColumn with good args failed: %s.\n", results[1]);
-	return  -15;
-    }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result AddGeometryColumn bad result: %i/%i.\n",
+		   rows, columns);
+	  return -14;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: AddGeometryColumn with good args failed: %s.\n",
+		   results[1]);
+	  return -15;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -16;
-    }
-    
-    ret = sqlite3_get_table (handle, "SELECT DiscardGeometryColumn('Point_Test', 'geomZ')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result DiscardGeometryColumn bad result: %i/%i.\n", rows, columns);
-	return  -18;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: DiscardGeometryColumn failed: %s.\n", results[1]);
-	return  -19;
-    }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT DiscardGeometryColumn('Point_Test', 'geomZ')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result DiscardGeometryColumn bad result: %i/%i.\n",
+		   rows, columns);
+	  return -18;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: DiscardGeometryColumn failed: %s.\n",
+		   results[1]);
+	  return -19;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT RecoverGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result RecoverGeometryColumn bad result: %i/%i.\n", rows, columns);
-	return  -21;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: RecoverGeometryColumn failed: %s.\n", results[1]);
-	return  -22;
-    }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RecoverGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result RecoverGeometryColumn bad result: %i/%i.\n",
+		   rows, columns);
+	  return -21;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: RecoverGeometryColumn failed: %s.\n",
+		   results[1]);
+	  return -22;
+      }
     sqlite3_free_table (results);
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -23;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -23;
+      }
+
     spatialite_cleanup_ex (cache);
-    
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_geoscvt_fncts.c b/test/check_geoscvt_fncts.c
index 879e713..cb423d0 100644
--- a/test/check_geoscvt_fncts.c
+++ b/test/check_geoscvt_fncts.c
@@ -54,50 +54,56 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "spatialite.h"
 #include "spatialite/gaiageo.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_GEOS	/* only if GEOS is supported */
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
     gaiaGeomCollPtr result;
     void *resultVoid;
     int returnValue = 0;
-    
+
     /* Common setup */
-    gaiaGeomCollPtr emptyGeometry = gaiaAllocGeomColl();
+    gaiaGeomCollPtr emptyGeometry = gaiaAllocGeomColl ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
-    
+
     /* Tests start here */
-    
+
     /* null input test */
-    result = gaiaFromGeos_XY ( (const void*) NULL );
-    if (result != NULL) {
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -1;
-	goto exit;
-    }
-    
-    resultVoid = gaiaToGeos ((gaiaGeomCollPtr)NULL);
-    if (resultVoid != NULL) {
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -2;
-	goto exit;
-    }
-    
+    result = gaiaFromGeos_XY ((const void *) NULL);
+    if (result != NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -1;
+	  goto exit;
+      }
+
+    resultVoid = gaiaToGeos ((gaiaGeomCollPtr) NULL);
+    if (resultVoid != NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -2;
+	  goto exit;
+      }
+
     /* unknown type geometry collection */
-    resultVoid = gaiaToGeos ( emptyGeometry );
-    if (resultVoid != NULL) {
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -3;
-	goto exit;
-    }
-    
+    resultVoid = gaiaToGeos (emptyGeometry);
+    if (resultVoid != NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -3;
+	  goto exit;
+      }
+
     /* Cleanup and exit */
-exit:
+  exit:
     gaiaFreeGeomColl (emptyGeometry);
+    spatialite_shutdown ();
     return returnValue;
 
-#endif	/* end GEOS conditional */
+#endif /* end GEOS conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_get_normal_row.c b/test/check_get_normal_row.c
index daf7a88..b25e828 100644
--- a/test/check_get_normal_row.c
+++ b/test/check_get_normal_row.c
@@ -22,7 +22,7 @@ The Original Code is GeoPackage extensions
 
 The Initial Developer of the Original Code is Brad Hards
  
-Portions created by the Initial Developer are Copyright (C) 2011
+Portions created by the Initial Developer are Copyright (C) 2011, 2014
 the Initial Developer. All Rights Reserved.
 
 Contributor(s):
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -59,270 +60,391 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
     char *old_SPATIALITE_SECURITY_ENV = NULL;
 #ifdef _WIN32
-	char *env;
+    char *env;
 #endif /* not WIN32 */
 
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
 #ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
+    putenv ("SPATIALITE_SECURITY=relaxed");
 #else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
 #endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
     if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
 #else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
 #endif
-    }
+      }
     else
-    {
+      {
 #ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
+	  putenv ("SPATIALITE_SECURITY=");
 #else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
+	  unsetenv ("SPATIALITE_SECURITY");
 #endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* create a minimal tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 2, 2)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 2, 4, 4)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 2 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_matrix_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_matrix_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_matrix_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    /* create tables to support future testing */
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    /* create matrix levels 0, 1, 2 and 4 */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 2, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(2) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+
     /* Check a proper INSERT */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT error 6: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error1: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT error 11: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error12: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -13;
-    }
-    if (strcmp(results[1 * columns + 0], "0") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]);
-	sqlite3_free_table(results);
-	return -14;
-    }
-    sqlite3_free_table(results);
-
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error 2: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -13;
+      }
+    if (strcmp (results[1 * columns + 0], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected result (got %s, expected 0)",
+		   results[rows * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -14;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error 2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -16;
-    }
-    if (strcmp(results[1 * columns + 0], "3") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 3)", results[rows * columns + 0]);
-	sqlite3_free_table(results);
-	return -17;
-    }
-    sqlite3_free_table(results);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -16;
+      }
+    if (strcmp (results[1 * columns + 0], "3") != 0)
+      {
+	  fprintf (stderr, "Unexpected result (got %s, expected 3)",
+		   results[rows * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -17;
+      }
+    sqlite3_free_table (results);
 
     /* test an out-of-range zoom number - expect exception */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for overrange zoom level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -18;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -19;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", -1, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for underrange zoom level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -20;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -21;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 5, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for overrange zoom level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for overrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -19;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", -1, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for underrange zoom level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for underrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad table name */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"no_such_table\", 0, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad table name level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -22;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -23;
-    }
-    sqlite3_free(err_msg);
-        
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"no_such_table\", 0, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad table name level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad table name: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(3, 0, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg1 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -26;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -27;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(3, 0, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3.2, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg2 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -28;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -29;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3.2, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 1.6)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg3 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -30;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg3 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -31;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 1.6)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg3 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg3 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
+    sqlite3_free (err_msg);
+
     /* test overrange row number */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 4)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for overrange row number level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -32;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: row number outside of matrix height range") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -33;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 4)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for overrange row number level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -32;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow: row number outside of matrix height range") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for overrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
+    sqlite3_free (err_msg);
+
     /* test underrange row number */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, -1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for underrange row number level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -34;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: row number outside of matrix height range") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -35;
-    }
-    sqlite3_free(err_msg);
-    
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, -1)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for underrange row number level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow: row number outside of matrix height range") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for underrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
+    sqlite3_free (err_msg);
+
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_get_normal_row_bad_geopackage.c b/test/check_get_normal_row_bad_geopackage.c
index 28f63a5..5c7f24e 100644
--- a/test/check_get_normal_row_bad_geopackage.c
+++ b/test/check_get_normal_row_bad_geopackage.c
@@ -22,7 +22,7 @@ The Original Code is GeoPackage extensions
 
 The Initial Developer of the Original Code is Brad Hards
  
-Portions created by the Initial Developer are Copyright (C) 2011
+Portions created by the Initial Developer are Copyright (C) 2011, 2014
 the Initial Developer. All Rights Reserved.
 
 Contributor(s):
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -59,80 +60,123 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     /* create a corrupt tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height TEXT NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 0, \"foo\")",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 0, \"4000000000\")",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -9;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -10;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 1, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for broken geopackage zoom1, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -11;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for broken geopackage zoom1: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -12;
-    }
-    sqlite3_free(err_msg);
-  
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height TEXT NOT NULL)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE gpkg_tile_matrix error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", 0, 0, \"foo\")",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", 1, 0, \"4000000000\")",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for broken geopackage, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for broken geopackage: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 1, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for broken geopackage zoom1, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for broken geopackage zoom1: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_get_normal_row_bad_geopackage2.c b/test/check_get_normal_row_bad_geopackage2.c
index 60f1a82..7597d03 100644
--- a/test/check_get_normal_row_bad_geopackage2.c
+++ b/test/check_get_normal_row_bad_geopackage2.c
@@ -22,7 +22,7 @@ The Original Code is GeoPackage extensions
 
 The Initial Developer of the Original Code is Brad Hards
  
-Portions created by the Initial Developer are Copyright (C) 2011
+Portions created by the Initial Developer are Copyright (C) 2011, 2014
 the Initial Developer. All Rights Reserved.
 
 Contributor(s):
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -59,48 +60,66 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* delete the tile_matrix_metadata table (deliberately broken) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    /* delete the gpkg_tile_matrix table (deliberately broken) */
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
     /* now do the query */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -5;
-    }
-    if (strcmp(err_msg, "no such table: tile_matrix_metadata") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -6;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for broken geopackage, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    if (strcmp (err_msg, "no such table: gpkg_tile_matrix") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for broken geopackage: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_get_normal_zoom.c b/test/check_get_normal_zoom.c
index 16ed601..e9da61b 100644
--- a/test/check_get_normal_zoom.c
+++ b/test/check_get_normal_zoom.c
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -59,191 +60,291 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_zoom.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* create a minimal tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 2, 2)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 2, 4, 4)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 2 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
-
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error1: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_zoom.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    /* create tables to support future testing */
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    /* create matrix levels 0, 1 and 4 */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	sqlite3_free_table (results);
-	return -10;
-    }
-    if (strcmp(results[1 * columns + 0], "2") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 2)", results[rows * columns + 0]);
-	sqlite3_free_table (results);
-	return -11;
-    }
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  sqlite3_free_table (results);
+	  return -10;
+      }
+    if (strcmp (results[1 * columns + 0], "4") != 0)
+      {
+	  fprintf (stderr, "Unexpected result 0 (got %s, expected 4)",
+		   results[rows * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -11;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error 2: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error 2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -13;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 1)", results[rows * columns + 0]);
-	return -14;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 2)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error 3: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -13;
+      }
+    if (strcmp (results[1 * columns + 0], "3") != 0)
+      {
+	  fprintf (stderr, "Unexpected result 1 (got %s, expected 3)",
+		   results[rows * columns + 0]);
+	  return -14;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 4)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error 3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	sqlite3_free_table(results);
-	return -16;
-    }
-    if (strcmp(results[1 * columns + 0], "0") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]);
-	sqlite3_free_table(results);
-	return -17;
-    }
-    sqlite3_free_table(results);
-    
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  sqlite3_free_table (results);
+	  return -16;
+      }
+    if (strcmp (results[1 * columns + 0], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected result 4(got %s, expected 0)",
+		   results[rows * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -17;
+      }
+    sqlite3_free_table (results);
+
     /* test an out-of-range zoom number - expect exception */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 3)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for overrange zoom level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -18;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -19;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for underrange zoom level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -20;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -21;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 5)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for overrange zoom level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for overrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -19;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for underrange zoom level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for underrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad table name */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad table name level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -22;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: tile table not found in tile_matrix_metadata") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -23;
-    }
-    sqlite3_free(err_msg);
-        
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad table name level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix") != 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad table name: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg1 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -26;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -27;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg2 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -28;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -29;
-    }
-    sqlite3_free(err_msg);    
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_get_normal_zoom_bad_geopackage.c b/test/check_get_normal_zoom_bad_geopackage.c
index cb5eef1..8825d1c 100644
--- a/test/check_get_normal_zoom_bad_geopackage.c
+++ b/test/check_get_normal_zoom_bad_geopackage.c
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -59,60 +60,90 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
-    /* create a corrupt tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level TEXT NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", \"foo\", 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -7;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -8;
-    }
-    sqlite3_free(err_msg);
-  
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    /* create a corrupt gpkg_tile_matrix table (not spec compliant) */
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL, zoom_level TEXT NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE gpkg_tile_matrix error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", \"foo\", 1, 1)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT gpkg_tile_matrix zoom 0 error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for broken geopackage, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)") !=
+	0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for broken geopackage: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_get_normal_zoom_bad_geopackage2.c b/test/check_get_normal_zoom_bad_geopackage2.c
index 406bad7..2ada23b 100644
--- a/test/check_get_normal_zoom_bad_geopackage2.c
+++ b/test/check_get_normal_zoom_bad_geopackage2.c
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -59,48 +60,107 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    /* create tables to support future testing */
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    /* create matrix levels 0, 1 and 4 */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+
     /* delete the tile_matrix_metadata table (deliberately broken) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+
     /* now do the query */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for broken geopackage, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -5;
-    }
-    if (strcmp(err_msg, "no such table: tile_matrix_metadata") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -6;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for broken geopackage, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    if (strcmp (err_msg, "no such table: gpkg_tile_matrix") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for broken geopackage: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_get_normal_zoom_extension_load.c b/test/check_get_normal_zoom_extension_load.c
index 18e38a3..5812533 100644
--- a/test/check_get_normal_zoom_extension_load.c
+++ b/test/check_get_normal_zoom_extension_load.c
@@ -51,211 +51,312 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
-    char *sql_statement;
     int ret;
     char *err_msg = NULL;
     char **results;
     int rows;
     int columns;
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_get_normal_zoom_extension_load.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_get_normal_zoom_extension_load.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sqlite3_enable_load_extension (db_handle, 1);
-    
-#if defined(__APPLE__)       /* Mac Os X */
-    sql_statement = "SELECT load_extension('libspatialite.dylib')";
-#elif defined(_WIN32)   /* Windows */
-    sql_statement = "SELECT load_extension('libspatialite.dll')";
-#else   /* neither Mac nor Windows: may be Linux or Unix */
-    sql_statement = "SELECT load_extension('libspatialite.so')";
-#endif
-    ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "load_extension(spatialite) error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -2;
-    }
-    
-    /* create a minimal tile_matrix_metadata table (not spec compliant) */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 0, 1, 1)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 1, 2, 2)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"test1_matrix_tiles\", 2, 4, 4)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT tile_matrix_metadata zoom 2 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
 
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error1: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    }
+    ret =
+	sqlite3_exec (db_handle, "SELECT load_extension('mod_spatialite')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "load_extension(mod_spatialite) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    /* create tables to support future testing */
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    /* create matrix levels 0, 1 and 4 */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -10;
-    }
-    if (strcmp(results[1 * columns + 0], "2") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 2)", results[rows * columns + 0]);
-	return -11;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error 2: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  sqlite3_free_table (results);
+	  return -10;
+      }
+    if (strcmp (results[1 * columns + 0], "4") != 0)
+      {
+	  fprintf (stderr, "Unexpected result 0 (got %s, expected 4)",
+		   results[rows * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -11;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error 2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -13;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 1)", results[rows * columns + 0]);
-	return -14;
-    }
-    sqlite3_free_table(results);
-	
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 2)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error 3: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -13;
+      }
+    if (strcmp (results[1 * columns + 0], "3") != 0)
+      {
+	  fprintf (stderr, "Unexpected result 1 (got %s, expected 3)",
+		   results[rows * columns + 0]);
+	  return -14;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 4)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error 3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -16;
-    }
-    if (strcmp(results[1 * columns + 0], "0") != 0)
-    {
-	fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]);
-	return -17;
-    }
-    sqlite3_free_table(results);
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  sqlite3_free_table (results);
+	  return -16;
+      }
+    if (strcmp (results[1 * columns + 0], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected result 4(got %s, expected 0)",
+		   results[rows * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -17;
+      }
+    sqlite3_free_table (results);
 
     /* test an out-of-range zoom number - expect exception */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 3)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for overrange zoom level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -18;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -19;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for underrange zoom level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -20;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -21;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 5)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for overrange zoom level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for overrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -19;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for underrange zoom level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for underrange zoom level: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad table name */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad table name level, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -22;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom: tile table not found in tile_matrix_metadata") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -23;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad table name level, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix") != 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad table name: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg1 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -26;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -27;
-    }
-    sqlite3_free(err_msg);
-    
+    ret =
+	sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
+    sqlite3_free (err_msg);
+
     /* test bad argument types */
-    ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg2 type, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -28;
-    }
-    if (strcmp(err_msg, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -29;
-    }
-    sqlite3_free(err_msg);    
-    
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+    sqlite3_free (err_msg);
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -100;
+      }
+
     /* this is a hack to avoid excess valgrind noise */
-    spatialite_cleanup();
-    
+    spatialite_cleanup ();
+
     return 0;
 }
diff --git a/test/check_gpkgConvert.c b/test/check_gpkgConvert.c
new file mode 100644
index 0000000..f605589
--- /dev/null
+++ b/test/check_gpkgConvert.c
@@ -0,0 +1,307 @@
+/*
+
+ check_gpkgConvert.c - Test case for GeoPackage Extensions
+
+ Author: Sandro Furieri <a.furieri at lqt.it>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Sandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2014
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#include "config.h"
+
+#ifdef ENABLE_GEOPACKAGE	/* only if GEOPACKAGE is enabled */
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+static void
+do_unlink_all ()
+{
+/* deleting all temporary files */
+    unlink ("./copy-gpkg_test.sqlite");
+    unlink ("./copy-test-legacy-3.0.1.sqlite");
+    unlink ("./out1.gpkg");
+    unlink ("./out2.gpkg");
+    unlink ("./out1.sqlite");
+    unlink ("./out2.sqlite");
+}
+
+static int
+do_load_legacy (const char *path)
+{
+/* loading the Legacy Test DB */
+    sqlite3 *db_handle;
+    int ret;
+    void *cache = NULL;
+    const char *sql;
+    char *sql_err = NULL;
+
+    cache = spatialite_alloc_connection ();
+    ret = sqlite3_open_v2 (path, &db_handle, SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open '%s': %s\n", path,
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  return 0;
+      }
+    spatialite_init_ex (db_handle, cache, 0);
+
+/* creating a table */
+    sql = "CREATE TABLE test0 (id INTEGER NOT NULL PRIMARY KEY)";
+    ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* adding a geometry */
+    sql = "SELECT AddGeometryColumn('test0', 'geom', 4326, 'POINT', 'XY')";
+    ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+/* inserting one row */
+    sql = "INSERT INTO test0 (id, geom) VALUES(1, MakePoint(1, 2, 4326))";
+    ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT INTO error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sqlite3_close (db_handle);
+    spatialite_cleanup_ex (cache);
+    return 1;
+}
+
+static sqlite3 *
+connect_db (const char *path, int flags, void *cache)
+{
+/* attempting to connect a SQLite DB file */
+    sqlite3 *db_handle;
+    int ret;
+
+    ret = sqlite3_open_v2 (path, &db_handle, flags, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open '%s': %s\n", path,
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  return NULL;
+      }
+    spatialite_init_ex (db_handle, cache, 0);
+    return db_handle;
+}
+
+static int
+already_existing (const char *path)
+{
+/* check if a file already exists */
+    FILE *in = fopen (path, "rb");
+    if (in != NULL)
+      {
+	  /* already existing and accessible */
+	  fclose (in);
+	  return 1;
+      }
+    if (errno == ENOENT)
+	return 0;
+    return 1;
+}
+
+static int
+open_connections (const char *path_origin, const char *path_destination,
+		  void *cache_in, void *cache_out, sqlite3 ** xhandle_in,
+		  sqlite3 ** xhandle_out)
+{
+/* establishing IN and OUT DB connections */
+    sqlite3 *handle_in = NULL;
+    sqlite3 *handle_out = NULL;
+
+    if (already_existing (path_destination))
+      {
+	  fprintf (stderr, "Already existing output destination:\n\"%s\"\n",
+		   path_destination);
+	  return 0;
+      }
+
+/* attempting to connect the IN DB */
+    handle_in = connect_db (path_origin, SQLITE_OPEN_READONLY, cache_in);
+    if (handle_in == NULL)
+	goto error;
+
+/* attempting to connect the OUT DB */
+    handle_out =
+	connect_db (path_destination,
+		    SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, cache_out);
+    if (handle_out == NULL)
+	goto error;
+    *xhandle_in = handle_in;
+    *xhandle_out = handle_out;
+    return 1;
+
+  error:
+    if (handle_in != NULL)
+	sqlite3_close (handle_in);
+    if (handle_out != NULL)
+	sqlite3_close (handle_out);
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+    sqlite3 *handle_in = NULL;
+    sqlite3 *handle_out = NULL;
+    void *cache_in = NULL;
+    void *cache_out = NULL;
+    const char *path_origin;
+    const char *path_destination;
+    int ret;
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+    do_unlink_all ();
+
+/* converting from SpatiaLite v4 to GPKG */
+    ret = system ("cp ./gpkg_test.sqlite copy-gpkg_test.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot copy gpkg_test.sqlite database\n");
+	  return -1;
+      }
+    path_origin = "./copy-gpkg_test.sqlite";
+    path_destination = "./out1.gpkg";
+    cache_in = spatialite_alloc_connection ();
+    cache_out = spatialite_alloc_connection ();
+    if (!open_connections
+	(path_origin, path_destination, cache_in, cache_out, &handle_in,
+	 &handle_out))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    if (!gaiaSpatialite2GPKG
+	(handle_in, path_origin, handle_out, path_destination))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    sqlite3_close (handle_in);
+    sqlite3_close (handle_out);
+    spatialite_cleanup_ex (cache_in);
+    spatialite_cleanup_ex (cache_out);
+
+/* converting from GPKG to SpatiaLite */
+    path_origin = "./out1.gpkg";
+    path_destination = "./out1.sqlite";
+    cache_in = spatialite_alloc_connection ();
+    cache_out = spatialite_alloc_connection ();
+    if (!open_connections
+	(path_origin, path_destination, cache_in, cache_out, &handle_in,
+	 &handle_out))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    if (!gaiaGPKG2Spatialite
+	(handle_in, path_origin, handle_out, path_destination))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    sqlite3_close (handle_in);
+    sqlite3_close (handle_out);
+    spatialite_cleanup_ex (cache_in);
+    spatialite_cleanup_ex (cache_out);
+
+/* converting from SpatiaLite v3 to GPKG */
+    ret =
+	system ("cp ./test-legacy-3.0.1.sqlite copy-test-legacy-3.0.1.sqlite");
+    if (ret != 0)
+      {
+	  do_unlink_all ();
+	  fprintf (stderr, "cannot copy test-legacy-3.0.1.sqlite database\n");
+	  return -1;
+      }
+    if (!do_load_legacy ("./copy-test-legacy-3.0.1.sqlite"))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    path_origin = "./copy-test-legacy-3.0.1.sqlite";
+    path_destination = "./out2.sqlite";
+    cache_in = spatialite_alloc_connection ();
+    cache_out = spatialite_alloc_connection ();
+    if (!open_connections
+	(path_origin, path_destination, cache_in, cache_out, &handle_in,
+	 &handle_out))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    if (!gaiaSpatialite2GPKG
+	(handle_in, path_origin, handle_out, path_destination))
+      {
+	  do_unlink_all ();
+	  return -1;
+      }
+    sqlite3_close (handle_in);
+    sqlite3_close (handle_out);
+    spatialite_cleanup_ex (cache_in);
+    spatialite_cleanup_ex (cache_out);
+
+    do_unlink_all ();
+    return 0;
+}
+
+#endif /* endif GEOPACKAGE enabled */
diff --git a/test/check_gpkgCreateFeaturesTable.c b/test/check_gpkgCreateFeaturesTable.c
new file mode 100644
index 0000000..9a771a5
--- /dev/null
+++ b/test/check_gpkgCreateFeaturesTable.c
@@ -0,0 +1,534 @@
+/*
+
+ check_gkpgCreateFeaturesTable.c - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2012-2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gkpgCreateFeaturesTable.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -100;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE \"testfeats1\" (id INTEGER PRIMARY KEY AUTOINCREMENT, text_attribute TEXT, real_attribute REAL, boolean_attribute BOOLEAN, raster_or_photo BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected create testfeats1 table result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -101;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"testfeats1\", \"thegeom\", \"POINT\", 0, 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgAddGeometryColumn() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -102;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"testfeats1\", \"thegeom\", \"POINT\", 0, 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column duplicate column name, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -103;
+      }
+
+#if 0
+    /* check gpkg_contents table entry is OK */
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT data_type, identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id FROM gpkg_contents WHERE table_name = 'testtiles1'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -104;
+      }
+    if ((rows != 1) || (columns != 9))
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -105;
+      }
+    if (strcmp (results[1 * columns + 0], "tiles") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected data_type result (got %s, expected tiles)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -106;
+      }
+    if (results[1 * columns + 1] != NULL)
+      {
+	  fprintf (stderr,
+		   "Unexpected identifier result (got %s, expected NULL)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -107;
+      }
+    if (strcmp (results[1 * columns + 2], "") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected description result (got %s, expected an empty string)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -108;
+      }
+    /* TODO: this test should be more rigorous */
+    if (results[1 * columns + 3] == NULL)
+      {
+	  fprintf (stderr, "Unexpected last_change result - null)",
+		   results[1 * columns + 3]);
+	  sqlite3_free_table (results);
+	  return -109;
+      }
+    if ((results[1 * columns + 4] == NULL)
+	|| (strcmp (results[1 * columns + 4], "-180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)",
+		   results[1 * columns + 4]);
+	  sqlite3_free_table (results);
+	  return -110;
+      }
+    if ((results[1 * columns + 5] == NULL)
+	|| (strcmp (results[1 * columns + 5], "-90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)",
+		   results[1 * columns + 5]);
+	  sqlite3_free_table (results);
+	  return -111;
+      }
+    if ((results[1 * columns + 6] == NULL)
+	|| (strcmp (results[1 * columns + 6], "180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)",
+		   results[1 * columns + 6]);
+	  sqlite3_free_table (results);
+	  return -112;
+      }
+    if ((results[1 * columns + 7] == NULL)
+	|| (strcmp (results[1 * columns + 7], "90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)",
+		   results[1 * columns + 7]);
+	  sqlite3_free_table (results);
+	  return -113;
+      }
+    if ((results[1 * columns + 8] == NULL)
+	|| (strcmp (results[1 * columns + 8], "4326") != 0))
+      {
+	  fprintf (stderr, "Unexpected srid result (got %s, expected 4326)",
+		   results[1 * columns + 8]);
+	  sqlite3_free_table (results);
+	  return -114;
+      }
+    sqlite3_free_table (results);
+
+    /* check gpkg_tile_matrix_set table entry is OK */
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT min_x, min_y, max_x, max_y, srs_id FROM gpkg_tile_matrix_set WHERE table_name = 'testtiles1'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -140;
+      }
+    if ((rows != 1) || (columns != 5))
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -141;
+      }
+    if ((results[1 * columns + 0] == NULL)
+	|| (strcmp (results[1 * columns + 0], "-180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -142;
+      }
+    if ((results[1 * columns + 1] == NULL)
+	|| (strcmp (results[1 * columns + 1], "-90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -143;
+      }
+    if ((results[1 * columns + 2] == NULL)
+	|| (strcmp (results[1 * columns + 2], "180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -144;
+      }
+    if ((results[1 * columns + 3] == NULL)
+	|| (strcmp (results[1 * columns + 3], "90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)",
+		   results[1 * columns + 3]);
+	  sqlite3_free_table (results);
+	  return -145;
+      }
+    if ((results[1 * columns + 4] == NULL)
+	|| (strcmp (results[1 * columns + 4], "4326") != 0))
+      {
+	  fprintf (stderr, "Unexpected srid result (got %s, expected 4326)",
+		   results[1 * columns + 4]);
+	  sqlite3_free_table (results);
+	  return -146;
+      }
+    sqlite3_free_table (results);
+#endif
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE \"ctd\" (id INTEGER PRIMARY KEY AUTOINCREMENT, text_attribute TEXT, real_attribute REAL, boolean_attribute BOOLEAN, raster_or_photo BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Unexpected create ctd table result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -200;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", 2.4, \"POINT\", 0, 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad column type, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -201;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 2 [geometry_column_name] is not of the string type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 2: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -202;
+      }
+    sqlite3_free (err_msg);
+
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", 4, 0, 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad geom type, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -203;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 3 [geometry_type] is not of the string type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 3: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -204;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(8.3, \"the_geom\", \"POINT\", 0, 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad table type, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -205;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 1 [table] is not of the string type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 1: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -206;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", \"z\", 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad z type, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -207;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 4 [with_z] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 4: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -208;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, \"m\", 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad m type, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -209;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 5 [with_m] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 5: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -210;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 3, 0, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad z value, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -211;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 4 [with_z] is not a known value (expected 0, 1 or 2)")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 4: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -212;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, 3, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad m value, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -213;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 5 [with_m] is not a known value (expected 0, 1 or 2)")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 5: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -214;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, 2, \"srid\")",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad srid type, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -215;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 6 [srid] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 6: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -216;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"blah\", 0, 1, 4326)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add geometry column bad geom type value, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -217;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgAddGeometryColumn() error: argument 3 [geometry_type] not a recognised geometry type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 3: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -218;
+      }
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -300;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkgCreateTilesTable.c b/test/check_gpkgCreateTilesTable.c
new file mode 100644
index 0000000..fcee473
--- /dev/null
+++ b/test/check_gpkgCreateTilesTable.c
@@ -0,0 +1,487 @@
+/*
+
+ check_gpkgCreateTilesTable.c - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2012
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char **results;
+    int rows;
+    int columns;
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgCreateTilesTable.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -100;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"testtiles1\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -101;
+      }
+
+    /* same, but using integer bounds */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"testtiles2\", 4326, -180, -90, 180, 90)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() integer bounds result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -102;
+      }
+
+    /* check gpkg_contents table entry is OK */
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT data_type, identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id FROM gpkg_contents WHERE table_name = 'testtiles1'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -104;
+      }
+    if ((rows != 1) || (columns != 9))
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -105;
+      }
+    if (strcmp (results[1 * columns + 0], "tiles") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected data_type result (got %s, expected tiles)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -106;
+      }
+    if (results[1 * columns + 1] != NULL)
+      {
+	  fprintf (stderr,
+		   "Unexpected identifier result (got %s, expected NULL)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -107;
+      }
+    if (strcmp (results[1 * columns + 2], "") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected description result (got %s, expected an empty string)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -108;
+      }
+    /* TODO: this test should be more rigorous */
+    if (results[1 * columns + 3] == NULL)
+      {
+	  fprintf (stderr, "Unexpected last_change result - null)");
+	  sqlite3_free_table (results);
+	  return -109;
+      }
+    if ((results[1 * columns + 4] == NULL)
+	|| (strcmp (results[1 * columns + 4], "-180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)",
+		   results[1 * columns + 4]);
+	  sqlite3_free_table (results);
+	  return -110;
+      }
+    if ((results[1 * columns + 5] == NULL)
+	|| (strcmp (results[1 * columns + 5], "-90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)",
+		   results[1 * columns + 5]);
+	  sqlite3_free_table (results);
+	  return -111;
+      }
+    if ((results[1 * columns + 6] == NULL)
+	|| (strcmp (results[1 * columns + 6], "180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)",
+		   results[1 * columns + 6]);
+	  sqlite3_free_table (results);
+	  return -112;
+      }
+    if ((results[1 * columns + 7] == NULL)
+	|| (strcmp (results[1 * columns + 7], "90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)",
+		   results[1 * columns + 7]);
+	  sqlite3_free_table (results);
+	  return -113;
+      }
+    if ((results[1 * columns + 8] == NULL)
+	|| (strcmp (results[1 * columns + 8], "4326") != 0))
+      {
+	  fprintf (stderr, "Unexpected srid result (got %s, expected 4326)",
+		   results[1 * columns + 8]);
+	  sqlite3_free_table (results);
+	  return -114;
+      }
+    sqlite3_free_table (results);
+
+    /* check gpkg_tile_matrix_set table entry is OK */
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT min_x, min_y, max_x, max_y, srs_id FROM gpkg_tile_matrix_set WHERE table_name = 'testtiles1'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -140;
+      }
+    if ((rows != 1) || (columns != 5))
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -141;
+      }
+    if ((results[1 * columns + 0] == NULL)
+	|| (strcmp (results[1 * columns + 0], "-180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -142;
+      }
+    if ((results[1 * columns + 1] == NULL)
+	|| (strcmp (results[1 * columns + 1], "-90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -143;
+      }
+    if ((results[1 * columns + 2] == NULL)
+	|| (strcmp (results[1 * columns + 2], "180.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -144;
+      }
+    if ((results[1 * columns + 3] == NULL)
+	|| (strcmp (results[1 * columns + 3], "90.0") != 0))
+      {
+	  fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)",
+		   results[1 * columns + 3]);
+	  sqlite3_free_table (results);
+	  return -145;
+      }
+    if ((results[1 * columns + 4] == NULL)
+	|| (strcmp (results[1 * columns + 4], "4326") != 0))
+      {
+	  fprintf (stderr, "Unexpected srid result (got %s, expected 4326)",
+		   results[1 * columns + 4]);
+	  sqlite3_free_table (results);
+	  return -146;
+      }
+    sqlite3_free_table (results);
+
+    sqlite3_free (err_msg);
+
+    /*  try some bad arguments */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(3, 4326, -180, -90, 180, 90)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, non-string table name, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -150;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable arg 1 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -151;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test2\", \"srid\", -180, -90, 180, 90)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, non-integer SRID value, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -152;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable arg 2 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -153;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test2\", 0, \"minx\", -90, 180, 90)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, non-numeric min_x, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -154;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesTable() error: argument 3 [min_x] is not a numeric type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable arg 3 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -155;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, \"min_y\", 180, 90)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, non-numeric min_y, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -156;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesTable() error: argument 4 [min_y] is not a numeric type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable arg 4 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -157;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, -90, \"max_x\", 90)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, non-numeric max_x, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -158;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesTable() error: argument 5 [max_x] is not a numeric type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable arg 5 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -159;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, -90, 180, \"max_y\")",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, non-numeric max_y, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -160;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesTable() error: argument 6 [max_y] is not a numeric type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable arg 6 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -161;
+      }
+    sqlite3_free (err_msg);
+
+    /* try duplicate entry */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"testtiles2\", 0, -180, -85, 180, 85)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, duplicate table, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -162;
+      }
+    sqlite3_free (err_msg);
+
+    /* try duplicate entry */
+    ret =
+	sqlite3_exec (db_handle,
+		      "CREATE TABLE alreadythere (id INTEGER PRIMARY KEY AUTOINCREMENT)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected error for add tiles table, existing table setup %i (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -164;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"alreadythere\", 0, -180, -85, 180, 85)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add tiles table, duplicate table manual, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -165;
+      }
+    if (strcmp (err_msg, "table alreadythere already exists") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgCreateTilesTable dupe manual table: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -163;
+      }
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkgCreateTilesTableMissingSRID.c b/test/check_gpkgCreateTilesTableMissingSRID.c
new file mode 100644
index 0000000..075357c
--- /dev/null
+++ b/test/check_gpkgCreateTilesTableMissingSRID.c
@@ -0,0 +1,115 @@
+/*
+
+ check_gpkgCreateTilesTableMissingSRID.c - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2012
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgCreateTilesTableMissingSRID.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -100;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"testtile1\", 3.14, 10.1, 20.2, 30.3, 40.4)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "Expected error for bad SRID, got %i\n", ret);
+	  sqlite3_free (err_msg);
+	  return -102;
+      }
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkgCreateTilesZoomLevel.c b/test/check_gpkgCreateTilesZoomLevel.c
new file mode 100644
index 0000000..c56452c
--- /dev/null
+++ b/test/check_gpkgCreateTilesZoomLevel.c
@@ -0,0 +1,317 @@
+/*
+
+ check_gpkgCreateTilesZoomLevel.c - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2011,2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <sqlite3.h>
+#include <spatialite.h>
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    void *cache = spatialite_alloc_connection ();
+    char *old_SPATIALITE_SECURITY_ENV = NULL;
+#ifdef _WIN32
+    char *env;
+#endif /* not WIN32 */
+
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
+#ifdef _WIN32
+    putenv ("SPATIALITE_SECURITY=relaxed");
+#else /* not WIN32 */
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
+#endif
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgCreateTilesZoomLevel.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+
+    if (old_SPATIALITE_SECURITY_ENV)
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
+#else /* not WIN32 */
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+#endif
+      }
+    else
+      {
+#ifdef _WIN32
+	  putenv ("SPATIALITE_SECURITY=");
+#else /* not WIN32 */
+	  unsetenv ("SPATIALITE_SECURITY");
+#endif
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesTable() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    /* create matrix level 0 */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
+    /* try duplicate entry */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add zoom level, duplicate entry, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    sqlite3_free (err_msg);
+
+    /*  try some bad arguments */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(9.4, 4, 360, 180)", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add zoom level, non-string table name, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 1 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4.2, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add zoom level, non-integer zoom, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 2 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, \"x\", 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add zoom level, non-numeric extent, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 3 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, \"y\")",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add zoom level, non-numeric height extent, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 4 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", -1, 360, 180)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for add zoom level, negative zoom, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgAddGeometryColumn arg 2 bad value: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
+    sqlite3_free (err_msg);
+
+    /* Try float extent */
+    ret =
+	sqlite3_exec (db_handle,
+		      "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360.0, 180.0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkgGetImageFormat.c b/test/check_gpkgGetImageFormat.c
index e50c2a1..5c269f7 100644
--- a/test/check_gpkgGetImageFormat.c
+++ b/test/check_gpkgGetImageFormat.c
@@ -51,7 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
@@ -59,84 +60,100 @@ int main (int argc UNUSED, char *argv[] UNUSED)
     int ret;
     char *old_SPATIALITE_SECURITY_ENV = NULL;
 #ifdef _WIN32
-	char *env;
+    char *env;
 #endif /* not WIN32 */
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
 #ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
+    putenv ("SPATIALITE_SECURITY=relaxed");
 #else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
 #endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgGetImageFormat.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
     if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
 #else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
 #endif
-    }
+      }
     else
-    {
+      {
 #ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
+	  putenv ("SPATIALITE_SECURITY=");
 #else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
+	  unsetenv ("SPATIALITE_SECURITY");
 #endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"tile111.jpeg\"))";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
+      {
+	  fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret,
+		   sqlite3_errmsg (db_handle));
+	  return -30;
+      }
     ret = sqlite3_step (stmt);
     if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i\n", ret);
+	  return -31;
+      }
     if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (strcmp((const char*)sqlite3_column_text(stmt, 0), "jpeg") != 0)
-    {
-	fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0));
-	return -33;
-    }
-    ret = sqlite3_step(stmt);
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "jpeg") != 0)
+      {
+	  fprintf (stderr, "wrong image type: %s\n",
+		   sqlite3_column_text (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
     if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -34;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -34;
+      }
     ret = sqlite3_finalize (stmt);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_gpkgGetImageFormat_nonblob.c b/test/check_gpkgGetImageFormat_nonblob.c
index fd1cba6..cde0dda 100644
--- a/test/check_gpkgGetImageFormat_nonblob.c
+++ b/test/check_gpkgGetImageFormat_nonblob.c
@@ -51,48 +51,60 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     sqlite3_stmt *stmt;
     int ret;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonblobsqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonblobsqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sql_statement = "SELECT gpkgGetImageType(1000)";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
+      {
+	  fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret,
+		   sqlite3_errmsg (db_handle));
+	  return -30;
+      }
     ret = sqlite3_step (stmt);
     if (ret != SQLITE_ERROR)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
-    // TODO: check the error string
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i\n", ret);
+	  return -31;
+      }
+    /* TODO: check the error string */
     ret = sqlite3_finalize (stmt);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_gpkgGetImageFormat_nonimage.c b/test/check_gpkgGetImageFormat_nonimage.c
index 9bd93e8..5aeb41b 100644
--- a/test/check_gpkgGetImageFormat_nonimage.c
+++ b/test/check_gpkgGetImageFormat_nonimage.c
@@ -51,64 +51,79 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     sqlite3_stmt *stmt;
     int ret;
-    void *cache = spatialite_alloc_connection();
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonimage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonimage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sql_statement = "SELECT gpkgGetImageType(zeroblob(1000))";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
+      {
+	  fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret,
+		   sqlite3_errmsg (db_handle));
+	  return -30;
+      }
     ret = sqlite3_step (stmt);
     if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i\n", ret);
+	  return -31;
+      }
     if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (strcmp((const char*)sqlite3_column_text(stmt, 0), "unknown") != 0)
-    {
-	fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0));
-	return -33;
-    }
-    ret = sqlite3_step(stmt);
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "unknown") != 0)
+      {
+	  fprintf (stderr, "wrong image type: %s\n",
+		   sqlite3_column_text (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
     if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -34;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -34;
+      }
     ret = sqlite3_finalize (stmt);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_gpkgGetImageFormat_png.c b/test/check_gpkgGetImageFormat_png.c
index 79a0d24..8ea4263 100644
--- a/test/check_gpkgGetImageFormat_png.c
+++ b/test/check_gpkgGetImageFormat_png.c
@@ -51,92 +51,109 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     sqlite3_stmt *stmt;
     int ret;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
     char *old_SPATIALITE_SECURITY_ENV = NULL;
 #ifdef _WIN32
-	char *env;
+    char *env;
 #endif /* not WIN32 */
 
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
 #ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
+    putenv ("SPATIALITE_SECURITY=relaxed");
 #else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
 #endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_png.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_png.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
     if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
 #else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
 #endif
-    }
+      }
     else
-    {
+      {
 #ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
+	  putenv ("SPATIALITE_SECURITY=");
 #else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
+	  unsetenv ("SPATIALITE_SECURITY");
 #endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.png\"))";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
+      {
+	  fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret,
+		   sqlite3_errmsg (db_handle));
+	  return -30;
+      }
     ret = sqlite3_step (stmt);
     if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i\n", ret);
+	  return -31;
+      }
     if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (strcmp((const char*)sqlite3_column_text(stmt, 0), "png") != 0)
-    {
-	fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0));
-	return -33;
-    }
-    ret = sqlite3_step(stmt);
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "png") != 0)
+      {
+	  fprintf (stderr, "wrong image type: %s\n",
+		   sqlite3_column_text (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
     if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -34;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -34;
+      }
     ret = sqlite3_finalize (stmt);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_gpkgGetImageFormat_tiff.c b/test/check_gpkgGetImageFormat_tiff.c
index 47cdff8..c8bb404 100644
--- a/test/check_gpkgGetImageFormat_tiff.c
+++ b/test/check_gpkgGetImageFormat_tiff.c
@@ -51,92 +51,109 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     sqlite3_stmt *stmt;
     int ret;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
     char *old_SPATIALITE_SECURITY_ENV = NULL;
 #ifdef _WIN32
-	char *env;
+    char *env;
 #endif /* not WIN32 */
 
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
 #ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
+    putenv ("SPATIALITE_SECURITY=relaxed");
 #else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
 #endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_tiff.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_tiff.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
     if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
 #else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
 #endif
-    }
+      }
     else
-    {
+      {
 #ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
+	  putenv ("SPATIALITE_SECURITY=");
 #else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
+	  unsetenv ("SPATIALITE_SECURITY");
 #endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.tif\"))";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
+      {
+	  fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret,
+		   sqlite3_errmsg (db_handle));
+	  return -30;
+      }
     ret = sqlite3_step (stmt);
     if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i\n", ret);
+	  return -31;
+      }
     if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (strcmp((const char*)sqlite3_column_text(stmt, 0), "tiff") != 0)
-    {
-	fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0));
-	return -33;
-    }
-    ret = sqlite3_step(stmt);
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "tiff") != 0)
+      {
+	  fprintf (stderr, "wrong image type: %s\n",
+		   sqlite3_column_text (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
     if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -34;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -34;
+      }
     ret = sqlite3_finalize (stmt);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_gpkgGetImageFormat_webp.c b/test/check_gpkgGetImageFormat_webp.c
index 20b717c..1136e42 100644
--- a/test/check_gpkgGetImageFormat_webp.c
+++ b/test/check_gpkgGetImageFormat_webp.c
@@ -51,92 +51,109 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 #include "test_helpers.h"
 
-int main (int argc UNUSED, char *argv[] UNUSED)
+int
+main (int argc UNUSED, char *argv[]UNUSED)
 {
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     sqlite3_stmt *stmt;
     int ret;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
     char *old_SPATIALITE_SECURITY_ENV = NULL;
 #ifdef _WIN32
-	char *env;
+    char *env;
 #endif /* not WIN32 */
 
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
+    old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY");
 #ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
+    putenv ("SPATIALITE_SECURITY=relaxed");
 #else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
+    setenv ("SPATIALITE_SECURITY", "relaxed", 1);
 #endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_webp.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_webp.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
     if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
+      {
+#ifdef _WIN32
+	  env =
+	      sqlite3_mprintf ("SPATIALITE_SECURITY=%s",
+			       old_SPATIALITE_SECURITY_ENV);
+	  putenv (env);
+	  sqlite3_free (env);
 #else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
+	  setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
 #endif
-    }
+      }
     else
-    {
+      {
 #ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
+	  putenv ("SPATIALITE_SECURITY=");
 #else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
+	  unsetenv ("SPATIALITE_SECURITY");
 #endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
     sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"test.webp\"))";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
+      {
+	  fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret,
+		   sqlite3_errmsg (db_handle));
+	  return -30;
+      }
     ret = sqlite3_step (stmt);
     if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i\n", ret);
+	  return -31;
+      }
     if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (strcmp((const char*)sqlite3_column_text(stmt, 0), "x-webp") != 0)
-    {
-	fprintf(stderr, "wrong image type: %s\n", sqlite3_column_text(stmt, 0));
-	return -33;
-    }
-    ret = sqlite3_step(stmt);
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "x-webp") != 0)
+      {
+	  fprintf (stderr, "wrong image type: %s\n",
+		   sqlite3_column_text (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
     if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -34;
-    }
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -34;
+      }
     ret = sqlite3_finalize (stmt);
-    
+
     ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -200;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_gpkgInsertEpsgSRID.c b/test/check_gpkgInsertEpsgSRID.c
new file mode 100644
index 0000000..9848ff9
--- /dev/null
+++ b/test/check_gpkgInsertEpsgSRID.c
@@ -0,0 +1,260 @@
+/*
+
+ check_gpkgInsertEpsgSRID.c - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2012
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char *sql_statement;
+    sqlite3_stmt *stmt;
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkgInsertEpsgSRID.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -100;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(3857)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Unexpected gpkgInsertEpsgSRID() result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -101;
+      }
+
+    /* check insert is OK */
+    sql_statement =
+	"SELECT srs_name, organization, organization_coordsys_id FROM gpkg_spatial_ref_sys WHERE srs_id=3857";
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "failed to prepare SELECT ... FROM gpkg_spatial_ref_sys: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -102;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_ROW)
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -103;
+      }
+    if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -104;
+      }
+    if (strcasecmp
+	((const char *) sqlite3_column_text (stmt, 0),
+	 "WGS 84 / Pseudo-Mercator") != 0)
+      {
+	  fprintf (stderr, "wrong srs_name: %s\n",
+		   sqlite3_column_text (stmt, 0));
+	  return -105;
+      }
+    if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT)
+      {
+	  fprintf (stderr, "bad type for column 1: %i\n",
+		   sqlite3_column_type (stmt, 1));
+	  return -106;
+      }
+    if (strcasecmp ((const char *) sqlite3_column_text (stmt, 1), "epsg") != 0)
+      {
+	  fprintf (stderr, "wrong organization: %s\n",
+		   sqlite3_column_text (stmt, 1));
+	  return -107;
+      }
+    if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER)
+      {
+	  fprintf (stderr, "bad type for column 2: %i\n",
+		   sqlite3_column_type (stmt, 2));
+	  return -108;
+      }
+    if (sqlite3_column_int (stmt, 2) != 3857)
+      {
+	  fprintf (stderr, "wrong organization coordinate system ID: %i\n",
+		   sqlite3_column_int (stmt, 2));
+	  return -109;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_DONE)
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -129;
+      }
+    ret = sqlite3_finalize (stmt);
+
+    sqlite3_free (err_msg);
+
+    /* try no WKT, something of a hack here */
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(40001)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgInsertEpsgSRID(40001) result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -130;
+      }
+
+    /* try some bad arguments */
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(34.4)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for insert value, non-integer id, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -200;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgInsertEpsgSRID() error: argument 1 [srid] is not of the integer type")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgInsertEpsgSRID arg 1 bad type: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -201;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(9999999)", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for insert value, invalid id, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -202;
+      }
+    if (strcmp
+	(err_msg,
+	 "gpkgInsertEpsgSRID() error: srid is not defined in the EPSG inlined dataset")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error message for gpkgInsertEpsgSRID arg 1 bad value: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -203;
+      }
+    sqlite3_free (err_msg);
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(3857)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr,
+		   "Expected error for insert value, duplicate entry, got %i\n",
+		   ret);
+	  sqlite3_free (err_msg);
+	  return -204;
+      }
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -400;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkgVirtual.c b/test/check_gpkgVirtual.c
new file mode 100644
index 0000000..bfc5ab9
--- /dev/null
+++ b/test/check_gpkgVirtual.c
@@ -0,0 +1,686 @@
+/*
+
+ check_gpkgVirtual.c - Test case for GeoPackage Extensions
+
+ Author: Sandro Furieri <a.furieri at lqt.it>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Sandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2014
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "config.h"
+
+#ifdef ENABLE_GEOPACKAGE	/* only if GEOPACKAGE is enabled */
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+static void
+do_unlink_all ()
+{
+/* deleting all temporary files */
+    unlink ("./copy-gpkg_test.gpkg");
+}
+
+static int
+test_table (sqlite3 * handle, const char *table)
+{
+/* testing a 'raw' GPKG table */
+    char *sql;
+    int ret;
+    sqlite3_stmt *stmt = NULL;
+
+    sql = sqlite3_mprintf ("SELECT geom, IsValidGPB(geom), ST_Srid(geom), "
+			   "ST_MinX(geom), ST_MaxX(geom), ST_MinY(geom), ST_MaxY(geom), "
+			   "ST_Is3D(geom), ST_IsMeasured(geom), ST_MinZ(geom), ST_MaxZ(geom), "
+			   "ST_MinM(geom), ST_MaxM(geom), ST_GeometryType(geom) FROM %s",
+			   table);
+
+    ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
+    sqlite3_free(sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table,
+		   sqlite3_errmsg (handle));
+	  goto stop;
+      }
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		int is_null = 0;
+		int has_z;
+		int has_m;
+		if (sqlite3_column_type (stmt, 0) == SQLITE_NULL)
+		    is_null = 1;
+		if (sqlite3_column_type (stmt, 1) != SQLITE_INTEGER)
+		  {
+		      fprintf (stderr,
+			       "Unexpected ST_IsValidGPB: not an Integer\n");
+		      goto stop;
+		  }
+		if (is_null)
+		  {
+		      if (sqlite3_column_int (stmt, 1) != 0)
+			{
+			    fprintf (stderr,
+				     "Unexpected result (NULL) ST_IsValidGPB=%d\n",
+				     sqlite3_column_int (stmt, 1));
+			    goto stop;
+			}
+		      continue;
+		  }
+		else
+		  {
+		      if (sqlite3_column_int (stmt, 1) != 1)
+			{
+			    fprintf (stderr,
+				     "Unexpected result ST_IsValidGPB=%d\n",
+				     sqlite3_column_int (stmt, 1));
+			    goto stop;
+			}
+		  }
+		if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER)
+		  {
+		      fprintf (stderr, "Unexpected ST_SRID: not an Integer\n");
+		      goto stop;
+		  }
+		if (sqlite3_column_int (stmt, 2) != 4326)
+		  {
+		      fprintf (stderr, "Unexpected result ST_SRID=%d\n",
+			       sqlite3_column_int (stmt, 2));
+		      goto stop;
+		  }
+		if (sqlite3_column_type (stmt, 3) != SQLITE_FLOAT)
+		  {
+		      fprintf (stderr, "Unexpected ST_MinX: not a Double\n");
+		      goto stop;
+		  }
+		if (sqlite3_column_type (stmt, 4) != SQLITE_FLOAT)
+		  {
+		      fprintf (stderr, "Unexpected ST_MaxX: not a Double\n");
+		      goto stop;
+		  }
+		if (sqlite3_column_type (stmt, 5) != SQLITE_FLOAT)
+		  {
+		      fprintf (stderr, "Unexpected ST_MinY: not a Double\n");
+		      goto stop;
+		  }
+		if (sqlite3_column_type (stmt, 6) != SQLITE_FLOAT)
+		  {
+		      fprintf (stderr, "Unexpected ST_MaxY: not a Double\n");
+		      goto stop;
+		  }
+		if (sqlite3_column_type (stmt, 7) != SQLITE_INTEGER)
+		  {
+		      fprintf (stderr, "Unexpected ST_Is3D: not an Integer\n");
+		      goto stop;
+		  }
+		has_z = sqlite3_column_int (stmt, 7);
+		if (sqlite3_column_type (stmt, 8) != SQLITE_INTEGER)
+		  {
+		      fprintf (stderr,
+			       "Unexpected ST_IsMeasured: not an Integer\n");
+		      goto stop;
+		  }
+		has_m = sqlite3_column_int (stmt, 8);
+		if (has_z)
+		  {
+		      if (sqlite3_column_type (stmt, 9) != SQLITE_FLOAT)
+			{
+			    fprintf (stderr,
+				     "Unexpected ST_MinZ: not a Double\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 10) != SQLITE_FLOAT)
+			{
+			    fprintf (stderr,
+				     "Unexpected ST_MaxZ: not a Double\n");
+			    goto stop;
+			}
+		  }
+		else
+		  {
+		      if (sqlite3_column_type (stmt, 9) != SQLITE_NULL)
+			{
+			    fprintf (stderr, "Unexpected ST_MinZ: not NULL\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 10) != SQLITE_NULL)
+			{
+			    fprintf (stderr, "Unexpected ST_MaxZ: not NULL\n");
+			    goto stop;
+			}
+		  }
+		if (has_m)
+		  {
+		      if (sqlite3_column_type (stmt, 11) != SQLITE_FLOAT)
+			{
+			    fprintf (stderr,
+				     "Unexpected ST_MinM: not a Double\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 12) != SQLITE_FLOAT)
+			{
+			    fprintf (stderr,
+				     "Unexpected ST_MaxM: not a Double\n");
+			    goto stop;
+			}
+		  }
+		else
+		  {
+		      if (sqlite3_column_type (stmt, 11) != SQLITE_NULL)
+			{
+			    fprintf (stderr, "Unexpected ST_MinM: not NULL\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 12) != SQLITE_NULL)
+			{
+			    fprintf (stderr, "Unexpected ST_MaxM: not NULL\n");
+			    goto stop;
+			}
+		  }
+		if (sqlite3_column_type (stmt, 13) != SQLITE_TEXT)
+		  {
+		      fprintf (stderr,
+			       "Unexpected ST_GeometryType: not TEXT\n");
+		      goto stop;
+		  }
+	    }
+	  else
+	    {
+		/* an unexpected error occurred */
+		fprintf (stderr, "Error while querying from \"%s\": %s\n",
+			 table, sqlite3_errmsg (handle));
+		goto stop;
+	    }
+      }
+    sqlite3_finalize (stmt);
+    return 1;
+
+  stop:
+    if (stmt != NULL)
+	sqlite3_finalize (stmt);
+    return 0;
+}
+
+static int
+test_vtable (sqlite3 * handle, const char *table, int mode)
+{
+/* testing a VirtualGPKG table */
+    char *sql;
+    int ret;
+    sqlite3_stmt *stmt = NULL;
+
+    if (mode)
+      {
+	  sql = sqlite3_mprintf ("SELECT ROWID, first_name, "
+				 "last_name, value1, value2 FROM vgpkg_%s",
+				 table);
+      }
+    else
+      {
+	  sql = sqlite3_mprintf ("SELECT geom, ST_AsText(geom), id, name "
+				 "FROM vgpkg_%s", table);
+      }
+
+    ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "SELECT FROM \"vgpkg_%s\" error: %s\n", table,
+		   sqlite3_errmsg (handle));
+	  goto stop;
+      }
+    while (1)
+      {
+	  /* scrolling the result set rows */
+	  ret = sqlite3_step (stmt);
+	  if (ret == SQLITE_DONE)
+	      break;		/* end of result set */
+	  if (ret == SQLITE_ROW)
+	    {
+		if (mode)
+		  {
+		      if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER)
+			{
+			    fprintf (stderr,
+				     "Unexpected ROWID: not an INTEGER\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT)
+			{
+			    fprintf (stderr,
+				     "Unexpected \"first_name\": not a TEXT string\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 2) != SQLITE_TEXT)
+			{
+			    fprintf (stderr,
+				     "Unexpected \"first_name\": not a TEXT string\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 3) != SQLITE_FLOAT)
+			{
+			    fprintf (stderr,
+				     "Unexpected \"first_name\": not a DOUBLE\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 4) != SQLITE_FLOAT)
+			{
+			    fprintf (stderr,
+				     "Unexpected \"first_name\": not a DOUBLE\n");
+			    goto stop;
+			}
+		  }
+		else
+		  {
+		      if (sqlite3_column_type (stmt, 0) == SQLITE_NULL)
+			  continue;
+		      if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT)
+			{
+			    fprintf (stderr,
+				     "Unexpected ST_AsText: not a TEXT string\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER)
+			{
+			    fprintf (stderr,
+				     "Unexpected \"id\": not an INTEGER\n");
+			    goto stop;
+			}
+		      if (sqlite3_column_type (stmt, 3) != SQLITE_TEXT)
+			{
+			    fprintf (stderr,
+				     "Unexpected \"name\": not a TEXT string\n");
+			    goto stop;
+			}
+		  }
+	    }
+	  else
+	    {
+		/* an unexpected error occurred */
+		fprintf (stderr, "Error while querying from \"vgpkg_%s\": %s\n",
+			 table, sqlite3_errmsg (handle));
+		goto stop;
+	    }
+      }
+    sqlite3_finalize (stmt);
+    return 1;
+
+  stop:
+    if (stmt != NULL)
+	sqlite3_finalize (stmt);
+    return 0;
+}
+
+static int
+test_vtable_out (sqlite3 * handle)
+{
+/* testing VirtualGPKG insert/update/delete */
+    const char *sql;
+    int ret;
+    char *sql_err = NULL;
+
+    sql = "BEGIN";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "BEGIN error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql =
+	"INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2, geom) "
+	"VALUES ('z1', 'charlie', 1, 2, MakePoint(3, 3, 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #1 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql =
+	"INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2, geom) "
+	"VALUES ('z2', 'annie', 1.1, 2.2, MakePoint(4, 4, 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #2 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2) "
+	"VALUES ('z3', 'peter', 2.2, 3.3)";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #3 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "UPDATE vgpkg_test_pk SET geom = MakePoint(14, 14, 4326) "
+	"WHERE first_name = 'z1'";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UPDATE #1 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "UPDATE vgpkg_test_pk SET value1 = 13.4 " "WHERE ROWID = 3";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UPDATE #2 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "UPDATE vgpkg_test_pk SET geom = NULL, value2 = 51 "
+	"WHERE ROWID = 2";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UPDATE #3 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "DELETE FROM vgpkg_test_pk WHERE ROWID = 1";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE #1 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "DELETE FROM vgpkg_test_pk WHERE first_name > 'z'";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE #2 error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    sql = "ROLLBACK";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ROLLBACK error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  return 0;
+      }
+
+    return 1;
+}
+
+int
+main (int argc, char *argv[])
+{
+    sqlite3 *db_handle;
+    int ret;
+    const char *sql;
+    void *cache = NULL;
+    char *sql_err = NULL;
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+    do_unlink_all ();
+
+/* directly testing GPKG */
+    ret = system ("cp ./gpkg_test.gpkg copy-gpkg_test.gpkg");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot copy gpkg_test.gpkg database\n");
+	  return -1;
+      }
+
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 ("./copy-gpkg_test.gpkg", &db_handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open '%s': %s\n", "copy-gpkg_test.gpkg",
+		   sqlite3_errmsg (db_handle));
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+    spatialite_init_ex (db_handle, cache, 0);
+
+    if (!test_table (db_handle, "pt2d"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_table (db_handle, "ln3dz"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_table (db_handle, "pg2dm"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_table (db_handle, "mpt3dzm"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_table (db_handle, "mln2dm"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_table (db_handle, "mpg3dz"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_table (db_handle, "gc3dz"))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+/* activating Auto GPKG Wrapping */
+    sql = "SELECT AutoGPKGStart()";
+    ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AutoGPKGStart error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+/* testing the Virtual Tables */
+    if (!test_vtable (db_handle, "pt2d", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "ln3dz", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "pg2dm", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "mpt3dzm", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "mln2dm", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "mpg3dz", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "gc3dz", 0))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable (db_handle, "test_pk", 1))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    if (!test_vtable_out (db_handle))
+      {
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+/* quitting Auto GPKG Wrapping */
+    sql = "SELECT AutoGPKGStop()";
+    ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AutoGPKGStop error: %s\n", sql_err);
+	  sqlite3_free (sql_err);
+	  do_unlink_all ();
+	  sqlite3_close (db_handle);
+	  spatialite_cleanup_ex (cache);
+	  spatialite_shutdown ();
+	  return -1;
+      }
+
+    sqlite3_close (db_handle);
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    do_unlink_all ();
+    return 0;
+}
+
+#endif /* endif GEOPACKAGE enabled */
diff --git a/test/check_gpkg_base_core_container_data_file_format_application_id.c b/test/check_gpkg_base_core_container_data_file_format_application_id.c
new file mode 100644
index 0000000..84d831a
--- /dev/null
+++ b/test/check_gpkg_base_core_container_data_file_format_application_id.c
@@ -0,0 +1,150 @@
+/*
+
+ check_gpkg_base_core_container_data_file_format_application_id.c - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2012
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    sqlite3_stmt *stmt;
+    void *cache = spatialite_alloc_connection ();
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkg_base_core_container_data_file_format_application_id.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    /*
+       / Test Case ID: /base/core/container/data/file_format/application_id
+       / Test Purpose: Verify that the SQLite database header application id field indicates GeoPackage version 1.0
+       / Test Method: Pass if the application id field of the SQLite database header contains “GP10” in ASCII.
+       / Reference: Clause 1.1.1.1.1 Req 2:
+       / Test Type: Basic
+     */
+    ret =
+	sqlite3_prepare_v2 (db_handle, "PRAGMA application_id",
+			    strlen ("PRAGMA application_id"), &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "failed to prepare SQL PRAGMA statement: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -30;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_ROW)
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -31;
+      }
+    if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER)
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    if (sqlite3_column_int (stmt, 0) != 0x47503130)
+      {
+	  fprintf (stderr, "wrong application_id: %i\n",
+		   sqlite3_column_int (stmt, 0));
+	  return -33;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_DONE)
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -34;
+      }
+    ret = sqlite3_finalize (stmt);
+
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkg_base_core_contents_data_table_def.c b/test/check_gpkg_base_core_contents_data_table_def.c
new file mode 100644
index 0000000..b8c228e
--- /dev/null
+++ b/test/check_gpkg_base_core_contents_data_table_def.c
@@ -0,0 +1,356 @@
+/*
+
+ check_gpkg_base_core_contents_data_table_def - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+
+#define __USE_GNU
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+struct tableDefinitionElement
+{
+    const char *column_name;
+    const char *column_type;
+    bool mayBeNull;
+    const char *defaultValue;
+    const char *keySignature;
+    bool wasFound;
+};
+
+struct tableDefinitionElement tableValues[] = {
+    {"table_name", "TEXT", false, NULL, "PRIMARY KEY", false},
+    {"data_type", "TEXT", false, NULL, NULL, false},
+    {"identifier", "TEXT", true, NULL, NULL, false},
+    {"description", "TEXT", true, "''", NULL, false},
+    {"min_x", "DOUBLE", true, NULL, NULL, false},
+    {"min_y", "DOUBLE", true, NULL, NULL, false},
+    {"max_x", "DOUBLE", true, NULL, NULL, false},
+    {"max_y", "DOUBLE", true, NULL, NULL, false},
+    {"srs_id", "INTEGER", true, NULL, NULL, false},
+    {NULL, NULL, false, NULL, NULL, false}
+};
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char *sql_statement;
+    sqlite3_stmt *stmt;
+    void *cache = spatialite_alloc_connection ();
+    int i, j;
+    char *sql;
+    char *str;
+    char *token;
+    char *saveptr;
+    bool valid_last_change = false;
+    bool valid_fk_constraint = false;
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    /*
+       / Test Case ID    /base/core/contents/data/table_def
+       / Test Purpose Verify that the gpkg_contents table exists and has the correct definition.
+       / Test Method
+       /    SELECT sql FROM sqlite_master WHERE type = table AND tbl_name = gpkg_contents
+       /    Fail if returns an empty result set.
+       /    Pass if the column names and column definitions in the returned CREATE TABLE statement,
+       /       including data type, nullability, default values and primary, foreign and unique key
+       /       constraints match all of those in the contents of C.2 Table 18. Column order, check
+       /       constraint and trigger definitions, and other column definitions in the returned sql
+       /       are irrelevant.
+       /    Fail Otherwise
+       / Reference  Clause 1.1.3.1.1 Req 13:
+       / Test Type Basic
+     */
+    sql_statement =
+	"SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_contents'";
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -10;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_ROW)
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -11;
+      }
+    if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -12;
+      }
+    sql =
+	strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") +
+		strlen ("("));
+    if (!sql)
+      {
+	  fprintf (stderr, "unrecognised format for SQL\n");
+	  return -13;
+      }
+
+    for (j = 1, str = sql;; j++, str = NULL)
+      {
+	  token = strtok_r (str, ",", &saveptr);
+	  if (token == NULL)
+	    {
+		break;
+	    }
+	  for (i = 0; tableValues[i].column_name != NULL; ++i)
+	    {
+		while (isspace (*token))
+		  {
+		      token++;
+		  }
+		if (strncasecmp (token, "CONSTRAINT", strlen ("CONSTRAINT")) ==
+		    0)
+		  {
+		      if (strcasestr
+			  (token,
+			   "FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id)"))
+			{
+			    valid_fk_constraint = true;
+			}
+		      continue;
+		  }
+		if (strcasestr (token, tableValues[i].column_name))
+		  {
+		      if (!strcasestr (token, tableValues[i].column_type))
+			{
+			    fprintf (stderr,
+				     "missing COLUMN TYPE %s for %s: %s\n",
+				     tableValues[i].column_type,
+				     tableValues[i].column_name, token);
+			    return -20;
+			}
+		      if (tableValues[i].mayBeNull
+			  && strcasestr (token, "NOT NULL"))
+			{
+			    fprintf (stderr,
+				     "Unexpected NOT NULL constraint for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -21;
+			}
+		      if ((!tableValues[i].mayBeNull)
+			  && (!strcasestr (token, "NOT NULL")))
+			{
+			    fprintf (stderr,
+				     "Missing NOT NULL constraint for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -22;
+			}
+		      if ((tableValues[i].keySignature != NULL)
+			  && (!strcasestr (token, tableValues[i].keySignature)))
+			{
+			    fprintf (stderr,
+				     "Missing %s constraint for %s: %s\n",
+				     tableValues[i].keySignature,
+				     tableValues[i].column_name, token);
+			    return -23;
+			}
+		      if ((tableValues[i].keySignature == NULL)
+			  && (strcasestr (token, "KEY")))
+			{
+			    fprintf (stderr,
+				     "Unexpected key constraint for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -24;
+			}
+		      if ((tableValues[i].defaultValue == NULL)
+			  && (strcasestr (token, "DEFAULT")))
+			{
+			    fprintf (stderr,
+				     "Unexpected default value for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -25;
+			}
+		      if ((tableValues[i].defaultValue != NULL)
+			  && (!strcasestr (token, tableValues[i].defaultValue)))
+			{
+			    fprintf (stderr,
+				     "Missing default value for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -26;
+			}
+		      tableValues[i].wasFound = true;
+		  }
+	    }
+	  if (strcasestr (token, "last_change "))
+	    {
+		/* last_change default has an embedded ',' so we need to grab the next token too. */
+		char *nexttoken = strtok_r (str, ",", &saveptr);
+		char *fulltoken =
+		    malloc (strlen (token) + strlen (",") + strlen (nexttoken) +
+			    1);
+		strcpy (fulltoken, token);
+		strcat (fulltoken, ",");
+		strcat (fulltoken, nexttoken);
+		if (!strcasestr (fulltoken, "TEXT"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE TEXT for last_change: %s\n",
+			       fulltoken);
+		      free (fulltoken);
+		      return -40;
+		  }
+		if (!strcasestr (fulltoken, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Missing NOT NULL constraint for last_change: %s\n",
+			       fulltoken);
+		      free (fulltoken);
+		      return -41;
+		  }
+		if (strcasestr (fulltoken, "KEY"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected KEY constraint for last_change: %s\n",
+			       token);
+		      free (fulltoken);
+		      return -42;
+		  }
+		if (!strcasestr
+		    (fulltoken,
+		     "DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP))"))
+		  {
+		      fprintf (stderr,
+			       "Missing default value for last_change: %s\n",
+			       fulltoken);
+		      free (fulltoken);
+		      return -43;
+		  }
+		free (fulltoken);
+		valid_last_change = true;
+	    }
+      }
+    free (sql);
+
+    for (i = 0; tableValues[i].column_name != NULL; ++i)
+      {
+	  if (tableValues[i].wasFound == false)
+	    {
+		fprintf (stderr, "did not find expected %s column\n",
+			 tableValues[i].column_name);
+		return -50;
+	    }
+      }
+    if (!valid_last_change)
+      {
+	  fprintf (stderr,
+		   "did not find expected last_change column, or required properties were not found\n");
+	  return -51;
+      }
+    if (!valid_fk_constraint)
+      {
+	  fprintf (stderr, "did not find expected FK constraint\n");
+	  return -52;
+      }
+
+
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_DONE)
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -199;
+      }
+    ret = sqlite3_finalize (stmt);
+
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c b/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c
new file mode 100644
index 0000000..90351e6
--- /dev/null
+++ b/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c
@@ -0,0 +1,384 @@
+/*
+
+ check_gpkg_base_core_spatial_ref_sys_data_table_def - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define __USE_GNU
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char *sql_statement;
+    sqlite3_stmt *stmt;
+    void *cache = spatialite_alloc_connection ();
+    int j;
+    char *sql;
+    char *str;
+    char *token;
+    char *saveptr;
+    bool valid_srs_name = false;
+    bool valid_srs_id = false;
+    bool valid_organization = false;
+    bool valid_organization_coordsys_id = false;
+    bool valid_definition = false;
+    bool valid_description = false;
+
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    /*
+       / Test Case ID: /base/core/spatial_ref_sys/data/table_def
+       / Test Purpose: Verify that the gpkg_spatial_ref_sys table exists and has the correct definition.
+       / Test Method:
+       / 1) SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_spatial_ref_sys'
+       / 2) Fail if returns an empty result set
+       / 3) Pass if column names and column definitions in the returned CREATE TABLE statement in the sql column value, including data type, nullability, and primary key
+       /     constraints match all of those in the contents of C.1 Table 18. Column order, check constraint and trigger definitions, and other column definitions in the returned sql are
+       /     irrelevant.
+       / 4) Fail otherwise.
+       / Reference: Clause 1.1.2.1.1 Req 10:
+       / Test Type: Basic
+     */
+
+    sql_statement =
+	"SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_spatial_ref_sys'";
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -30;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_ROW)
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -31;
+      }
+    if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -32;
+      }
+    sql =
+	strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") +
+		strlen ("("));
+    if (!sql)
+      {
+	  fprintf (stderr, "unrecognised format for SQL\n");
+	  return -33;
+      }
+    /*
+       / Column Name                Column Type   Column Description                                                            Null     Key
+       / srs_name                   TEXT          Human readable name of this SRS                                               no
+       / srs_id                     INTEGER       Unique identifier for each Spatial Reference System within a GeoPackage       no       PK
+       / organization               TEXT          Case-insensitive name of the defining organization e.g. EPSG or epsg          no
+       / organization_coordsys_id   INTEGER       Numeric ID of the Spatial Reference System assigned by the organization       no
+       / definition                 TEXT          Well-known Text Representation of the Spatial Reference System                no
+       / description                TEXT          Human readable description of this SRS                                        yes
+     */
+
+    for (j = 1, str = sql;; j++, str = NULL)
+      {
+	  token = strtok_r (str, ",", &saveptr);
+	  if (token == NULL)
+	    {
+		break;
+	    }
+	  if (strstr (token, "srs_name "))
+	    {
+		if (!strstr (token, "TEXT"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE TEXT for srs_name: %s\n",
+			       token);
+		      return -34;
+		  }
+		if (!strstr (token, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Missing NOT NULL constraint for srs_name: %s\n",
+			       token);
+		      return -35;
+		  }
+		if (strstr (token, "KEY"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected KEY constraint for srs_name: %s\n",
+			       token);
+		      return -36;
+		  }
+		valid_srs_name = true;
+	    }
+	  if (strstr (token, "srs_id "))
+	    {
+		if (!strstr (token, "INTEGER"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE INTEGER for srs_id: %s\n",
+			       token);
+		      return -37;
+		  }
+		if (!strstr (token, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Missing NOT NULL constraint for srs_id: %s\n",
+			       token);
+		      return -38;
+		  }
+		if (!strstr (token, "PRIMARY KEY"))
+		  {
+		      fprintf (stderr,
+			       "Missing PRIMARY KEY constraint for srs_id: %s\n",
+			       token);
+		      return -39;
+		  }
+		valid_srs_id = true;
+	    }
+	  if (strstr (token, "organization "))
+	    {
+		if (!strstr (token, "TEXT"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE TEXT for organization: %s\n",
+			       token);
+		      return -40;
+		  }
+		if (!strstr (token, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Missing NOT NULL constraint for organization: %s\n",
+			       token);
+		      return -41;
+		  }
+		if (strstr (token, "KEY"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected KEY constraint for organization: %s\n",
+			       token);
+		      return -42;
+		  }
+		valid_organization = true;
+	    }
+	  if (strstr (token, "organization_coordsys_id "))
+	    {
+		if (!strstr (token, "INTEGER"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE INTEGER for organization_coordsys_id: %s\n",
+			       token);
+		      return -43;
+		  }
+		if (!strstr (token, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Missing NOT NULL constraint for organization_coordsys_id: %s\n",
+			       token);
+		      return -44;
+		  }
+		if (strstr (token, "KEY"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected PRIMARY KEY constraint for organization_coordsys_id: %s\n",
+			       token);
+		      return -45;
+		  }
+		valid_organization_coordsys_id = true;
+	    }
+	  if (strstr (token, "definition "))
+	    {
+		if (!strstr (token, "TEXT"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE TEXT for definition: %s\n",
+			       token);
+		      return -46;
+		  }
+		if (!strstr (token, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Missing NOT NULL constraint for definition: %s\n",
+			       token);
+		      return -47;
+		  }
+		if (strstr (token, "KEY"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected KEY constraint for definition: %s\n",
+			       token);
+		      return -48;
+		  }
+		valid_definition = true;
+	    }
+	  if (strstr (token, "description "))
+	    {
+		if (!strstr (token, "TEXT"))
+		  {
+		      fprintf (stderr,
+			       "missing COLUMN TYPE TEXT for description: %s\n",
+			       token);
+		      return -49;
+		  }
+		if (strstr (token, "NOT NULL"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected NOT NULL constraint for description: %s\n",
+			       token);
+		      return -50;
+		  }
+		if (strstr (token, "KEY"))
+		  {
+		      fprintf (stderr,
+			       "Unexpected KEY constraint for description: %s\n",
+			       token);
+		      return -51;
+		  }
+		valid_description = true;
+	    }
+      }
+    free (sql);
+
+    if (!valid_srs_name)
+      {
+	  fprintf (stderr,
+		   "did not find expected srs_name column, or required properties were not found\n");
+	  return -99;
+      }
+    if (!valid_srs_id)
+      {
+	  fprintf (stderr,
+		   "did not find expected srs_id column, or required properties were not found\n");
+	  return -100;
+      }
+    if (!valid_organization)
+      {
+	  fprintf (stderr,
+		   "did not find expected organization column, or required properties were not found\n");
+	  return -101;
+      }
+    if (!valid_organization_coordsys_id)
+      {
+	  fprintf (stderr,
+		   "did not find expected organization_coordsys_id column, or required properties were not found\n");
+	  return -102;
+      }
+    if (!valid_definition)
+      {
+	  fprintf (stderr,
+		   "did not find expected definition column, or required properties were not found\n");
+	  return -103;
+      }
+    if (!valid_description)
+      {
+	  fprintf (stderr,
+		   "did not find expected description column, or required properties were not found\n");
+	  return -104;
+      }
+
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_DONE)
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -199;
+      }
+    ret = sqlite3_finalize (stmt);
+
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c b/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c
new file mode 100644
index 0000000..cb4657a
--- /dev/null
+++ b/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c
@@ -0,0 +1,279 @@
+/*
+
+ check_gpkg_base_core_spatial_ref_sys_data_values_default - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char **results;
+    void *cache = spatialite_alloc_connection ();
+    int rows;
+    int columns;
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_values_default.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    /*
+       / Test Case ID: /base/core/spatial_ref_sys/data_values_default
+       / Test Purpose: Verify that the spatial_ref_sys table contains the required default contents.
+       / Test Method:
+       /    1) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = -1 returns -1 “NONE” -1 “Undefined”, AND
+       /    2) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = 0 returns 0 “NONE” 0 “Undefined”, AND
+       /    3) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = 4326 returns 
+       /        4326 epsg 4326 GEOGCS["WGS 84", DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]],
+       /        AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]]
+       /     (whitespace irrelevant)
+       /  Pass if tests 1-3 are met
+       /  Fail otherwise
+       / Reference: Clause 1.1.2.1.2 Req 11:
+       / Test Type: Capability
+     */
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = -1",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "get table error, srs_id = -1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
+    if ((rows != 1) || (columns != 4))
+      {
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  sqlite3_free_table (results);
+	  return -10;
+      }
+    if (strcmp (results[1 * columns + 0], "-1") != 0)
+      {
+	  fprintf (stderr, "Unexpected srs_id result (got %s, expected -1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -11;
+      }
+    if (strcmp (results[1 * columns + 1], "NONE") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected organization result (got %s, expected NONE)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -12;
+      }
+    if (strcmp (results[1 * columns + 2], "-1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected organization_coordsys_id result (got %s, expected -1)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -13;
+      }
+    if (strcmp (results[1 * columns + 3], "Undefined") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected definition result (got %s, expected Undefined)",
+		   results[1 * columns + 3]);
+	  sqlite3_free_table (results);
+	  return -14;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = 0",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "get table error, srs_id = 0: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if ((rows != 1) || (columns != 4))
+      {
+	  fprintf (stderr, "Unexpected row / column count (srs_id0): %i x %i\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  return -21;
+      }
+    if (strcmp (results[1 * columns + 0], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected srs_id result (got %s, expected 0)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -22;
+      }
+    if (strcmp (results[1 * columns + 1], "NONE") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected organization result (got %s, expected NONE)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -23;
+      }
+    if (strcmp (results[1 * columns + 2], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected organization_coordsys_id result (got %s, expected 0)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -24;
+      }
+    if (strcmp (results[1 * columns + 3], "Undefined") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected definition result (got %s, expected Undefined)",
+		   results[1 * columns + 3]);
+	  sqlite3_free_table (results);
+	  return -25;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = 4326",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "get table error, srs_id = 4326: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+    if ((rows != 1) || (columns != 4))
+      {
+	  fprintf (stderr,
+		   "Unexpected row / column count (srs_id4326): %i x %i\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  return -31;
+      }
+    if (strcmp (results[1 * columns + 0], "4326") != 0)
+      {
+	  fprintf (stderr, "Unexpected srs_id result (got %s, expected 4326)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -32;
+      }
+    if (strcasecmp (results[1 * columns + 1], "epsg") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected organization result (got %s, expected epsg)",
+		   results[1 * columns + 1]);
+	  sqlite3_free_table (results);
+	  return -33;
+      }
+    if (strcmp (results[1 * columns + 2], "4326") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected organization_coordsys_id result (got %s, expected 4326)",
+		   results[1 * columns + 2]);
+	  sqlite3_free_table (results);
+	  return -34;
+      }
+    if (strcmp
+	(results[1 * columns + 3],
+	 "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected definition result (got %s, expected GEOGCS[...])",
+		   results[1 * columns + 3]);
+	  sqlite3_free_table (results);
+	  return -35;
+      }
+    sqlite3_free_table (results);
+
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c b/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c
new file mode 100644
index 0000000..4a057fb
--- /dev/null
+++ b/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c
@@ -0,0 +1,311 @@
+/*
+
+ check_gpkg_opt_extension_mechanism_extensions_data_table_def - Test case for GeoPackage Extensions
+
+ Author: Brad Hards <bradh at frogmouth.net>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is GeoPackage extensions
+
+The Initial Developer of the Original Code is Brad Hards
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+
+#define __USE_GNU
+#include <string.h>
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+#include "test_helpers.h"
+
+struct tableDefinitionElement
+{
+    const char *column_name;
+    const char *column_type;
+    bool mayBeNull;
+    const char *defaultValue;
+    const char *keySignature;
+    bool wasFound;
+};
+
+struct tableDefinitionElement tableValues[] = {
+    {"table_name", "TEXT", true, NULL, NULL, false},
+    {"column_name", "TEXT", true, NULL, NULL, false},
+    {"extension_name", "TEXT", false, NULL, NULL, false},
+    {"definition", "TEXT", false, NULL, NULL, false},
+    {"scope", "TEXT", false, NULL, NULL, false},
+    {NULL, NULL, false, NULL, NULL, false}
+};
+
+int
+main (int argc UNUSED, char *argv[]UNUSED)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char *sql_statement;
+    sqlite3_stmt *stmt;
+    void *cache = spatialite_alloc_connection ();
+    int i, j;
+    char *sql;
+    char *str;
+    char *token;
+    char *saveptr;
+    bool valid_fk_constraint = false;
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    /* For debugging / testing if required */
+    /*
+       ret = sqlite3_open_v2 ("check_gpkg_opt_extension_mechanism_extensions_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+     */
+    spatialite_init_ex (db_handle, cache, 0);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret,
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    /*
+       / Test Case ID  /opt/extension_mechanism/extensions/data/table_def
+       / Test Purpose  Verify that a gpkg_extensions table exists and has the correct definition.
+       / Test Method:
+       /   1)    SELECT sql FROM sqlite_master WHERE type = table AND tbl_name = gpkg_extensions
+       /   2)    Fail if returns an empty result set.
+       /   3)    Pass if the column names and column definitions in the returned Create TABLE statement
+       /         in the sql column value, including data type, nullability, default values and primary,
+       /         foreign and unique key constraints match all of those in the contents of Table 36.
+       /         Column order, check constraint and trigger definitions, and other column definitions
+       /         in the returned sql are irrelevant.
+       /   4)    Fail otherwise.
+       /   Reference  Clause 2.5.2.1.1 Req 78:
+       /   Test Type  Basic
+     */
+
+    sql_statement =
+	"SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_extensions'";
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -10;
+      }
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_ROW)
+      {
+	  fprintf (stderr, "unexpected return value for first step: %i (%s)\n",
+		   ret, sqlite3_errmsg (db_handle));
+	  return -11;
+      }
+    if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT)
+      {
+	  fprintf (stderr, "bad type for column 0: %i\n",
+		   sqlite3_column_type (stmt, 0));
+	  return -12;
+      }
+    sql =
+	strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") +
+		strlen ("("));
+    if (!sql)
+      {
+	  fprintf (stderr, "unrecognised format for SQL\n");
+	  return -13;
+      }
+
+    for (j = 1, str = sql;; j++, str = NULL)
+      {
+	  token = strtok_r (str, ",", &saveptr);
+	  if (token == NULL)
+	    {
+		break;
+	    }
+	  while (isspace (*token))
+	    {
+		token++;
+	    }
+	  if (strncasecmp (token, "CONSTRAINT", strlen ("CONSTRAINT")) == 0)
+	    {
+		/* unique constraint has embedded ','s so we need to grab the next two tokens */
+		char *nexttoken1 = strtok_r (str, ",", &saveptr);
+		char *nexttoken2 = strtok_r (str, ",", &saveptr);
+		char *fulltoken =
+		    malloc (strlen (token) + strlen (",") +
+			    strlen (nexttoken1) + strlen (",") +
+			    strlen (nexttoken2) + 1);
+		strcpy (fulltoken, token);
+		strcat (fulltoken, ",");
+		strcat (fulltoken, nexttoken1);
+		strcat (fulltoken, ",");
+		strcat (fulltoken, nexttoken2);
+		if (strcasestr
+		    (fulltoken,
+		     "UNIQUE (table_name, column_name, extension_name)"))
+		  {
+		      valid_fk_constraint = true;
+		  }
+		continue;
+	    }
+	  for (i = 0; tableValues[i].column_name != NULL; ++i)
+	    {
+
+		if (strcasestr (token, tableValues[i].column_name))
+		  {
+		      if (!strcasestr (token, tableValues[i].column_type))
+			{
+			    fprintf (stderr,
+				     "missing COLUMN TYPE %s for %s: %s\n",
+				     tableValues[i].column_type,
+				     tableValues[i].column_name, token);
+			    return -20;
+			}
+		      if (tableValues[i].mayBeNull
+			  && strcasestr (token, "NOT NULL"))
+			{
+			    fprintf (stderr,
+				     "Unexpected NOT NULL constraint for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -21;
+			}
+		      if ((!tableValues[i].mayBeNull)
+			  && (!strcasestr (token, "NOT NULL")))
+			{
+			    fprintf (stderr,
+				     "Missing NOT NULL constraint for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -22;
+			}
+		      if ((tableValues[i].keySignature != NULL)
+			  && (!strcasestr (token, tableValues[i].keySignature)))
+			{
+			    fprintf (stderr,
+				     "Missing %s constraint for %s: %s\n",
+				     tableValues[i].keySignature,
+				     tableValues[i].column_name, token);
+			    return -23;
+			}
+		      if ((tableValues[i].keySignature == NULL)
+			  && (strcasestr (token, "KEY")))
+			{
+			    fprintf (stderr,
+				     "Unexpected key constraint for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -24;
+			}
+		      if ((tableValues[i].defaultValue == NULL)
+			  && (strcasestr (token, "DEFAULT")))
+			{
+			    fprintf (stderr,
+				     "Unexpected default value for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -25;
+			}
+		      if ((tableValues[i].defaultValue != NULL)
+			  && (!strcasestr (token, tableValues[i].defaultValue)))
+			{
+			    fprintf (stderr,
+				     "Missing default value for %s: %s\n",
+				     tableValues[i].column_name, token);
+			    return -26;
+			}
+		      tableValues[i].wasFound = true;
+		  }
+	    }
+      }
+    free (sql);
+
+    for (i = 0; tableValues[i].column_name != NULL; ++i)
+      {
+	  if (tableValues[i].wasFound == false)
+	    {
+		fprintf (stderr, "did not find expected %s column\n",
+			 tableValues[i].column_name);
+		return -50;
+	    }
+      }
+    if (!valid_fk_constraint)
+      {
+	  fprintf (stderr, "did not find expected FK constraint\n");
+	  return -52;
+      }
+
+
+    ret = sqlite3_step (stmt);
+    if (ret != SQLITE_DONE)
+      {
+	  fprintf (stderr, "unexpected return value for second step: %i\n",
+		   ret);
+	  return -199;
+      }
+    ret = sqlite3_finalize (stmt);
+
+    sqlite3_free (err_msg);
+
+    ret = sqlite3_close (db_handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  return -200;
+      }
+
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_init.c b/test/check_init.c
index d3fe003..97e425e 100644
--- a/test/check_init.c
+++ b/test/check_init.c
@@ -48,43 +48,56 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
     spatialite_init_ex (handle, cache, 0);
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -2;
-    }       
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -2;
+      }
     spatialite_cleanup_ex (cache);
-    
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -3;
-    }
+
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -3;
+      }
     spatialite_init_ex (handle, cache, 1);
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -4;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -4;
+      }
     spatialite_cleanup_ex (cache);
-    
+
     return 0;
 }
diff --git a/test/check_init2.c b/test/check_init2.c
index cedfa0e..fc59094 100644
--- a/test/check_init2.c
+++ b/test/check_init2.c
@@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -56,251 +57,361 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(\"NONE\")", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata(\"NONE\") error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(4326)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Insert SRID 4326 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(2998)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Insert SRID 2998 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -4;
-    }
-    
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(\"NONE\")", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata(\"NONE\") error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InsertEpsgSrid(4326)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Insert SRID 4326 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InsertEpsgSrid(2998)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Insert SRID 2998 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -5;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -5;
+      }
+
     spatialite_cleanup_ex (cache);
-    
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -6;
-    }
+
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -6;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(3.4)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InitSpatialMetadata() bad result: %i/%i.\n", rows, columns);
-	return  -8;
-    }
-    if (strcmp(results[1], "0") != 0) {
-	fprintf (stderr, "Unexpected result: InitSpatialMetadata() with non-text passed: %s.\n", results[1]);
-	return  -9;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InitSpatialMetadata(3.4)", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InitSpatialMetadata() bad result: %i/%i.\n",
+		   rows, columns);
+	  return -8;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected result: InitSpatialMetadata() with non-text passed: %s.\n",
+		   results[1]);
+	  return -9;
+      }
     sqlite3_free_table (results);
-    
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -10;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -10;
+      }
+
     spatialite_cleanup_ex (cache);
-    
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -11;
-    }
+
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -11;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"EMPTY\")", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InitSpatialMetadata(\"EMPTY\") bad result: %i/%i.\n", rows, columns);
-	return  -13;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"EMPTY\"): %s.\n", results[1]);
-	return  -14;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"EMPTY\")",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InitSpatialMetadata(\"EMPTY\") bad result: %i/%i.\n",
+		   rows, columns);
+	  return -13;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: InitSpatialMetadata(\"EMPTY\"): %s.\n",
+		   results[1]);
+	  return -14;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) bad result: %i/%i.\n", rows, columns);
-	return  -16;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: InsertEpsgSrid(4326): %s.\n", results[1]);
-	return  -17;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InsertEpsgSrid(4326) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -16;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: InsertEpsgSrid(4326): %s.\n",
+		   results[1]);
+	  return -17;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(\"Non-integer\")", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InsertEpsgSrid(\"Non-integer\") bad result: %i/%i.\n", rows, columns);
-	return  -19;
-    }
-    if (strcmp(results[1], "0") != 0) {
-	fprintf (stderr, "Unexpected result: InsertEpsgSrid() with non-integer passed: %s.\n", results[1]);
-	return  -20;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InsertEpsgSrid(\"Non-integer\")",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InsertEpsgSrid(\"Non-integer\") bad result: %i/%i.\n",
+		   rows, columns);
+	  return -19;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected result: InsertEpsgSrid() with non-integer passed: %s.\n",
+		   results[1]);
+	  return -20;
+      }
     sqlite3_free_table (results);
-    
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -21;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -21;
+      }
+
     spatialite_cleanup_ex (cache);
-     
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -22;
-    }
+
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -22;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84\")", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -23;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84\") bad result: %i/%i.\n", rows, columns);
-	return  -24;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84\"): %s.\n", results[1]);
-	return  -25;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84\")",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InitSpatialMetadata(\"WGS84\") bad result: %i/%i.\n",
+		   rows, columns);
+	  return -24;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: InitSpatialMetadata(\"WGS84\"): %s.\n",
+		   results[1]);
+	  return -25;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(3003)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -26;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InsertEpsgSrid(3003) bad result: %i/%i.\n", rows, columns);
-	return  -27;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: InsertEpsgSrid(3003): %s.\n", results[1]);
-	return  -28;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InsertEpsgSrid(3003)", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InsertEpsgSrid(3003) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -27;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: InsertEpsgSrid(3003): %s.\n",
+		   results[1]);
+	  return -28;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -29;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) (dupe) bad result: %i/%i.\n", rows, columns);
-	return  -30;
-    }
-    if (strcmp(results[1], "0") != 0) {
-	fprintf (stderr, "Unexpected result: InsertEpsgSrid(4326) duplicate passed: %s.\n", results[1]);
-	return  -31;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InsertEpsgSrid(4326) (dupe) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -30;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected result: InsertEpsgSrid(4326) duplicate passed: %s.\n",
+		   results[1]);
+	  return -31;
+      }
     sqlite3_free_table (results);
-    
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -32;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -32;
+      }
+
     spatialite_cleanup_ex (cache);
-        
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -33;
-    }
+
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -33;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84_only\")", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -34;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84_ONLY\") bad result: %i/%i.\n", rows, columns);
-	return  -35;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84_ONLY\"): %s.\n", results[1]);
-	return  -36;
-    }
+
+    ret =
+	sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84_only\")",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected result InitSpatialMetadata(\"WGS84_ONLY\") bad result: %i/%i.\n",
+		   rows, columns);
+	  return -35;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: InitSpatialMetadata(\"WGS84_ONLY\"): %s.\n",
+		   results[1]);
+	  return -36;
+      }
     sqlite3_free_table (results);
-    
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -32;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -32;
+      }
+
     spatialite_cleanup_ex (cache);
-    
+
     return 0;
 }
diff --git a/test/check_libxml2.c b/test/check_libxml2.c
index 80a4420..bc2d6b0 100644
--- a/test/check_libxml2.c
+++ b/test/check_libxml2.c
@@ -51,9 +51,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-
-#include <libxml/parser.h>
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
 
 #define ISO_METADATA	1
 #define SLD_SE_STYLE	2
@@ -72,38 +70,42 @@ check_bad_xml (void *cache)
     char *err1;
     char *err2;
     char *version = gaia_libxml2_version ();
-    
-    if (version == NULL) {
-	fprintf (stderr, "unable to get the library version\n");
-	return 0;
-    }
+
+    if (version == NULL)
+      {
+	  fprintf (stderr, "unable to get the library version\n");
+	  return 0;
+      }
     free (version);
 
 /* loading the XMLDocument */
-    fl = fopen("books-bad.xml", "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"books-bad.xml\"\n");
-	return 0;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz);
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"books-bad.xml\"\n");
-	return 0;
-    }
-    fclose(fl);
+    fl = fopen ("books-bad.xml", "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"books-bad.xml\"\n");
+	  return 0;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"books-bad.xml\"\n");
+	  return 0;
+      }
+    fclose (fl);
 
 /* parsing the XMLDocument */
-    gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, &err1, &err2); 
-    if (p_result != NULL) {
-        fprintf (stderr, "this is not a well-formed XML !!!\n");
-        return 0;
-    }
-
-    free(xml);
+    gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, &err1, &err2);
+    if (p_result != NULL)
+      {
+	  fprintf (stderr, "this is not a well-formed XML !!!\n");
+	  return 0;
+      }
+
+    free (xml);
     return 1;
 }
 
@@ -121,30 +123,34 @@ check_bad_schema (void *cache)
     char *err2;
 
 /* loading the XMLDocument */
-    fl = fopen("books.xml", "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"books.xml\"\n");
-	return 0;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz);
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"books.xml\"\n");
-	return 0;
-    }
-    fclose(fl);
+    fl = fopen ("books.xml", "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"books.xml\"\n");
+	  return 0;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"books.xml\"\n");
+	  return 0;
+      }
+    fclose (fl);
 
 /* validating the XMLDocument */
-    gaiaXmlToBlob (cache, xml, rd, 1, "books-bad.xsd", &p_result, &len, &err1, &err2); 
-    if (p_result != NULL) {
-        fprintf (stderr, "this is not a valid XML !!!\n");
-        return 0;
-    }
-
-    free(xml);
+    gaiaXmlToBlob (cache, xml, rd, 1, "books-bad.xsd", &p_result, &len, &err1,
+		   &err2);
+    if (p_result != NULL)
+      {
+	  fprintf (stderr, "this is not a valid XML !!!\n");
+	  return 0;
+      }
+
+    free (xml);
     return 1;
 }
 
@@ -162,52 +168,63 @@ check_validate (void *cache, const char *path)
     int len;
 
 /* loading the XMLDocument */
-    fl = fopen(path, "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"%s\"\n", path);
-	return 0;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz);
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"%s\"\n", path);
-	return 0;
-    }
-    fclose(fl);
+    fl = fopen (path, "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"%s\"\n", path);
+	  return 0;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"%s\"\n", path);
+	  return 0;
+      }
+    fclose (fl);
 
 /* extracting the Internal SchemaURI */
     schema_uri = gaiaXmlGetInternalSchemaURI (cache, xml, rd);
-    if (schema_uri == NULL) {
-        fprintf (stderr, "unable to identify the Schema for \"%s\"\n", path);
-        return 0;
-    }
+    if (schema_uri == NULL)
+      {
+	  fprintf (stderr, "unable to identify the Schema for \"%s\"\n", path);
+	  return 0;
+      }
 /* validating the XMLDocument */
     gaiaXmlToBlob (cache, xml, rd, 1, schema_uri, &p_result, &len, NULL, NULL);
-    if (p_result == NULL) {
-        fprintf (stderr, "unable to validate \"%s\"\n", path);
-        return 0;
-    }
-    if (!gaiaIsSchemaValidatedXmlBlob (p_result, len)) {
-        fprintf (stderr, "validation failed: \"%s\"\n", path);
-        return 0;
-    }
+    if (p_result == NULL)
+      {
+	  fprintf (stderr, "unable to validate \"%s\"\n", path);
+	  return 0;
+      }
+    if (!gaiaIsSchemaValidatedXmlBlob (p_result, len))
+      {
+	  fprintf (stderr, "validation failed: \"%s\"\n", path);
+	  return 0;
+      }
     schema_uri2 = gaiaXmlBlobGetSchemaURI (p_result, len);
-    if (schema_uri2 == NULL) {
-        fprintf (stderr, "unable to retrieve the ValidationSchemaURI for \"%s\"\n", path);
-        return 0;
-    }
-    if (strcmp (schema_uri, schema_uri2) != 0) {
-        fprintf (stderr, "%s: mismatching SchemaURI \"%s\" (expected \"%s\")\n", path, schema_uri2, schema_uri);
-        return 0;
-    }
-     
+    if (schema_uri2 == NULL)
+      {
+	  fprintf (stderr,
+		   "unable to retrieve the ValidationSchemaURI for \"%s\"\n",
+		   path);
+	  return 0;
+      }
+    if (strcmp (schema_uri, schema_uri2) != 0)
+      {
+	  fprintf (stderr,
+		   "%s: mismatching SchemaURI \"%s\" (expected \"%s\")\n", path,
+		   schema_uri2, schema_uri);
+	  return 0;
+      }
+
     free (schema_uri);
     free (schema_uri2);
-    free(p_result);
-    free(xml);
+    free (p_result);
+    free (xml);
 
     return 1;
 }
@@ -234,28 +251,31 @@ check_extended (void *cache, const char *path, int mode)
     gaiaGeomCollPtr geom;
 
 /* loading the XMLDocument */
-    fl = fopen(path, "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"%s\"\n", path);
-	return 0;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz);
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"%s\"\n", path);
-	return 0;
-    }
-    fclose(fl);
+    fl = fopen (path, "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"%s\"\n", path);
+	  return 0;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"%s\"\n", path);
+	  return 0;
+      }
+    fclose (fl);
 
 /* simple parsing without validation */
     gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL);
-    if (p_result == NULL) {
-        fprintf (stderr, "unable to parse \"%s\"\n", path);
-        return 0;
-    }
+    if (p_result == NULL)
+      {
+	  fprintf (stderr, "unable to parse \"%s\"\n", path);
+	  return 0;
+      }
 
 /* checking the payload type */
     iso = gaiaIsIsoMetadataXmlBlob (p_result, len);
@@ -263,15 +283,17 @@ check_extended (void *cache, const char *path, int mode)
     style = gaiaIsSldSeVectorStyleXmlBlob (p_result, len);
     svg = gaiaIsSvgXmlBlob (p_result, len);
     if (mode == ISO_METADATA && iso && !style && !svg)
-        ;
+	;
     else if (mode == SLD_SE_STYLE && !iso && style && !svg)
-        ;
+	;
     else if (mode == SVG && !iso && !style && svg)
-        ;
-    else {
-        fprintf (stderr, "mismatching type: \"%s\" iso=%d style=%d svg=%d\n", path, iso, style, svg);
-        return 0;
-    }
+	;
+    else
+      {
+	  fprintf (stderr, "mismatching type: \"%s\" iso=%d style=%d svg=%d\n",
+		   path, iso, style, svg);
+	  return 0;
+      }
 
 /* testing ISO Metadata attributes */
     file_id = gaiaXmlBlobGetFileId (p_result, len);
@@ -279,113 +301,153 @@ check_extended (void *cache, const char *path, int mode)
     title = gaiaXmlBlobGetTitle (p_result, len);
     abstract = gaiaXmlBlobGetAbstract (p_result, len);
     gaiaXmlBlobGetGeometry (p_result, len, &geom_blob, &geom_size);
-    if (mode == ISO_METADATA) {
-    /* verifying ISO Metadata attributes */
-        if (file_id == NULL) {
-            fprintf (stderr, "unexpected NULL FileIdentifier in \"%s\"\n", path);
-            return 0;
-        }
-        if (strcmp(file_id, "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) {
-            fprintf (stderr, "unexpected FileIdentifier in \"%s\" [%s]\n", path, file_id);
-            return 0;
-        }
-        if (parent_id == NULL) {
-            fprintf (stderr, "unexpected NULL ParentIdentifier in \"%s\"\n", path);
-            return 0;
-        }
-        if (strcmp(parent_id, "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) {
-            fprintf (stderr, "unexpected ParentIdentifier in \"%s\" [%s]\n", path, parent_id);
-            return 0;
-        }
-        if (title == NULL) {
-            fprintf (stderr, "unexpected NULL Title in \"%s\"\n", path);
-            return 0;
-        }
-        if (strcmp(title, "Image2000 Product 1 (nl2) Multispectral") != 0) {
-            fprintf (stderr, "unexpected Title in \"%s\" [%s]\n", path, title);
-            return 0;
-        }
-        if (abstract == NULL) {
-            fprintf (stderr, "unexpected NULL Abstract in \"%s\"\n", path);
-            return 0;
-        }
-        if (strcmp(abstract, "IMAGE2000 product 1 individual orthorectified scenes.") != 0) {
-            fprintf (stderr, "unexpected Abstract in \"%s\" [%s]\n", path, abstract);
-            return 0;
-        }
-        if (geom_blob == NULL) {
-            fprintf (stderr, "unexpected NULL Geometry in \"%s\"\n", path);
-            return 0;
-        }
-        geom = gaiaFromSpatiaLiteBlobWkb (geom_blob, geom_size);
-        if (geom == NULL) {
-            fprintf (stderr, "unexpected invalid Geometry in \"%s\"\n", path);
-            return 0;
-        }
-        if (geom->Srid != 4326) {
-            fprintf (stderr, "unexpected Geometry SRID in \"%s\" [%d]\n", path, geom->Srid);
-            return 0;
-        }
-        if (geom->DeclaredType != GAIA_MULTIPOLYGON) {
-            fprintf (stderr, "unexpected Geometry Type in \"%s\" [%d]\n", path, geom->DeclaredType);
-            return 0;
-        }
-        if (geom->MinX != 3.93000000) {
-            fprintf (stderr, "unexpected Geometry MinX in \"%s\" [%1.8f]\n", path, geom->MinX);
-            return 0;
-        }
-        if (geom->MinY != 52.10000000) {
-            fprintf (stderr, "unexpected Geometry MinY in \"%s\" [%1.8f]\n", path, geom->MinY);
-            return 0;
-        }
-        if (geom->MaxX != 7.57000000) {
-            fprintf (stderr, "unexpected Geometry MaxX in \"%s\" [%1.8f]\n", path, geom->MaxX);
-            return 0;
-        }
-        if (geom->MaxY != 54.10000000) {
-            fprintf (stderr, "unexpected Geometry MaxY in \"%s\" [%1.8f]\n", path, geom->MaxY);
-            return 0;
-        }
-        gaiaFreeGeomColl(geom);
-    }
-    else {
-    /* not ISO Metadata */
-        if (strcmp(path, "stazioni_se.xml") == 0)
-        {
-            if (strcmp(title, "SE test - Point [Railway Stations]") != 0) {
-                fprintf (stderr, "unexpected Title in \"%s\"\n", path);
-                return 0;
-            }
-            if (strcmp(abstract, "a complex variable style [depending on actual scale]") != 0) {
-                fprintf (stderr, "unexpected Abstract in \"%s\"\n", path);
-                return 0;
-            }
-        }
-        else
-        {
-            if (title != NULL) {
-                fprintf (stderr, "unexpected Title in \"%s\"\n", path);
-                return 0;
-            }
-            if (abstract != NULL) {
-                fprintf (stderr, "unexpected Abstract in \"%s\"\n", path);
-                return 0;
-            }
-        }
-    }
-
-    free(p_result);
-    free(xml);
+    if (mode == ISO_METADATA)
+      {
+	  /* verifying ISO Metadata attributes */
+	  if (file_id == NULL)
+	    {
+		fprintf (stderr, "unexpected NULL FileIdentifier in \"%s\"\n",
+			 path);
+		return 0;
+	    }
+	  if (strcmp (file_id, "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0)
+	    {
+		fprintf (stderr, "unexpected FileIdentifier in \"%s\" [%s]\n",
+			 path, file_id);
+		return 0;
+	    }
+	  if (parent_id == NULL)
+	    {
+		fprintf (stderr, "unexpected NULL ParentIdentifier in \"%s\"\n",
+			 path);
+		return 0;
+	    }
+	  if (strcmp (parent_id, "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0)
+	    {
+		fprintf (stderr, "unexpected ParentIdentifier in \"%s\" [%s]\n",
+			 path, parent_id);
+		return 0;
+	    }
+	  if (title == NULL)
+	    {
+		fprintf (stderr, "unexpected NULL Title in \"%s\"\n", path);
+		return 0;
+	    }
+	  if (strcmp (title, "Image2000 Product 1 (nl2) Multispectral") != 0)
+	    {
+		fprintf (stderr, "unexpected Title in \"%s\" [%s]\n", path,
+			 title);
+		return 0;
+	    }
+	  if (abstract == NULL)
+	    {
+		fprintf (stderr, "unexpected NULL Abstract in \"%s\"\n", path);
+		return 0;
+	    }
+	  if (strcmp
+	      (abstract,
+	       "IMAGE2000 product 1 individual orthorectified scenes.") != 0)
+	    {
+		fprintf (stderr, "unexpected Abstract in \"%s\" [%s]\n", path,
+			 abstract);
+		return 0;
+	    }
+	  if (geom_blob == NULL)
+	    {
+		fprintf (stderr, "unexpected NULL Geometry in \"%s\"\n", path);
+		return 0;
+	    }
+	  geom = gaiaFromSpatiaLiteBlobWkb (geom_blob, geom_size);
+	  if (geom == NULL)
+	    {
+		fprintf (stderr, "unexpected invalid Geometry in \"%s\"\n",
+			 path);
+		return 0;
+	    }
+	  if (geom->Srid != 4326)
+	    {
+		fprintf (stderr, "unexpected Geometry SRID in \"%s\" [%d]\n",
+			 path, geom->Srid);
+		return 0;
+	    }
+	  if (geom->DeclaredType != GAIA_MULTIPOLYGON)
+	    {
+		fprintf (stderr, "unexpected Geometry Type in \"%s\" [%d]\n",
+			 path, geom->DeclaredType);
+		return 0;
+	    }
+	  if (geom->MinX != 3.93000000)
+	    {
+		fprintf (stderr, "unexpected Geometry MinX in \"%s\" [%1.8f]\n",
+			 path, geom->MinX);
+		return 0;
+	    }
+	  if (geom->MinY != 52.10000000)
+	    {
+		fprintf (stderr, "unexpected Geometry MinY in \"%s\" [%1.8f]\n",
+			 path, geom->MinY);
+		return 0;
+	    }
+	  if (geom->MaxX != 7.57000000)
+	    {
+		fprintf (stderr, "unexpected Geometry MaxX in \"%s\" [%1.8f]\n",
+			 path, geom->MaxX);
+		return 0;
+	    }
+	  if (geom->MaxY != 54.10000000)
+	    {
+		fprintf (stderr, "unexpected Geometry MaxY in \"%s\" [%1.8f]\n",
+			 path, geom->MaxY);
+		return 0;
+	    }
+	  gaiaFreeGeomColl (geom);
+      }
+    else
+      {
+	  /* not ISO Metadata */
+	  if (strcmp (path, "stazioni_se.xml") == 0)
+	    {
+		if (strcmp (title, "SLD test - Point [Railway Stations]") != 0)
+		  {
+		      fprintf (stderr, "unexpected Title in \"%s\"\n", path);
+		      return 0;
+		  }
+		if (strcmp
+		    (abstract,
+		     "an SLD complex variable style [depending on actual scale]")
+		    != 0)
+		  {
+		      fprintf (stderr, "unexpected Abstract in \"%s\"\n", path);
+		      return 0;
+		  }
+	    }
+	  else
+	    {
+		if (title != NULL)
+		  {
+		      fprintf (stderr, "unexpected Title in \"%s\"\n", path);
+		      return 0;
+		  }
+		if (abstract != NULL)
+		  {
+		      fprintf (stderr, "unexpected Abstract in \"%s\"\n", path);
+		      return 0;
+		  }
+	    }
+      }
+
+    free (p_result);
+    free (xml);
     if (file_id)
-        free(file_id);
+	free (file_id);
     if (parent_id)
-        free(parent_id);
+	free (parent_id);
     if (title)
-        free(title);
+	free (title);
     if (abstract)
-        free(abstract);
+	free (abstract);
     if (geom_blob)
-        free(geom_blob);
+	free (geom_blob);
 
     return 1;
 }
@@ -408,205 +470,277 @@ check_parse (void *cache, const char *path)
     char *txt;
 
 /* loading the XMLDocument */
-    fl = fopen(path, "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"%s\"\n", path);
-	return 0;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz);
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"%s\"\n", path);
-	return 0;
-    }
-    fclose(fl);
+    fl = fopen (path, "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"%s\"\n", path);
+	  return 0;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"%s\"\n", path);
+	  return 0;
+      }
+    fclose (fl);
 
 /* parsing the XMLDocument (no validation / compressed) */
-    gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &compressed_sz, NULL, NULL);
-    if (p_result == NULL) {
-        fprintf (stderr, "unable to parse(1) \"%s\"\n", path);
-        return 0;
-    }
+    gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &compressed_sz, NULL,
+		   NULL);
+    if (p_result == NULL)
+      {
+	  fprintf (stderr, "unable to parse(1) \"%s\"\n", path);
+	  return 0;
+      }
     doc_sz = gaiaXmlBlobGetDocumentSize (p_result, compressed_sz);
     gaiaXmlFromBlob (p_result, compressed_sz, 4, &out, &formatted_sz);
-    if (out == NULL) {
-        fprintf (stderr, "unable to format(1) \"%s\"\n", path);
-        return 0;
-    }
-    free(out);
+    if (out == NULL)
+      {
+	  fprintf (stderr, "unable to format(1) \"%s\"\n", path);
+	  return 0;
+      }
+    free (out);
     txt = gaiaXmlTextFromBlob (p_result, compressed_sz, 2);
-    if (txt == NULL) {
-        fprintf (stderr, "unable to format-text(1) \"%s\"\n", path);
-        return 0;
-    }
-    formatted_txt_sz = strlen(txt);
-    free(txt);
-    free(p_result);
+    if (txt == NULL)
+      {
+	  fprintf (stderr, "unable to format-text(1) \"%s\"\n", path);
+	  return 0;
+      }
+    formatted_txt_sz = strlen (txt);
+    free (txt);
+    free (p_result);
 
 /* parsing the XMLDocument (no validation / not compressed) */
-    gaiaXmlToBlob (cache, xml, rd, 0, NULL, &p_result, &uncompressed_sz, NULL, NULL);
-    if (p_result == NULL) {
-        fprintf (stderr, "unable to parse(2) \"%s\"\n", path);
-        return 0;
-    }
-    free(p_result);
-    
-    if (strcmp(path, "books.xml") == 0) {
-        if (compressed_sz != 429) {
-            fprintf (stderr, "books.xml: unexpected compressed size %d (expected 328)\n", compressed_sz);
-            return 0; 
-        }
-        if (uncompressed_sz != 777) {
-            fprintf (stderr, "books.xml: unexpected compressed size %d (expected 777)\n", uncompressed_sz);
-            return 0; 
-        }
-        if (doc_sz != 741) {
-            fprintf (stderr, "books.xml: unexpected document size %d (expected 741)\n", doc_sz);
-            return 0; 
-        }
-        if (formatted_sz != 864) {
-            fprintf (stderr, "books.xml: unexpected formatted size %d (expected 864)\n", formatted_sz);
-            return 0; 
-        }
-        if (formatted_txt_sz != 803) {
-            fprintf (stderr, "books.xml: unexpected formatted-text size %d (expected 803)\n", formatted_txt_sz);
-            return 0; 
-        }
-    }
-    if (strcmp(path, "opera.xml") == 0) {
-        if (compressed_sz != 422) {
-            fprintf (stderr, "opera.xml: unexpected compressed size %d (expected 422)\n", compressed_sz);
-            return 0; 
-        }
-        if (uncompressed_sz != 948) {
-            fprintf (stderr, "opera.xml: unexpected compressed size %d (expected 948)\n", uncompressed_sz);
-            return 0; 
-        }
-        if (doc_sz != 912) {
-            fprintf (stderr, "opera.xml: unexpected document size %d (expected 912)\n", doc_sz);
-            return 0; 
-        }
-        if (formatted_sz != 970) {
-            fprintf (stderr, "opera.xml: unexpected formatted size %d (expected 970)\n", formatted_sz);
-            return 0; 
-        }
-        if (formatted_txt_sz != 909) {
-            fprintf (stderr, "opera.xml: unexpected formatted-text size %d (expected 909)\n", formatted_txt_sz);
-            return 0; 
-        }
-    }
-    if (strcmp(path, "movies.xml") == 0) {
-        if (compressed_sz != 574) {
-            fprintf (stderr, "movies.xml: unexpected compressed size %d (expected 574)\n", compressed_sz);
-            return 0; 
-        }
-        if (uncompressed_sz != 1806) {
-            fprintf (stderr, "movies.xml: unexpected compressed size %d (expected 1806)\n", uncompressed_sz);
-            return 0; 
-        }
-        if (doc_sz != 1770) {
-            fprintf (stderr, "movies.xml: unexpected document size %d (expected 1770)\n", doc_sz);
-            return 0; 
-        }
-        if (formatted_sz != 945) {
-            fprintf (stderr, "movies.xml: unexpected formatted size %d (expected 945)\n", formatted_sz);
-            return 0; 
-        }
-        if (formatted_txt_sz != 884) {
-            fprintf (stderr, "movies.xml: unexpected formatted-text size %d (expected 884)\n", formatted_txt_sz);
-            return 0; 
-        }
-    }
-    free(xml);
+    gaiaXmlToBlob (cache, xml, rd, 0, NULL, &p_result, &uncompressed_sz, NULL,
+		   NULL);
+    if (p_result == NULL)
+      {
+	  fprintf (stderr, "unable to parse(2) \"%s\"\n", path);
+	  return 0;
+      }
+    free (p_result);
+
+    if (strcmp (path, "books.xml") == 0)
+      {
+	  if (compressed_sz != 432)
+	    {
+		fprintf (stderr,
+			 "books.xml: unexpected compressed size %d (expected 432)\n",
+			 compressed_sz);
+		return 0;
+	    }
+	  if (uncompressed_sz != 780)
+	    {
+		fprintf (stderr,
+			 "books.xml: unexpected compressed size %d (expected 780)\n",
+			 uncompressed_sz);
+		return 0;
+	    }
+	  if (doc_sz != 741)
+	    {
+		fprintf (stderr,
+			 "books.xml: unexpected document size %d (expected 741)\n",
+			 doc_sz);
+		return 0;
+	    }
+	  if (formatted_sz != 864)
+	    {
+		fprintf (stderr,
+			 "books.xml: unexpected formatted size %d (expected 864)\n",
+			 formatted_sz);
+		return 0;
+	    }
+	  if (formatted_txt_sz != 803)
+	    {
+		fprintf (stderr,
+			 "books.xml: unexpected formatted-text size %d (expected 803)\n",
+			 formatted_txt_sz);
+		return 0;
+	    }
+      }
+    if (strcmp (path, "opera.xml") == 0)
+      {
+	  if (compressed_sz != 425)
+	    {
+		fprintf (stderr,
+			 "opera.xml: unexpected compressed size %d (expected 425)\n",
+			 compressed_sz);
+		return 0;
+	    }
+	  if (uncompressed_sz != 951)
+	    {
+		fprintf (stderr,
+			 "opera.xml: unexpected compressed size %d (expected 951)\n",
+			 uncompressed_sz);
+		return 0;
+	    }
+	  if (doc_sz != 912)
+	    {
+		fprintf (stderr,
+			 "opera.xml: unexpected document size %d (expected 912)\n",
+			 doc_sz);
+		return 0;
+	    }
+	  if (formatted_sz != 970)
+	    {
+		fprintf (stderr,
+			 "opera.xml: unexpected formatted size %d (expected 970)\n",
+			 formatted_sz);
+		return 0;
+	    }
+	  if (formatted_txt_sz != 909)
+	    {
+		fprintf (stderr,
+			 "opera.xml: unexpected formatted-text size %d (expected 909)\n",
+			 formatted_txt_sz);
+		return 0;
+	    }
+      }
+    if (strcmp (path, "movies.xml") == 0)
+      {
+	  if (compressed_sz != 577)
+	    {
+		fprintf (stderr,
+			 "movies.xml: unexpected compressed size %d (expected 577)\n",
+			 compressed_sz);
+		return 0;
+	    }
+	  if (uncompressed_sz != 1809)
+	    {
+		fprintf (stderr,
+			 "movies.xml: unexpected compressed size %d (expected 1809)\n",
+			 uncompressed_sz);
+		return 0;
+	    }
+	  if (doc_sz != 1770)
+	    {
+		fprintf (stderr,
+			 "movies.xml: unexpected document size %d (expected 1770)\n",
+			 doc_sz);
+		return 0;
+	    }
+	  if (formatted_sz != 945)
+	    {
+		fprintf (stderr,
+			 "movies.xml: unexpected formatted size %d (expected 945)\n",
+			 formatted_sz);
+		return 0;
+	    }
+	  if (formatted_txt_sz != 884)
+	    {
+		fprintf (stderr,
+			 "movies.xml: unexpected formatted-text size %d (expected 884)\n",
+			 formatted_txt_sz);
+		return 0;
+	    }
+      }
+    free (xml);
 
     return 1;
 }
 
-#endif 
+#endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-
-    if (!check_parse(cache, "books.xml")) {
-        fprintf (stderr, "unable to parse \"books.xml\"\n");
-        return -2;
-    }
-    if (!check_parse(cache, "opera.xml")) {
-        fprintf (stderr, "unable to parse \"opera.xml\"\n");
-        return -3;
-    }
-    if (!check_parse(cache, "movies.xml")) {
-        fprintf (stderr, "unable to parse \"movies.xml\"\n");
-        return -4;
-    }
-
-    if (!check_validate(cache, "books.xml")) {
-        fprintf (stderr, "unable to validate \"books.xml\"\n");
-        return -5;
-    }
-    if (!check_validate(cache, "opera.xml")) {
-        fprintf (stderr, "unable to validate \"opera.xml\"\n");
-        return -6;
-    }
-    if (!check_validate(cache, "movies.xml")) {
-        fprintf (stderr, "unable to validate \"movies.xml\"\n");
-        return -7;
-    }
-    if (!check_extended(cache, "inspire-data-example.xml", ISO_METADATA)) {
-        fprintf (stderr, "unable to parse \"inspire-data-example.xml\"\n");
-        return -7;
-    }
-    if (!check_extended(cache, "stazioni_se.xml", SLD_SE_STYLE)) {
-        fprintf (stderr, "unable to parse \"stazioni_se.xml\"\n");
-        return -7;
-    }
-    if (!check_extended(cache, "thunderstorm_mild.svg", SVG)) {
-        fprintf (stderr, "unable to parse \"thunderstorm_mild.svg\"\n");
-        return -7;
-    }
-
-    if (!check_bad_xml(cache)) {
-        fprintf (stderr, "unable to test not well-formed XML\n");
-        return -8;
-    }
-    if (!check_bad_schema(cache)) {
-        fprintf (stderr, "unable to test invalid Schema\n");
-        return -9;
-    }
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+
+    if (!check_parse (cache, "books.xml"))
+      {
+	  fprintf (stderr, "unable to parse \"books.xml\"\n");
+	  return -2;
+      }
+    if (!check_parse (cache, "opera.xml"))
+      {
+	  fprintf (stderr, "unable to parse \"opera.xml\"\n");
+	  return -3;
+      }
+    if (!check_parse (cache, "movies.xml"))
+      {
+	  fprintf (stderr, "unable to parse \"movies.xml\"\n");
+	  return -4;
+      }
+
+    if (!check_validate (cache, "books.xml"))
+      {
+	  fprintf (stderr, "unable to validate \"books.xml\"\n");
+	  return -5;
+      }
+    if (!check_validate (cache, "opera.xml"))
+      {
+	  fprintf (stderr, "unable to validate \"opera.xml\"\n");
+	  return -6;
+      }
+    if (!check_validate (cache, "movies.xml"))
+      {
+	  fprintf (stderr, "unable to validate \"movies.xml\"\n");
+	  return -7;
+      }
+    if (!check_extended (cache, "inspire-data-example.xml", ISO_METADATA))
+      {
+	  fprintf (stderr, "unable to parse \"inspire-data-example.xml\"\n");
+	  return -8;
+      }
+    if (!check_extended (cache, "stazioni_se.xml", SLD_SE_STYLE))
+      {
+	  fprintf (stderr, "unable to parse \"stazioni_se.xml\"\n");
+	  return -9;
+      }
+    if (!check_extended (cache, "thunderstorm_mild.svg", SVG))
+      {
+	  fprintf (stderr, "unable to parse \"thunderstorm_mild.svg\"\n");
+	  return -10;
+      }
+
+    if (!check_bad_xml (cache))
+      {
+	  fprintf (stderr, "unable to test not well-formed XML\n");
+	  return -11;
+      }
+    if (!check_bad_schema (cache))
+      {
+	  fprintf (stderr, "unable to test invalid Schema\n");
+	  return -12;
+      }
 
 #endif
-    
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -10;
-    }
-        
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -10;
+      }
+
     spatialite_cleanup_ex (cache);
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-    xmlCleanupParser();
-#endif
-    
+    spatialite_shutdown ();
+
     return 0;
 }
diff --git a/test/check_math_funcs.c b/test/check_math_funcs.c
index aad8f84..df39d29 100644
--- a/test/check_math_funcs.c
+++ b/test/check_math_funcs.c
@@ -50,49 +50,56 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 static const double double_eps = 0.00000001;
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     double result;
     sqlite3_int64 result64;
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
-    
-    result = math_round(3.4);
-    if (abs(result - 3) > double_eps) {
-	fprintf(stderr, "bad math_round() result for 3.4: %f\n", result);
-	return -1;
-    }
-
-    result = math_round(3.6);
-    if (abs(result - 4) > double_eps) {
-	fprintf(stderr, "bad math_round() result for 3.6: %f\n", result);
-	return -2;
-    }
-    
-    result = math_round(-3.4);
-    if (abs(result + 3) > double_eps) {
-	fprintf(stderr, "bad math_round() result for -3.4: %f\n", result);
-	return -3;
-    }
-
-    result = math_round(-3.6);
-    if (abs(result + 4) > double_eps) {
-	fprintf(stderr, "bad math_round() result for -3.6: %f\n", result);
-	return -4;
-    }
-
-    result64 = math_llabs((sqlite3_int64) 26);
-    if (result64 != 26) {
-	fprintf(stderr, "bad math_llabs() result for 26");
-	return -5;
-    }
-
-    result64 = math_llabs((sqlite3_int64) -26);
-    if (result64 != 26) {
-	fprintf(stderr, "bad math_llabs() result for -26");
-	return -6;
-    }
+
+    result = math_round (3.4);
+    if (abs (result - 3) > double_eps)
+      {
+	  fprintf (stderr, "bad math_round() result for 3.4: %f\n", result);
+	  return -1;
+      }
+
+    result = math_round (3.6);
+    if (abs (result - 4) > double_eps)
+      {
+	  fprintf (stderr, "bad math_round() result for 3.6: %f\n", result);
+	  return -2;
+      }
+
+    result = math_round (-3.4);
+    if (abs (result + 3) > double_eps)
+      {
+	  fprintf (stderr, "bad math_round() result for -3.4: %f\n", result);
+	  return -3;
+      }
+
+    result = math_round (-3.6);
+    if (abs (result + 4) > double_eps)
+      {
+	  fprintf (stderr, "bad math_round() result for -3.6: %f\n", result);
+	  return -4;
+      }
+
+    result64 = math_llabs ((sqlite3_int64) 26);
+    if (result64 != 26)
+      {
+	  fprintf (stderr, "bad math_llabs() result for 26");
+	  return -5;
+      }
+
+    result64 = math_llabs ((sqlite3_int64) - 26);
+    if (result64 != 26)
+      {
+	  fprintf (stderr, "bad math_llabs() result for -26");
+	  return -6;
+      }
 
     return 0;
 }
diff --git a/test/check_mbrcache.c b/test/check_mbrcache.c
index cbe9897..7f078ff 100644
--- a/test/check_mbrcache.c
+++ b/test/check_mbrcache.c
@@ -50,9 +50,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
@@ -61,436 +62,563 @@ int main (int argc, char *argv[])
     int rows;
     int columns;
     int pt;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
 
     ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils",
 			  "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count,
 			  err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 61) {
-	fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-    
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -5;
-    }
-    if ((rows != 22) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -6;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (strcmp(results[22], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected result at 22: %s\n", results[22]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -8;
-    }
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 61)
+      {
+	  fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    if ((rows != 22) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (strcmp (results[22], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected result at 22: %s\n", results[22]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -8;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 'geom');",
 			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateMbrCache error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -9;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateMbrCache error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -14;
-    }
-    if ((rows != 22) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -15;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -16;
-    }
-    if (strcmp(results[22], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -17;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
+    if ((rows != 22) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -15;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -16;
+      }
+    if (strcmp (results[22], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -17;
+      }
     sqlite3_free_table (results);
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrContains(997226.750031, 4627372.000018, 997226.750031, 4627372.000018)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -18;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -19;
-    }
-    if (strcmp(results[1], "Carlantino") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -20;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrContains(997226.750031, 4627372.000018, 997226.750031, 4627372.000018)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -19;
+      }
+    if (strcmp (results[1], "Carlantino") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -20;
+      }
     sqlite3_free_table (results);
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrIntersects(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -21;
-    }
-    if ((rows != 35) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -22;
-    }
-    if (strcmp(results[1], "Apricena") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -23;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrIntersects(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    if ((rows != 35) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -22;
+      }
+    if (strcmp (results[1], "Apricena") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -23;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = 'Zapponeta';",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -24;
-    }
+    ret =
+	sqlite3_exec (handle,
+		      "DELETE FROM Councils WHERE lc_name = 'Zapponeta';", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -25;
-    }
-    if ((rows != 21) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -26;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -27;
-    }
-    if (strcmp(results[21], "Vieste") != 0) {
-	fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -28;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
+    if ((rows != 21) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -26;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -27;
+      }
+    if (strcmp (results[21], "Vieste") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -28;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -29;
-    }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -30;
-    }
-    if ((rows != 21) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -31;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -32;
-    }
-    if (strcmp(results[21], "Vieste") != 0) {
-	fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -33;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+    if ((rows != 21) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -31;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -32;
+      }
+    if (strcmp (results[21], "Vieste") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -33;
+      }
     sqlite3_free_table (results);
-    
-    ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UPDATE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -34;
-    }
+
+    ret =
+	sqlite3_exec (handle,
+		      "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UPDATE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -35;
-    }
-    if ((rows != 21) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -36;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -37;
-    }
-    if (strcmp(results[21], "Vieste") != 0) {
-	fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -38;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
+    if ((rows != 21) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -36;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -37;
+      }
+    if (strcmp (results[21], "Vieste") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -38;
+      }
     sqlite3_free_table (results);
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT rowid, mbr FROM cache_Councils_geom;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -39;
-    }
-    if ((rows != 61) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad cache2 result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -40;
-    }
-    if (strcmp(results[2], "1") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -41;
-    }
-    if (strcmp(results[12], "6") != 0) {
-	fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -42;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT rowid, mbr FROM cache_Councils_geom;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -39;
+      }
+    if ((rows != 61) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad cache2 result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -40;
+      }
+    if (strcmp (results[2], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -41;
+      }
+    if (strcmp (results[12], "6") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -42;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -44;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -44;
+      }
 
 /* creating and feeding a Point table */
-    ret = sqlite3_exec (handle, "CREATE TABLE pt (id INTEGER);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "CREATE TABLE pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -45;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 1, 'XY');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -46;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2.5);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -47;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'XY', 0.5);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -48;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'DUMMY', 'XY');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -49;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'DUMMY');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -50;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -51;
-    }
-    ret = sqlite3_exec (handle, "SELECT CreateMbrCache('pt', 'g');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "CreateMbrCache pt.g error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -52;
-    }
+    ret =
+	sqlite3_exec (handle, "CREATE TABLE pt (id INTEGER);", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('pt', 'g', 4326, 1, 'XY');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2.5);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'XY', 0.5);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('pt', 'g', 4326, 'DUMMY', 'XY');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -49;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'DUMMY');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -50;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -51;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT CreateMbrCache('pt', 'g');", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateMbrCache pt.g error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -52;
+      }
     for (pt = 0; pt < 10000; pt++)
-    {
-    /* inserting Points */
-        char sql[1024];
-        sprintf(sql, "INSERT INTO pt (id, g) VALUES (%d, GeomFromText('POINT(%1.2f %1.2f)', 4326));", pt, 11.0 + (pt / 10000.0), 43.0 + (pt / 10000.0));
-        ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);             
-        if (ret != SQLITE_OK) {
-            fprintf (stderr, "INSERT INTO pt error: %s\n", err_msg);
-            sqlite3_free (err_msg);
-            return -53;
-        }
-    }
+      {
+	  /* inserting Points */
+	  char sql[1024];
+	  sprintf (sql,
+		   "INSERT INTO pt (id, g) VALUES (%d, GeomFromText('POINT(%1.2f %1.2f)', 4326));",
+		   pt, 11.0 + (pt / 10000.0), 43.0 + (pt / 10000.0));
+	  ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "INSERT INTO pt error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		return -53;
+	    }
+      }
     for (pt = 5000; pt < 6000; pt++)
-    {
-    /* updating Points */
-        char sql[1024];
-        sprintf(sql, "UPDATE pt SET g  = GeomFromText('POINT(%1.2f %1.2f)', 4326) WHERE id = %d;", 12.0 + (pt / 10000.0), 42.0 + (pt / 10000.0), pt);
-        ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);             
-        if (ret != SQLITE_OK) {
-            fprintf (stderr, "UPDATE pt error: %s\n", err_msg);
-            sqlite3_free (err_msg);
-            return -54;
-        }
-    }
+      {
+	  /* updating Points */
+	  char sql[1024];
+	  sprintf (sql,
+		   "UPDATE pt SET g  = GeomFromText('POINT(%1.2f %1.2f)', 4326) WHERE id = %d;",
+		   12.0 + (pt / 10000.0), 42.0 + (pt / 10000.0), pt);
+	  ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "UPDATE pt error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		return -54;
+	    }
+      }
     for (pt = 7000; pt < 8000; pt++)
-    {
-    /* deleting Points */
-        char sql[1024];
-        sprintf(sql, "DELETE FROM pt WHERE id = %d;", pt);
-        ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);             
-        if (ret != SQLITE_OK) {
-            fprintf (stderr, "UPDATE pt error: %s\n", err_msg);
-            sqlite3_free (err_msg);
-            return -55;
-        }
-    }
+      {
+	  /* deleting Points */
+	  char sql[1024];
+	  sprintf (sql, "DELETE FROM pt WHERE id = %d;", pt);
+	  ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "UPDATE pt error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		return -55;
+	    }
+      }
 
     ret = sqlite3_exec (handle, "SELECT CreateMbrCache(1, 'geom');",
-                        NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -56;
-    }
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -56;
+      }
     ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 2);",
-                        NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -57;
-    }
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -57;
+      }
     ret = sqlite3_exec (handle, "SELECT FilterMbrWithin('a', 2, 3, 4);",
-                        NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -58;
-    }
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -58;
+      }
     ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 'a', 3, 4);",
-                        NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -59;
-    }
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -59;
+      }
     ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 'a', 4);",
-                        NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -60;
-    }
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -60;
+      }
     ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 3, 'a');",
-                        NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -61;
-    }
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -61;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -62;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -62;
+      }
+
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
+#endif /* end ICONV conditional */
 
     return 0;
 }
diff --git a/test/check_md5.c b/test/check_md5.c
index 1ebe414..a53d10f 100644
--- a/test/check_md5.c
+++ b/test/check_md5.c
@@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "spatialite.h"
 #include "spatialite/gaiaaux.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -60,152 +61,214 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE test (id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NULL)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('test', 'geom', 4326, 'POINT', 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    for (i = 0; i < 1000; i++) {
-    /* inserting thousand points */
-        sprintf(sql, "INSERT INTO test (id, name, geom) VALUES "
-                     "(%d, 'qwertyUOIOP%d', MakePoint(%1.2f, %1.2f, 4326))", i, i, x, y);
-        x += 0.01;
-        y += 0.25;
-        ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "Insert Point(%d) error: %s\n", i, err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -5;
-	}
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE test (id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NULL)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('test', 'geom', 4326, 'POINT', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    for (i = 0; i < 1000; i++)
+      {
+	  /* inserting thousand points */
+	  sprintf (sql, "INSERT INTO test (id, name, geom) VALUES "
+		   "(%d, 'qwertyUOIOP%d', MakePoint(%1.2f, %1.2f, 4326))", i, i,
+		   x, y);
+	  x += 0.01;
+	  y += 0.25;
+	  ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "Insert Point(%d) error: %s\n", i, err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -5;
+	    }
+      }
 
 /* testing MD5Checksum() - BLOB */
-    strcpy(sql, "SELECT MD5Checksum(geom) FROM test WHERE id IN (10, 100, 750)");
+    strcpy (sql,
+	    "SELECT MD5Checksum(geom) FROM test WHERE id IN (10, 100, 750)");
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -6;
-    }
-    if ((rows != 3) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: MD5Checksum (blob) bad result: %i/%i.\n", rows, columns);
-	return  -7;
-    }
-    if (strcmp(results[1], "66db2227f970c7881b57247a28e2f893") != 0) {
-	fprintf (stderr, "Unexpected error: MD5Checksum blob-#1 bad result: %s.\n", results[1]);
-	return  -8;
-    }
-    if (strcmp(results[2], "6fc5f82a0f9093c5287617cac908b557") != 0) {
-	fprintf (stderr, "Unexpected error: MD5Checksum blob-#2 bad result: %s.\n", results[2]);
-	return  -9;
-    }
-    if (strcmp(results[3], "5f92e335d709c85f5858772a5072f0e3") != 0) {
-	fprintf (stderr, "Unexpected error: MD5Checksum blob-#3 bad result: %s.\n", results[3]);
-	return  -10;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    if ((rows != 3) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum (blob) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -7;
+      }
+    if (strcmp (results[1], "66db2227f970c7881b57247a28e2f893") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum blob-#1 bad result: %s.\n",
+		   results[1]);
+	  return -8;
+      }
+    if (strcmp (results[2], "6fc5f82a0f9093c5287617cac908b557") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum blob-#2 bad result: %s.\n",
+		   results[2]);
+	  return -9;
+      }
+    if (strcmp (results[3], "5f92e335d709c85f5858772a5072f0e3") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum blob-#3 bad result: %s.\n",
+		   results[3]);
+	  return -10;
+      }
     sqlite3_free_table (results);
 
 /* testing the aggregate function: MD5TotalChecksum() - BLOB */
-    strcpy(sql, "SELECT MD5TotalChecksum(geom) FROM test");
+    strcpy (sql, "SELECT MD5TotalChecksum(geom) FROM test");
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -11;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: MD5TotalChecksum (blob) bad result: %i/%i.\n", rows, columns);
-	return  -12;
-    }
-    if (strcmp(results[1], "480b0dd7524a3bb4a75e01123a3eedf0") != 0) {
-	fprintf (stderr, "Unexpected error: MD5TotalChecksum() (blob) bad result: %s.\n", results[1]);
-	return  -13;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5TotalChecksum (blob) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -12;
+      }
+    if (strcmp (results[1], "480b0dd7524a3bb4a75e01123a3eedf0") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5TotalChecksum() (blob) bad result: %s.\n",
+		   results[1]);
+	  return -13;
+      }
     sqlite3_free_table (results);
 
 /* testing MD5Checksum() - TEXT */
-    strcpy(sql, "SELECT MD5Checksum(name) FROM test WHERE id IN (10, 100, 750)");
+    strcpy (sql,
+	    "SELECT MD5Checksum(name) FROM test WHERE id IN (10, 100, 750)");
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -14;
-    }
-    if ((rows != 3) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: MD5Checksum (text) bad result: %i/%i.\n", rows, columns);
-	return  -15;
-    }
-    if (strcmp(results[1], "05bc33eb92fb4a319da50825571358ad") != 0) {
-	fprintf (stderr, "Unexpected error: MD5Checksum text-#1 bad result: %s.\n", results[1]);
-	return  -16;
-    }
-    if (strcmp(results[2], "bbf88f3dfa445ea7a37feca8959b08ed") != 0) {
-	fprintf (stderr, "Unexpected error: MD5Checksum text-#2 bad result: %s.\n", results[2]);
-	return  -17;
-    }
-    if (strcmp(results[3], "97805a371d30b02f7a4ee611ff027664") != 0) {
-	fprintf (stderr, "Unexpected error: MD5Checksum text-#3 bad result: %s.\n", results[3]);
-	return  -18;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
+    if ((rows != 3) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum (text) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -15;
+      }
+    if (strcmp (results[1], "05bc33eb92fb4a319da50825571358ad") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum text-#1 bad result: %s.\n",
+		   results[1]);
+	  return -16;
+      }
+    if (strcmp (results[2], "bbf88f3dfa445ea7a37feca8959b08ed") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum text-#2 bad result: %s.\n",
+		   results[2]);
+	  return -17;
+      }
+    if (strcmp (results[3], "97805a371d30b02f7a4ee611ff027664") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5Checksum text-#3 bad result: %s.\n",
+		   results[3]);
+	  return -18;
+      }
     sqlite3_free_table (results);
 
 /* testing the aggregate function: MD5TotalChecksum() - TEXT */
-    strcpy(sql, "SELECT MD5TotalChecksum(name) FROM test");
+    strcpy (sql, "SELECT MD5TotalChecksum(name) FROM test");
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -19;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: MD5TotalChecksum (text) bad result: %i/%i.\n", rows, columns);
-	return  -20;
-    }
-    if (strcmp(results[1], "b775beceb3ef0ee9d9c16d4ddfe81879") != 0) {
-	fprintf (stderr, "Unexpected error: MD5TotalChecksum() (text) bad result: %s.\n", results[1]);
-	return  -21;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -19;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5TotalChecksum (text) bad result: %i/%i.\n",
+		   rows, columns);
+	  return -20;
+      }
+    if (strcmp (results[1], "b775beceb3ef0ee9d9c16d4ddfe81879") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: MD5TotalChecksum() (text) bad result: %s.\n",
+		   results[1]);
+	  return -21;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -22;
-    }
-    
-    spatialite_cleanup_ex(cache);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -22;
+      }
+
+    spatialite_cleanup_ex (cache);
+
     return 0;
 }
diff --git a/test/check_metacatalog.c b/test/check_metacatalog.c
new file mode 100644
index 0000000..1896d5e
--- /dev/null
+++ b/test/check_metacatalog.c
@@ -0,0 +1,623 @@
+/*
+
+ check_metacatalog.c -- SpatiaLite Test Case
+
+ Author: Sandro Furieri <a.furieri at lqt.it>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2011
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+Brad Hards <bradh at frogmouth.net>
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "config.h"
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+int
+main (int argc, char *argv[])
+{
+    int ret;
+    sqlite3 *handle;
+    char *err_msg = NULL;
+    char **results;
+    int rows;
+    int columns;
+    void *cache = spatialite_alloc_connection ();
+
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+/* testing current style metadata layout >= v.4.0.0 */
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE abc (def VARCHAR(10), ghi TEXT NOT NULL)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO abc (def, ghi) VALUES (NULL, 'alpha')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO abc (def, ghi) VALUES (NULL, 'gamma')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO abc (def, ghi) VALUES ('one', 'beta')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-3 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO abc (def, ghi) VALUES ('two', 'gamma')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-4 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO abc (def, ghi) VALUES ('one', 'alpha')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-5 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT CreateMetaCatalogTables(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateMetaCatalogTables error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -8;
+      }
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT table_name, column_name, type, not_null "
+			   "FROM splite_metacatalog "
+			   "WHERE table_name = 'abc'", &results, &rows,
+			   &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error SELECT splite_metacatalog: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
+    if ((rows != 2) || (columns != 4))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: SELECT splite_metacatalog result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+    if (strcmp (results[4], "abc") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -11;
+      }
+    if (strcmp (results[5], "def") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -12;
+      }
+    if (strcmp (results[6], "VARCHAR(10)") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    if (strcmp (results[7], "0") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    if (strcmp (results[8], "abc") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[8]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -15;
+      }
+    if (strcmp (results[9], "ghi") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[9]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    if (strcmp (results[10], "TEXT") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[10]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    if (strcmp (results[11], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[11]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'abc', 'def')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT value, count FROM splite_metacatalog_statistics",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Error SELECT splite_metacatalog_statistics(1): %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -16;
+      }
+    if ((rows != 3) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: SELECT splite_metacatalog_statistics result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+    if (results[2] != NULL)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[2]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -18;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[3]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -19;
+      }
+    if (strcmp (results[4], "one") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -20;
+      }
+    if (strcmp (results[5], "2") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -21;
+      }
+    if (strcmp (results[6], "two") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -22;
+      }
+    if (strcmp (results[7], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -23;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'abc_bad_table', 'def')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "UpdateMetaCatalogStatistics (bad table) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -24;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'abc', 'def_bad_column')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "UpdateMetaCatalogStatistics (bad column) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -25;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO abc (def, ghi) VALUES ('two', 'alpha')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-6 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -26;
+      }
+    ret =
+	sqlite3_exec (handle, "DELETE FROM abc WHERE def IS NULL", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -27;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE my_master (tbl TEXT NOT NULL, col TEXT NOT NULL)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -28;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO my_master (tbl, col) VALUES ('abc', 'def')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-master-1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -29;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO my_master (tbl, col) VALUES ('abc', 'ghi')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-master-2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -30;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO my_master (tbl, col) VALUES ('abc_bad', 'def')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-master-3 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -31;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO my_master (tbl, col) VALUES ('abc', 'ghi_bad')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT-master-4 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -32;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl', 'col')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -33;
+      }
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT column_name, value, count FROM splite_metacatalog_statistics",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr,
+		   "Error SELECT splite_metacatalog_statistics(2): %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
+    if ((rows != 5) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: SELECT splite_metacatalog_statistics result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -35;
+      }
+    if (strcmp (results[3], "def") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[3]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -36;
+      }
+    if (strcmp (results[4], "one") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -37;
+      }
+    if (strcmp (results[5], "2") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -38;
+      }
+    if (strcmp (results[6], "def") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -39;
+      }
+    if (strcmp (results[7], "two") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -40;
+      }
+    if (strcmp (results[8], "2") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[8]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -41;
+      }
+    if (strcmp (results[9], "ghi") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[9]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -42;
+      }
+    if (strcmp (results[10], "alpha") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[10]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -43;
+      }
+    if (strcmp (results[11], "2") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[11]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -44;
+      }
+    if (strcmp (results[12], "ghi") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[12]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -45;
+      }
+    if (strcmp (results[13], "beta") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[13]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -46;
+      }
+    if (strcmp (results[14], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[14]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -47;
+      }
+    if (strcmp (results[15], "ghi") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[15]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -48;
+      }
+    if (strcmp (results[16], "gamma") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[16]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -49;
+      }
+    if (strcmp (results[17], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[17]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -50;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'my_master_bad', 'tbl', 'col')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -51;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl_bad', 'col')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -52;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl', 'col_bad')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -53;
+      }
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -101;
+      }
+
+    spatialite_cleanup_ex (cache);
+
+    return 0;
+}
diff --git a/test/check_multithread.c b/test/check_multithread.c
new file mode 100644
index 0000000..cfa2b68
--- /dev/null
+++ b/test/check_multithread.c
@@ -0,0 +1,967 @@
+/*
+
+ check_multithread.c -- SpatiaLite Test Case
+
+ Author: Alessandro Furieri <a.furieri at lqt.t>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+
+#ifdef _WIN32
+#define _CRT_RAND_S
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+#ifdef _WIN32
+#include <windows.h>
+#include <process.h>
+#include <io.h>
+#else
+#include <pthread.h>
+#include <unistd.h>
+#endif
+
+#ifndef _WIN32
+#include <dirent.h>
+#include <fnmatch.h>
+#endif
+
+#include "config.h"
+
+#include <sqlite3.h>
+#include <spatialite.h>
+
+#ifdef _WIN32
+#include "fnmatch4win.h"
+#include "scandir4win.h"
+#include "asprintf4win.h"
+#include "fnmatch_impl4win.h"
+#endif
+
+struct test_data
+{
+    char *test_case_name;
+    char *database_name;
+    char *sql_statement;
+    int expected_rows;
+    int expected_columns;
+    char **expected_results;
+    int *expected_precision;
+    struct test_data *next;
+};
+
+struct test_list
+{
+    struct test_data *first;
+    struct test_data *last;
+    int count;
+    struct test_data **array;
+};
+
+struct db_conn
+{
+    sqlite3 *db_handle;
+    void *cache;
+};
+
+struct thread_params
+{
+    int id;
+    struct test_list *list;
+    struct db_conn *conn;
+    int done;
+    int count;
+    int errors;
+#ifndef _WIN32
+    int started;
+    pthread_t thread_id;
+    pthread_attr_t attr;
+#endif
+} mt_params[64];
+
+static struct db_conn *
+alloc_connection (void)
+{
+    struct db_conn *conn = malloc (sizeof (struct db_conn));
+    conn->db_handle = NULL;
+    conn->cache = spatialite_alloc_connection ();
+    return conn;
+}
+
+static void
+close_connection (struct db_conn *conn, int final)
+{
+    if (conn->db_handle != NULL)
+	sqlite3_close (conn->db_handle);
+    conn->db_handle = NULL;
+    if (final)
+      {
+	  if (conn->cache != NULL)
+	      spatialite_cleanup_ex (conn->cache);
+	  conn->cache = NULL;
+      }
+}
+
+static void
+open_connection (struct db_conn *conn)
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open %s db: %s\n", ":memory:",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return;
+      }
+
+    spatialite_init_ex (db_handle, conn->cache, 0);
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return;
+      }
+
+    conn->db_handle = db_handle;
+}
+
+static void
+init_thread_params (int id, struct test_list *list)
+{
+    struct thread_params *p = &(mt_params[id]);
+    p->id = id;
+    p->conn = alloc_connection ();
+    p->list = list;
+    p->done = 0;
+    p->count = 0;
+    p->errors = 0;
+#ifndef _WIN32
+    p->started = 0;
+#endif
+}
+
+static void
+free_thread_params (int id, int *total_sql, int *failures)
+{
+    struct thread_params *p = &(mt_params[id]);
+    if (p->conn != NULL)
+      {
+	  close_connection (p->conn, 1);
+	  free (p->conn);
+	  p->conn = NULL;
+      }
+#ifndef _WIN32
+    if (p->started)
+      {
+	  void *ptr;
+	  pthread_join (p->thread_id, &ptr);
+	  pthread_attr_destroy (&(p->attr));
+      }
+#endif
+    *total_sql += p->count;
+    *failures += p->errors;
+}
+
+int
+get_clean_line (FILE * f, char **line)
+{
+    size_t len = 0;
+    ssize_t num_read = 0;
+    ssize_t end = 0;
+    char *tmp_line = NULL;
+
+#if !defined(_WIN32) &&!defined(__APPLE__)
+/* expecting to be on a sane minded platform [linux-like] */
+    num_read = getline (&(tmp_line), &len, f);
+#else
+/* neither Windows nor MacOsX support getline() */
+    len = 1024 * 1024;
+    tmp_line = malloc (len);
+    if (fgets (tmp_line, len, f) == NULL)
+      {
+	  free (tmp_line);
+	  num_read = -1;
+      }
+    else
+	num_read = strlen (tmp_line);
+#endif
+
+    if (num_read < 1)
+      {
+	  fprintf (stderr, "failed to read at %li: %li\n", ftell (f), num_read);
+	  return -1;
+      }
+    /* trim the trailing new line and any comments */
+    for (end = 0; end < num_read; ++end)
+      {
+	  if (*(tmp_line + end) == '\n')
+	      break;
+	  if (*(tmp_line + end) == '#')
+	      break;
+      }
+    /* trim any trailing spaces */
+    while (end > 0)
+      {
+	  if (*(tmp_line + end - 1) != ' ')
+	    {
+		break;
+	    }
+	  *(tmp_line + end - 1) = '\0';
+	  end--;
+      }
+    *line = malloc (end + 1);
+    memcpy (*line, tmp_line, end);
+    (*line)[end] = '\0';
+    free (tmp_line);
+    return 0;
+}
+
+void
+handle_precision (char *expected_result, int *precision)
+{
+    int i;
+    int prcsn;
+    int result_len = strlen (expected_result);
+    *precision = 0;
+    for (i = result_len - 1; i >= 0; --i)
+      {
+	  if (expected_result[i] == ':')
+	    {
+		prcsn = atoi (&(expected_result[i + 1]));
+		if (prcsn > 0)
+		  {
+		      expected_result[i] = '\0';
+		      *precision = prcsn;
+		  }
+		break;
+	    }
+      }
+}
+
+struct test_data *
+read_one_case (const char *filepath)
+{
+    int num_results;
+    int i;
+    char *tmp;
+    FILE *f;
+    struct test_data *data;
+
+    f = fopen (filepath, "r");
+
+    data = malloc (sizeof (struct test_data));
+    data->next = NULL;
+    get_clean_line (f, &(data->test_case_name));
+    get_clean_line (f, &(data->database_name));
+    get_clean_line (f, &(data->sql_statement));
+    get_clean_line (f, &(tmp));
+    data->expected_rows = atoi (tmp);
+    free (tmp);
+    get_clean_line (f, &(tmp));
+    data->expected_columns = atoi (tmp);
+    free (tmp);
+    num_results = (data->expected_rows + 1) * data->expected_columns;
+    data->expected_results = malloc (num_results * sizeof (char *));
+    data->expected_precision = malloc (num_results * sizeof (int));
+    for (i = 0; i < num_results; ++i)
+      {
+	  get_clean_line (f, &(data->expected_results[i]));
+	  handle_precision (data->expected_results[i],
+			    &(data->expected_precision[i]));
+      }
+    fclose (f);
+    return data;
+}
+
+void
+cleanup_test_data (struct test_data *data)
+{
+    int i;
+    int num_results = (data->expected_rows + 1) * (data->expected_columns);
+
+    for (i = 0; i < num_results; ++i)
+      {
+	  free (data->expected_results[i]);
+      }
+    free (data->expected_results);
+    free (data->expected_precision);
+    free (data->test_case_name);
+    free (data->database_name);
+    free (data->sql_statement);
+    free (data);
+}
+
+static void
+add_test (struct test_list *list, struct test_data *data)
+{
+    if (list->first == NULL)
+	list->first = data;
+    if (list->last != NULL)
+	list->last->next = data;
+    list->last = data;
+}
+
+static void
+list_cleanup (struct test_list *list)
+{
+    struct test_data *p;
+    struct test_data *pn;
+    p = list->first;
+    while (p != NULL)
+      {
+	  pn = p->next;
+	  cleanup_test_data (p);
+	  p = pn;
+      }
+    if (list->array != NULL)
+	free (list->array);
+}
+
+static int
+build_test_array (struct test_list *list)
+{
+    struct test_data *p;
+    struct test_data **pn;
+    list->count = 0;
+    if (list->array != NULL)
+	free (list->array);
+    list->array = NULL;
+    p = list->first;
+    while (p != NULL)
+      {
+	  list->count++;
+	  p = p->next;
+      }
+    if (list->count <= 0)
+	return 0;
+    list->array = malloc (sizeof (struct test_data *) * list->count);
+    pn = list->array;
+    p = list->first;
+    while (p != NULL)
+      {
+	  *pn = p;
+	  pn++;
+	  p = p->next;
+      }
+    return 1;
+}
+
+int
+test_case_filter (const struct dirent *entry)
+{
+    return (fnmatch ("*.testcase", entry->d_name, FNM_PERIOD) == 0);
+}
+
+static int
+load_testcases (struct test_list *list)
+{
+    struct dirent **namelist;
+    int n;
+    int i;
+    const char *security_level;
+    const char *current_dir;
+    char *path;
+
+/* plain SQL testcases */
+    current_dir = "sql_stmt_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+
+/* security related testcases */
+    security_level = getenv ("SPATIALITE_SECURITY");
+    if (security_level == NULL)
+	;
+    else if (strcasecmp (security_level, "relaxed") == 0)
+      {
+	  current_dir = "sql_stmt_security_tests";
+	  path = sqlite3_mprintf ("%s", current_dir);
+	  n = scandir (path, &namelist, test_case_filter, alphasort);
+	  if (n < 0)
+	    {
+		perror ("scandir");
+		return 0;
+	    }
+	  sqlite3_free (path);
+	  for (i = 0; i < n; ++i)
+	    {
+		struct test_data *data;
+		char *path;
+		path = sqlite3_mprintf ("%s/%s", current_dir,
+					namelist[i]->d_name);
+		data = read_one_case (path);
+		if (strcmp (data->database_name, ":memory:") == 0)
+		    add_test (list, data);
+		else
+		    cleanup_test_data (data);
+		sqlite3_free (path);
+		free (namelist[i]);
+	    }
+	  free (namelist);
+      }
+
+#ifndef OMIT_MATHSQL		/* only if MATHSQL is supported */
+/* Math SQL testcases */
+    current_dir = "sql_stmt_mathsql_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+#endif /* end MATHSQL conditional */
+
+#ifndef OMIT_PROJ		/* only if PROJ is supported */
+/* PROJ.4 SQL testcases */
+    current_dir = "sql_stmt_proj_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+#endif /* end PROJ conditional */
+
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
+/* GEOS SQL testcases */
+    current_dir = "sql_stmt_geos_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+#endif /* end GEOS conditional */
+
+#ifdef GEOS_ADVANCED		/* only if GEOS_ADVANCED is supported - 3.4.0 */
+/* GEOS ADVANCED SQL testcases */
+    current_dir = "sql_stmt_geosadvanced_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+#endif /* end GEOS_ADVANCED conditional */
+
+#ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
+/* LWGEOM SQL testcases */
+    current_dir = "sql_stmt_lwgeom_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+#endif /* end LWGEOM conditional */
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+/* LIBXML2 SQL testcases */
+    current_dir = "sql_stmt_libxml2_tests";
+    path = sqlite3_mprintf ("%s", current_dir);
+    n = scandir (path, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return 0;
+      }
+    sqlite3_free (path);
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name);
+	  data = read_one_case (path);
+	  if (strcmp (data->database_name, ":memory:") == 0)
+	      add_test (list, data);
+	  else
+	      cleanup_test_data (data);
+	  sqlite3_free (path);
+	  free (namelist[i]);
+      }
+    free (namelist);
+/* security related testcases */
+    security_level = getenv ("SPATIALITE_SECURITY");
+    if (security_level == NULL)
+	;
+    else if (strcasecmp (security_level, "relaxed") == 0)
+      {
+	  current_dir = "sql_stmt_xmlsec_tests";
+	  path = sqlite3_mprintf ("%s", current_dir);
+	  n = scandir (path, &namelist, test_case_filter, alphasort);
+	  if (n < 0)
+	    {
+		perror ("scandir");
+		return 0;
+	    }
+	  sqlite3_free (path);
+	  for (i = 0; i < n; ++i)
+	    {
+		struct test_data *data;
+		char *path;
+		path = sqlite3_mprintf ("%s/%s", current_dir,
+					namelist[i]->d_name);
+		data = read_one_case (path);
+		if (strcmp (data->database_name, ":memory:") == 0
+		    || strcmp (data->database_name, "NEW:memory:") == 0)
+		    add_test (list, data);
+		else
+		    cleanup_test_data (data);
+		sqlite3_free (path);
+		free (namelist[i]);
+	    }
+	  free (namelist);
+      }
+#endif /* end LIBXML2 conditional */
+
+    return 1;
+}
+
+int
+do_one_case (const struct test_data *data, struct db_conn *conn, int thread_id)
+{
+    int ret;
+    char *err_msg = NULL;
+    int i;
+    char **results;
+    int rows;
+    int columns;
+
+    if (strcmp (data->database_name, "NEW:memory:") == 0)
+	close_connection (conn, 0);
+    if (conn->db_handle == NULL)
+	open_connection (conn);
+    if (conn->db_handle == NULL)
+	return -9;
+
+    ret =
+	sqlite3_get_table (conn->db_handle, data->sql_statement, &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  printf ("\nFAILED TEST: Thread #%d %s\n", thread_id,
+		  data->test_case_name);
+	  printf ("Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != data->expected_rows) || (columns != data->expected_columns))
+      {
+	  printf ("\nFAILED TEST: Thread #%d %s\n", thread_id,
+		  data->test_case_name);
+	  printf ("Unexpected error: bad result: %i/%i.\n", rows, columns);
+	  return -11;
+      }
+    for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i)
+      {
+	  if (results[i] != NULL && data->expected_precision[i] == 0)
+	    {
+		data->expected_precision[i] = strlen (results[i]);
+	    }
+	  if (results[i] == NULL)
+	    {
+		if (strcmp ("(NULL)", data->expected_results[i]) == 0)
+		  {
+		      /* we expected this */
+		      continue;
+		  }
+		else
+		  {
+		      printf ("\nFAILED TEST: Thread #%d %s\n", thread_id,
+			      data->test_case_name);
+		      printf ("Null value at %i.\n", i);
+		      printf ("Expected value was: %s\n",
+			      data->expected_results[i]);
+		      return -12;
+		  }
+	    }
+	  else if (strlen (results[i]) == 0)
+	    {
+		printf ("\nFAILED TEST: Thread #%d %s\n", thread_id,
+			data->test_case_name);
+		printf ("zero length result at %i\n", i);
+		printf ("Expected value was    : %s|\n",
+			data->expected_results[i]);
+		return -13;
+	    }
+	  else if (strncmp
+		   (results[i], data->expected_results[i],
+		    data->expected_precision[i]) != 0)
+	    {
+		printf ("\nFAILED TEST: Thread #%d %s\n", thread_id,
+			data->test_case_name);
+		printf ("Unexpected value at %i: %s|\n", i, results[i]);
+		printf ("Expected value was   : %s|\n",
+			data->expected_results[i]);
+		return -14;
+	    }
+      }
+    sqlite3_free_table (results);
+    return 0;
+}
+
+static void
+do_tests (struct thread_params *param)
+{
+    int i;
+    int j;
+    struct test_list *list = param->list;
+    struct db_conn *conn = param->conn;
+
+    for (i = list->count - 1; i >= 0; i--)
+      {
+	  /* tests in backward order */
+	  struct test_data *px = *(list->array + i);
+	  for (j = 0; j < 32; j++)
+	    {
+		int ret = do_one_case (px, conn, param->id);
+		if (ret < 0)
+		    param->errors += 1;
+		param->count++;
+	    }
+      }
+    for (i = 0; i < list->count; i++)
+      {
+	  /* tests in forward order */
+	  struct test_data *px = *(list->array + i);
+	  for (j = 0; j < 32; j++)
+	    {
+		int ret = do_one_case (px, conn, param->id);
+		if (ret < 0)
+		    param->errors += 1;
+		param->count++;
+	    }
+      }
+    for (i = 0; i < 131072; i++)
+      {
+	  /* tests in random order */
+	  struct test_data *px;
+	  int ret;
+	  int x;
+#ifdef _WIN32
+	  x = rand () % list->count;
+#else
+	  x = random () % list->count;
+#endif
+	  px = *(list->array + x);
+	  ret = do_one_case (px, conn, param->id);
+	  if (ret < 0)
+	      param->errors += 1;
+	  param->count++;
+      }
+}
+
+#ifdef _WIN32
+DWORD WINAPI
+exec_thread (void *arg)
+#else
+void *
+exec_thread (void *arg)
+#endif
+{
+/* thread implementation */
+    struct thread_params *param = (struct thread_params *) arg;
+    do_tests (param);
+/* thread termination */
+    if (param->errors)
+	printf ("\nThread %d reports %d error%c\n", param->id, param->errors,
+		(param->errors > 1) ? 's' : ' ');
+    param->done = 1;
+#ifdef _WIN32
+    return 0;
+#else
+    pthread_exit (NULL);
+#endif
+}
+
+static void
+run_thread (int i)
+{
+    struct thread_params *param = &(mt_params[i]);
+#ifdef _WIN32
+    HANDLE thread_handle;
+    DWORD dw_thread_id;
+    thread_handle =
+	CreateThread (NULL, 0, exec_thread, param, 0, &dw_thread_id);
+    SetThreadPriority (thread_handle, THREAD_PRIORITY_IDLE);
+#else
+    int ok_prior = 0;
+    int policy;
+    int min_prio;
+    struct sched_param sp;
+    pthread_attr_init (&(param->attr));
+    param->started = 1;
+    if (pthread_attr_setschedpolicy (&(param->attr), SCHED_RR) == 0)
+      {
+	  /* attempting to set the lowest priority */
+	  if (pthread_attr_getschedpolicy (&(param->attr), &policy) == 0)
+	    {
+		min_prio = sched_get_priority_min (policy);
+		sp.sched_priority = min_prio;
+		if (pthread_attr_setschedparam (&(param->attr), &sp) == 0)
+		  {
+		      /* ok, setting the lowest priority */
+		      ok_prior = 1;
+		      pthread_create (&(param->thread_id), &(param->attr),
+				      exec_thread, param);
+		  }
+	    }
+      }
+    if (!ok_prior)
+      {
+	  /* failure: using standard priority */
+	  pthread_create (&(param->thread_id), NULL, exec_thread, param);
+      }
+#endif
+}
+
+int
+main (int argc, char *argv[])
+{
+    int i;
+    int failures = 0;
+    int total_sql = 0;
+    int num_threads = 4;
+    int mt_enabled = 0;
+    struct test_list list;
+    const char *env_var;
+
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+    env_var = getenv ("SPATIALITE_MULTITHREAD_TEST");
+    if (env_var == NULL)
+	;
+    else if (strcasecmp (env_var, "yes") == 0)
+	mt_enabled = 1;
+    if (!mt_enabled)
+      {
+	  printf
+	      ("check_multithread: SPATIALITE_MULTITHREAD_TEST non enabled .... skipping ...\n");
+	  return 0;
+      }
+    env_var = getenv ("SPATIALITE_NUM_THREADS");
+    if (env_var == NULL)
+	;
+    else
+      {
+	  num_threads = atoi (env_var);
+	  if (num_threads < 1)
+	      num_threads = 1;
+	  if (num_threads > 64)
+	      num_threads = 64;
+      }
+    printf ("Testing %d concurrent threads\n", num_threads);
+
+/* seeding the pseudo-random generator */
+#ifdef _WIN32
+    srand (getpid ());
+#else
+    srandom (getpid ());
+#endif
+
+    list.first = NULL;
+    list.last = NULL;
+    list.count = 0;
+    list.array = NULL;
+    if (!load_testcases (&list))
+      {
+	  fprintf (stderr, "Unable to load testcases !!!\n");
+	  return -1;
+      }
+    if (!build_test_array (&list))
+      {
+	  fprintf (stderr, "No valid testcases found !!!\n");
+	  return -1;
+      }
+
+    spatialite_initialize ();
+
+    for (i = 0; i < num_threads; i++)
+	init_thread_params (i, &list);
+
+    for (i = 0; i < num_threads; i++)
+	run_thread (i);
+
+    while (1)
+      {
+	  int cnt;
+#ifdef _WIN32
+	  Sleep (5 * 1000);
+#else
+	  sleep (5);
+#endif
+	  cnt = 0;
+	  for (i = 0; i < num_threads; i++)
+	    {
+		struct thread_params *p = &(mt_params[i]);
+		if (p->done != 1)
+		    cnt++;
+	    }
+	  if (cnt == 0)
+	      break;
+      }
+
+
+    for (i = 0; i < num_threads; i++)
+	free_thread_params (i, &total_sql, &failures);
+    printf
+	("\n\nALL MULTITHREAD TEST PASSED\n\t[%d SQL tests: %d failures]\n\n",
+	 total_sql, failures);
+
+    list_cleanup (&list);
+
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_point_to_tile.c b/test/check_point_to_tile.c
deleted file mode 100644
index 1bd99b6..0000000
--- a/test/check_point_to_tile.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
-
- check_point_to_tile.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    int i; 
-    const uint8_t *blob0;
-    const uint8_t *blob1;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    /* Deliberately skip 3 */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try gpkgPointToTile normal operation */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1), BlobFromFile(\"tile111.jpeg\")";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-	return -31;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1));
-	return -33;
-    }
-    blob0 = sqlite3_column_blob(stmt, 0);
-    blob1 = sqlite3_column_blob(stmt, 1);
-    if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1))
-    {
-	fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1));
-	return -34;
-    }
-    for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i)
-    {
-	if (blob0[i] != blob1[i])
-	{
-	    fprintf(stderr, "mismatch in blob content at offset: %i\n", i);
-	    return -35;
-	}
-    }
-
-    ret = sqlite3_step(stmt);
-    if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -36;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_point_to_tile_bad_tablename.c b/test/check_point_to_tile_bad_tablename.c
deleted file mode 100644
index 1f1f5f6..0000000
--- a/test/check_point_to_tile_bad_tablename.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-
- check_point_to_tile_bad_tablename.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    int ret;
-    void *cache = spatialite_alloc_connection();
-    char *err_msg = NULL;
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_bad_tablename.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* try gpkgPointToTile with the wrong argument types */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('no_such_tiles', 4326, 3.2, 5.2, 1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for no_such_tiles: got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -4;
-    }
-    if (strcmp(err_msg, "gpkgPointToTile() error: failed to prepare SQL SRID select statement") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for no_such_tiles: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -5;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-
-    spatialite_cleanup_ex(cache);
-    
-    return 0;
-}
diff --git a/test/check_point_to_tile_broken_geopackage.c b/test/check_point_to_tile_broken_geopackage.c
deleted file mode 100644
index 8e96067..0000000
--- a/test/check_point_to_tile_broken_geopackage.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-
- check_point_to_tile_broken_geopackage.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_broken_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-    
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    // Didn't use NOT NULL for the tile_data
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, 42)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try gpkgPointToTile with bad tile_data */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1)";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_NULL)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -40;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_point_to_tile_broken_geopackage2.c b/test/check_point_to_tile_broken_geopackage2.c
deleted file mode 100644
index 67e62d4..0000000
--- a/test/check_point_to_tile_broken_geopackage2.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
-
- check_point_to_tile_broken_geopackage2.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    void *cache = spatialite_alloc_connection();
-    char *err_msg = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1); 
-#endif	
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_broken_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-    
-    /* corrupt the raster_columns table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_columns", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE raster_columns (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, srid BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE raster_columns error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
-        
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    // Didn't use NOT NULL for the tile_data
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, 42)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", zeroblob(40))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try gpkgPointToTile with bad tile_data */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1)";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ERROR)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_point_to_tile_broken_srid.c b/test/check_point_to_tile_broken_srid.c
deleted file mode 100644
index d105254..0000000
--- a/test/check_point_to_tile_broken_srid.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
-
- check_point_to_tile_broken_srid.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    /* Deliberately skip 3 */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
- 
-    /* try gpkgPointToTile normal operation, but there is no raster_columns entry for test1_tiles */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1), BlobFromFile(\"tile111.jpeg\")";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ERROR)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-	return -31;
-    }
-
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_point_to_tile_different_srid.c b/test/check_point_to_tile_different_srid.c
deleted file mode 100644
index 6a094d5..0000000
--- a/test/check_point_to_tile_different_srid.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
-
- check_point_to_tile.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    int i; 
-    const uint8_t *blob0;
-    const uint8_t *blob1;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    /* Deliberately skip 3 */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try gpkgPointToTile normal operation, using AGD94 */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 3577, 20.0, -30.0, 1), BlobFromFile(\"tile111.jpeg\")";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-	return -31;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1));
-	return -33;
-    }
-    blob0 = sqlite3_column_blob(stmt, 0);
-    blob1 = sqlite3_column_blob(stmt, 1);
-    if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1))
-    {
-	fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1));
-	return -34;
-    }
-    for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i)
-    {
-	if (blob0[i] != blob1[i])
-	{
-	    fprintf(stderr, "mismatch in blob content at offset: %i\n", i);
-	    return -35;
-	}
-    }
-
-    ret = sqlite3_step(stmt);
-    if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -36;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_point_to_tile_integer_coordinates.c b/test/check_point_to_tile_integer_coordinates.c
deleted file mode 100644
index 6b5bf7b..0000000
--- a/test/check_point_to_tile_integer_coordinates.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
-
- check_point_to_tile_integer_coordinates.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2011
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    int i; 
-    const uint8_t *blob0;
-    const uint8_t *blob1;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);   
-#endif	
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_integer_coordinates.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-    
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    /* Deliberately skip 3 */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 90, 1, 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try gpkgPointToTile normal operation */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20, -30, 1), BlobFromFile(\"tile111.jpeg\")";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1));
-	return -33;
-    }
-    blob0 = sqlite3_column_blob(stmt, 0);
-    blob1 = sqlite3_column_blob(stmt, 1);
-    if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1))
-    {
-	fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1));
-	return -34;
-    }
-    for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i)
-    {
-	if (blob0[i] != blob1[i])
-	{
-	    fprintf(stderr, "mismatch in blob content at offset: %i\n", i);
-	    return -35;
-	}
-    }
-
-    ret = sqlite3_step(stmt);
-    if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -36;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_point_to_tile_multiresult.c b/test/check_point_to_tile_multiresult.c
deleted file mode 100644
index b535533..0000000
--- a/test/check_point_to_tile_multiresult.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
-
- check_point_to_tile_multiresult.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2012
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    int i; 
-    const uint8_t *blob0;
-    const uint8_t *blob1;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_multiresult.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-    
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-    
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    /* duplicate area */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -40.0, -90.0, 100.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    /* Deliberately skip 3 */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 99, 1, 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    }
-    
-    /* try gpkgPointToTile multiple result */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, -30.0, 1), BlobFromFile(\"tile100.jpeg\")";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    if (sqlite3_column_type (stmt, 1) != SQLITE_BLOB)
-    {
-	fprintf(stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1));
-	return -33;
-    }
-    blob0 = sqlite3_column_blob(stmt, 0);
-    blob1 = sqlite3_column_blob(stmt, 1);
-    if (sqlite3_column_bytes(stmt, 0) != sqlite3_column_bytes(stmt, 1))
-    {
-	fprintf(stderr, "mismatch in blob sizes: %i vs %i\n", sqlite3_column_bytes(stmt, 0), sqlite3_column_bytes(stmt, 1));
-	return -34;
-    }
-    for (i = 0; i < sqlite3_column_bytes(stmt, 0); ++i)
-    {
-	if (blob0[i] != blob1[i])
-	{
-	    fprintf(stderr, "mismatch in blob content at offset: %i\n", i);
-	    return -35;
-	}
-    }
-    ret = sqlite3_step(stmt);
-    if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -36;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-
-    spatialite_cleanup_ex(cache);
-    return 0;
-}
diff --git a/test/check_point_to_tile_no_tile.c b/test/check_point_to_tile_no_tile.c
deleted file mode 100644
index cacf56f..0000000
--- a/test/check_point_to_tile_no_tile.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-
- check_point_to_tile_no_tile.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2012
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    char *sql_statement;
-    sqlite3_stmt *stmt;
-    int ret;
-    char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
-    char *old_SPATIALITE_SECURITY_ENV = NULL;
-#ifdef _WIN32
-	char *env;
-#endif /* not WIN32 */
-
-    old_SPATIALITE_SECURITY_ENV = getenv("SPATIALITE_SECURITY");
-#ifdef _WIN32
-	putenv("SPATIALITE_SECURITY=relaxed");
-#else /* not WIN32 */
-    setenv("SPATIALITE_SECURITY", "relaxed", 1);
-#endif
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_no_tile.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (old_SPATIALITE_SECURITY_ENV)
-    {
-#ifdef _WIN32 
-	  env = sqlite3_mprintf("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV);
-	  putenv(env);
-	  sqlite3_free(env);
-#else /* not WIN32 */
-      setenv("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1);
-#endif
-    }
-    else
-    {
-#ifdef _WIN32
-	  putenv("SPATIALITE_SECURITY=");
-#else /* not WIN32 */
-      unsetenv("SPATIALITE_SECURITY");
-#endif
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* Create the base tables */
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    /* create a target table */
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
-    /* add in some test entries */
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (1, 0, 0, 0, BlobFromFile('tile000.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (2, 1, 0, 0, BlobFromFile('tile100.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (3, 1, 0, 1, BlobFromFile('tile101.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles (id, zoom_level, tile_column, tile_row, tile_data) VALUES (4, 1, 1, 1, BlobFromFile('tile111.jpeg'))",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS test1_tiles_rt_metadata", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "DROP test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    }
-    ret = sqlite3_exec (db_handle, "CREATE TABLE test1_tiles_rt_metadata (id INTEGER PRIMARY KEY AUTOINCREMENT, min_x DOUBLE NOT NULL DEFAULT -180.0, min_y DOUBLE NOT NULL DEFAULT -90.0, max_x DOUBLE NOT NULL DEFAULT 180.0, max_y DOUBLE NOT NULL DEFAULT 90.0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "CREATE test1_tiles_rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (1, -180.0, -90.0, 180.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level0 _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (2, -180.0, 0.0, 0.0, 90.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (0,0) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO test1_tiles_rt_metadata (id, min_x, min_y, max_x, max_y) VALUES (4, 0.0, -90.0, 180.0, 0.0)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT level1 (1,1) _rt_metadata error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    }
-    ret = sqlite3_exec (db_handle, "INSERT INTO raster_columns VALUES (\"test1_tiles\", \"tile_data\", 100, 0, 4326)",  NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "INSERT raster_columns row error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
-    
-    /* try gpkgPointToTile missing tile */
-    sql_statement = "SELECT gpkgPointToTile(\"test1_tiles\", 4326, 20.0, 30.0, 1)";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen(sql_statement), &stmt, NULL);
-    if (ret != SQLITE_OK)
-    {
-	fprintf(stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg(db_handle));
-        return -30;
-    }
-    ret = sqlite3_step (stmt);
-    if (ret != SQLITE_ROW)
-    {
-	fprintf(stderr, "unexpected return value for first step: %i\n", ret);
-	return -31;
-    }
-    if (sqlite3_column_type (stmt, 0) != SQLITE_NULL)
-    {
-	fprintf(stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0));
-	return -32;
-    }
-    ret = sqlite3_step(stmt);
-    if (ret != SQLITE_DONE)
-    {
-	fprintf(stderr, "unexpected return value for second step: %i\n", ret);
-	return -36;
-    }
-    ret = sqlite3_finalize (stmt);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-
-    spatialite_cleanup_ex(cache);
-    
-    return 0;
-}
diff --git a/test/check_point_to_tile_wrong_arg_type.c b/test/check_point_to_tile_wrong_arg_type.c
deleted file mode 100644
index d0d5853..0000000
--- a/test/check_point_to_tile_wrong_arg_type.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
-
- check_point_to_tile_wrong_arg_type.c - Test case for GeoPackage Extensions
-
- Author: Brad Hards <bradh at frogmouth.net>
-
- ------------------------------------------------------------------------------
- 
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- 
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- 
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the
-License.
-
-The Original Code is GeoPackage extensions
-
-The Initial Developer of the Original Code is Brad Hards
- 
-Portions created by the Initial Developer are Copyright (C) 2012
-the Initial Developer. All Rights Reserved.
-
-Contributor(s):
-
-
-Alternatively, the contents of this file may be used under the terms of
-either the GNU General Public License Version 2 or later (the "GPL"), or
-the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-in which case the provisions of the GPL or the LGPL are applicable instead
-of those above. If you wish to allow use of your version of this file only
-under the terms of either the GPL or the LGPL, and not to allow others to
-use your version of this file under the terms of the MPL, indicate your
-decision by deleting the provisions above and replace them with the notice
-and other provisions required by the GPL or the LGPL. If you do not delete
-the provisions above, a recipient may use your version of this file under
-the terms of any one of the MPL, the GPL or the LGPL.
- 
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <sqlite3.h>
-#include <spatialite.h>
-
-#include "test_helpers.h"
-
-int main (int argc UNUSED, char *argv[] UNUSED)
-{
-    sqlite3 *db_handle = NULL;
-    int ret;
-    void *cache = spatialite_alloc_connection();
-    char *err_msg = NULL;
-    
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    // For debugging / testing if required
-    // ret = sqlite3_open_v2 ("check_point_to_tile_wrong_arg_type.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    spatialite_init_ex(db_handle, cache, 0);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    /* try gpkgPointToTile with the wrong argument types */
-    ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile(1, 2, 3, 4, 5)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg 1, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -4;
-    }
-    if (strcmp(err_msg, "gpkgPointToTile() error: argument 1 [table] is not of the String type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg 1: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -5;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 2.3, 3, 4, 5)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg 2, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -6;
-    }
-    if (strcmp(err_msg, "gpkgPointToTile() error: argument 2 [srid] is not of the integer type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg 2: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -7;
-    }
-    sqlite3_free(err_msg);
-
-    ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 4326, 'hello', 4, 5)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg 3, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -8;
-    }
-    if (strcmp(err_msg, "gpkgPointToTile() error: argument 3 [x coordinate] is not of a numerical type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg 3: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -9;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 4326, 3.2, 'bye', 5)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg 4, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -10;
-    }
-    if (strcmp(err_msg, "gpkgPointToTile() error: argument 4 [y coordinate] is not of a numerical type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg 4: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -11;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_exec (db_handle, "SELECT gpkgPointToTile('test1_tiles', 4326, 3.2, 5.2, 1.9)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf(stderr, "Expected error for bad arg 5, got %i\n", ret);
-	sqlite3_free (err_msg);
-	return -12;
-    }
-    if (strcmp(err_msg, "gpkgPointToTile() error: argument 5 [zoom level] is not of the integer type") != 0)
-    {
-	fprintf (stderr, "Unexpected error message for bad arg 5: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	return -13;
-    }
-    sqlite3_free(err_msg);
-    
-    ret = sqlite3_close (db_handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle));
-	return -100;
-    }
-    
-    spatialite_cleanup_ex(cache);
-
-    return 0;
-}
diff --git a/test/check_recover_geom.c b/test/check_recover_geom.c
index fa93556..ea767ad 100644
--- a/test/check_recover_geom.c
+++ b/test/check_recover_geom.c
@@ -48,7 +48,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -57,1343 +58,1644 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
 /* creating a Point XY table */
     sql = "CREATE TABLE pt_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -3;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
 
 /* creating a Point XYZ table */
     sql = "CREATE TABLE pt_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -4;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
 
 /* creating a Point XYM table */
     sql = "CREATE TABLE pt_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -5;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
 
 /* creating a Point XYZM table */
     sql = "CREATE TABLE pt_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -6;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
 
 /* creating a Linestring XY table */
     sql = "CREATE TABLE ln_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -7;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
 
 /* creating a Linestring XYZ table */
     sql = "CREATE TABLE ln_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
 
 /* creating a Linestring XYM table */
     sql = "CREATE TABLE ln_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -9;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
 /* creating a Linestring XYZM table */
     sql = "CREATE TABLE ln_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
 
 /* creating a Polygon XY table */
     sql = "CREATE TABLE pg_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
 
 /* creating a Polygon XYZ table */
     sql = "CREATE TABLE pg_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -12;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
 
 /* creating a Polygon XYM table */
     sql = "CREATE TABLE pg_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -13;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
 
 /* creating a Polygon XYZM table */
     sql = "CREATE TABLE pg_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -14;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
 
 /* creating a MultiPoint XY table */
     sql = "CREATE TABLE mpt_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -15;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
 
 /* creating a MultiPoint XYZ table */
     sql = "CREATE TABLE mpt_XYZ (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -16;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -16;
+      }
 
 /* creating a MultiPoint XYM table */
     sql = "CREATE TABLE mpt_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
 
 /* creating a MultiPoint XYZM table */
     sql = "CREATE TABLE mpt_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -18;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
 
 /* creating a MultiLinestring XY table */
     sql = "CREATE TABLE mln_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -19;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -19;
+      }
 
 /* creating a MultiLinestring XYZ table */
     sql = "CREATE TABLE mln_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
 
 /* creating a MultiLinestring XYM table */
     sql = "CREATE TABLE mln_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -21;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
 
 /* creating a MultiLinestring XYZM table */
     sql = "CREATE TABLE mln_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -22;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
 
 /* creating a MultiPolygon XY table */
     sql = "CREATE TABLE mpg_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -23;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
 
 /* creating a MultiPolygon XYZ table */
     sql = "CREATE TABLE mpg_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -24;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
 
 /* creating a MultiPolygon XYM table */
     sql = "CREATE TABLE mpg_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -25;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
 
 /* creating a MultiPolygon XYZM table */
     sql = "CREATE TABLE mpg_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -26;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
 
 /* creating a GeometryCollection XY table */
     sql = "CREATE TABLE gcoll_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -27;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
 
 /* creating a GeometryCollection XYZ table */
     sql = "CREATE TABLE gcoll_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -28;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
 
 /* creating a GeometryCollection XYM table */
     sql = "CREATE TABLE gcoll_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -29;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
 
 /* creating a GeometryCollection XYZM table */
     sql = "CREATE TABLE gcoll_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -30;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
 
 
 /* creating a Geometry XY table */
     sql = "CREATE TABLE geom_xy (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -31;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
 
 /* creating a Geometry XYZ table */
     sql = "CREATE TABLE geom_xyz (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -32;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -32;
+      }
 
 /* creating a Geometry XYM table */
     sql = "CREATE TABLE geom_xym (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -33;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
 
 /* creating a Geometry XYZM table */
     sql = "CREATE TABLE geom_xyzm (id INTEGER, g BLOB)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -34;
-    } 
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
 
 /* Inserting into pt_xy */
-    sql = "INSERT INTO pt_xy (id, g) VALUES (1, GeomFromText('POINT(1 2)', 4326))";
+    sql =
+	"INSERT INTO pt_xy (id, g) VALUES (1, GeomFromText('POINT(1 2)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -35;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
 
 /* Inserting into pt_xyz */
-    sql = "INSERT INTO pt_xyz (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', 4326))";
+    sql =
+	"INSERT INTO pt_xyz (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -36;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -36;
+      }
 
 /* Inserting into pt_xym */
-    sql = "INSERT INTO pt_xym (id, g) VALUES (1, GeomFromText('POINTM(1 2 10)', 4326))";
+    sql =
+	"INSERT INTO pt_xym (id, g) VALUES (1, GeomFromText('POINTM(1 2 10)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -37;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -37;
+      }
 
 /* Inserting into pt_xyzm */
-    sql = "INSERT INTO pt_xyzm (id, g) VALUES (1, GeomFromText('POINTZM(1 2 3 10)', 4326))";
+    sql =
+	"INSERT INTO pt_xyzm (id, g) VALUES (1, GeomFromText('POINTZM(1 2 3 10)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -38;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -38;
+      }
 
 /* Inserting into ln_xy */
-    sql = "INSERT INTO ln_xy (id, g) VALUES (1, GeomFromText('LINESTRING(1 2, 4 5)', 4326))";
+    sql =
+	"INSERT INTO ln_xy (id, g) VALUES (1, GeomFromText('LINESTRING(1 2, 4 5)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -39;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -39;
+      }
 
 /* Inserting into ln_xyz */
-    sql = "INSERT INTO ln_xyz (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', 4326))";
+    sql =
+	"INSERT INTO ln_xyz (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -40;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -40;
+      }
 
 /* Inserting into ln_xym */
-    sql = "INSERT INTO ln_xym (id, g) VALUES (1, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', 4326))";
+    sql =
+	"INSERT INTO ln_xym (id, g) VALUES (1, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -41;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -41;
+      }
 
 /* Inserting into ln_xyzm */
-    sql = "INSERT INTO ln_xyzm (id, g) VALUES (2, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', 4326))";
+    sql =
+	"INSERT INTO ln_xyzm (id, g) VALUES (2, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -42;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -42;
+      }
 
 /* Inserting into pg_xy */
-    sql = "INSERT INTO pg_xy (id, g) VALUES (1, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', 4326))";
+    sql =
+	"INSERT INTO pg_xy (id, g) VALUES (1, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -43;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -43;
+      }
 
 /* Inserting into pg_xyz */
-    sql = "INSERT INTO pg_xyz (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', 4326))";
+    sql =
+	"INSERT INTO pg_xyz (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -44;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -44;
+      }
 
 /* Inserting into pg_xym */
-    sql = "INSERT INTO pg_xym (id, g) VALUES (1, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', 4326))";
+    sql =
+	"INSERT INTO pg_xym (id, g) VALUES (1, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -45;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
 
 /* Inserting into pg_xyzm */
-    sql = "INSERT INTO pg_xyzm (id, g) VALUES (1, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', 4326))";
+    sql =
+	"INSERT INTO pg_xyzm (id, g) VALUES (1, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -46;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
 
 /* Inserting into mpt_xy */
-    sql = "INSERT INTO mpt_xy (id, g) VALUES (1, GeomFromText('MULTIPOINT(1 2, 4 5)', 4326))";
+    sql =
+	"INSERT INTO mpt_xy (id, g) VALUES (1, GeomFromText('MULTIPOINT(1 2, 4 5)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -47;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
 
 /* Inserting into mpt_xyz */
-    sql = "INSERT INTO mpt_xyz (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', 4326))";
+    sql =
+	"INSERT INTO mpt_xyz (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -48;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
 
 /* Inserting into mpt_xym */
-    sql = "INSERT INTO mpt_xym (id, g) VALUES (1, GeomFromText('MULTIPOINTM(1 2 10, 4 5 11)', 4326))";
+    sql =
+	"INSERT INTO mpt_xym (id, g) VALUES (1, GeomFromText('MULTIPOINTM(1 2 10, 4 5 11)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -49;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -49;
+      }
 
 /* Inserting into mpt_xyzm */
-    sql = "INSERT INTO mpt_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOINTZM(1 2 3 10, 4 5 6 10)', 4326))";
+    sql =
+	"INSERT INTO mpt_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOINTZM(1 2 3 10, 4 5 6 10)', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -50;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -50;
+      }
 
 /* Inserting into mln_xy */
-    sql = "INSERT INTO mln_xy (id, g) VALUES (1, GeomFromText('MULTILINESTRING((1 2, 4 5), (7 8, 10 11))', 4326))";
+    sql =
+	"INSERT INTO mln_xy (id, g) VALUES (1, GeomFromText('MULTILINESTRING((1 2, 4 5), (7 8, 10 11))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -51;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -51;
+      }
 
 /* Inserting into mln_xyz */
-    sql = "INSERT INTO mln_xyz (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', 4326))";
+    sql =
+	"INSERT INTO mln_xyz (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -52;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -52;
+      }
 
 /* Inserting into mln_xym */
-    sql = "INSERT INTO mln_xym (id, g) VALUES (1, GeomFromText('MULTILINESTRINGM((1 2 10, 4 5 11), (7 8 12, 10 11 13))', 4326))";
+    sql =
+	"INSERT INTO mln_xym (id, g) VALUES (1, GeomFromText('MULTILINESTRINGM((1 2 10, 4 5 11), (7 8 12, 10 11 13))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -53;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -53;
+      }
 
 /* Inserting into mln_xyzm */
-    sql = "INSERT INTO mln_xyzm (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZM((1 2 3 10, 4 5 6 11), (7 8 9 12, 10 11 12 13))', 4326))";
+    sql =
+	"INSERT INTO mln_xyzm (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZM((1 2 3 10, 4 5 6 11), (7 8 9 12, 10 11 12 13))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -54;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
 
 /* Inserting into mpg_xy */
-    sql = "INSERT INTO mpg_xy (id, g) VALUES (1, GeomFromText('MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11)), ((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))";
+    sql =
+	"INSERT INTO mpg_xy (id, g) VALUES (1, GeomFromText('MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11)), ((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -55;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
 
 /* Inserting into mpg_xyz */
-    sql = "INSERT INTO mpg_xyz (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
+    sql =
+	"INSERT INTO mpg_xyz (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -56;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -56;
+      }
 
 /* Inserting into mpg_xym */
-    sql = "INSERT INTO mpg_xym (id, g) VALUES (1, GeomFromText('MULTIPOLYGONM(((10 10 11, 15 10 12, 15 15 13, 10 15 14, 10 10 11), (11 11 5, 12 11 6, 12 12 7, 11 12 8, 11 11 5)), ((0 0 11, 1 0 12, 1 1 13, 0 1 14, 0 0 11)))', 4326))";
+    sql =
+	"INSERT INTO mpg_xym (id, g) VALUES (1, GeomFromText('MULTIPOLYGONM(((10 10 11, 15 10 12, 15 15 13, 10 15 14, 10 10 11), (11 11 5, 12 11 6, 12 12 7, 11 12 8, 11 11 5)), ((0 0 11, 1 0 12, 1 1 13, 0 1 14, 0 0 11)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -57;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -57;
+      }
 
 /* Inserting into mpg_xyzm */
-    sql = "INSERT INTO mpg_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZM(((10 10 100 11, 15 10 101 12, 15 15 102 13, 10 15 103 14, 10 10 100 11), (11 11 100 5, 12 11 101 6, 1 12 102 7, 11 12 103 8, 11 11 100 5)), ((0 0 1 11, 1 0 2 12, 1 1 3 13, 0 1 4 14, 0 0 1 11)))', 4326))";
+    sql =
+	"INSERT INTO mpg_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZM(((10 10 100 11, 15 10 101 12, 15 15 102 13, 10 15 103 14, 10 10 100 11), (11 11 100 5, 12 11 101 6, 1 12 102 7, 11 12 103 8, 11 11 100 5)), ((0 0 1 11, 1 0 2 12, 1 1 3 13, 0 1 4 14, 0 0 1 11)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -58;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -58;
+      }
 
 /* Inserting into gcoll_xy */
-    sql = "INSERT INTO gcoll_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))";
+    sql =
+	"INSERT INTO gcoll_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -59;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -59;
+      }
 
 /* Inserting into gcoll_xyz */
-    sql = "INSERT INTO gcoll_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
+    sql =
+	"INSERT INTO gcoll_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -60;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -60;
+      }
 
 /* Inserting into gcoll_xym */
-    sql = "INSERT INTO gcoll_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
+    sql =
+	"INSERT INTO gcoll_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -61;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -61;
+      }
 
 /* Inserting into gcoll_xyzm */
-    sql = "INSERT INTO gcoll_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))";
+    sql =
+	"INSERT INTO gcoll_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -62;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -62;
+      }
 
 /* Inserting into geom_xy */
-    sql = "INSERT INTO geom_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -63;
-    }
-    sql = "INSERT INTO geom_xy (id, g) VALUES (2, GeomFromText('POINT(10 10)', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -64;
-    }
+    sql =
+	"INSERT INTO geom_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -63;
+      }
+    sql =
+	"INSERT INTO geom_xy (id, g) VALUES (2, GeomFromText('POINT(10 10)', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -64;
+      }
 
 /* Inserting into geom_xyz */
-    sql = "INSERT INTO geom_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -65;
-    }
-    sql = "INSERT INTO geom_xyz (id, g) VALUES (2, GeomFromText('POINTZ(10 10 100)', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -66;
-    }
+    sql =
+	"INSERT INTO geom_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -65;
+      }
+    sql =
+	"INSERT INTO geom_xyz (id, g) VALUES (2, GeomFromText('POINTZ(10 10 100)', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -66;
+      }
 
 /* Inserting into geom_xym */
-    sql = "INSERT INTO geom_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -67;
-    }
-    sql = "INSERT INTO geom_xym (id, g) VALUES (2, GeomFromText('POINTM(10 10 100)', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -68;
-    }
+    sql =
+	"INSERT INTO geom_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -67;
+      }
+    sql =
+	"INSERT INTO geom_xym (id, g) VALUES (2, GeomFromText('POINTM(10 10 100)', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -68;
+      }
 
 /* Inserting into geom_xyzm */
-    sql = "INSERT INTO geom_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -69;
-    }
-    sql = "INSERT INTO geom_xyzm (id, g) VALUES (2, GeomFromText('POINTZM(10 10 100 11)', 4326))";
-    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -70;
-    }
+    sql =
+	"INSERT INTO geom_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -69;
+      }
+    sql =
+	"INSERT INTO geom_xyzm (id, g) VALUES (2, GeomFromText('POINTZM(10 10 100 11)', 4326))";
+    ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -70;
+      }
 
 /* recovering pt_xy */
     sql = "SELECT RecoverGeometryColumn('pt_xy', 'g', 4326, 'POINT', 2);";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -71;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -72;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -73;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -74;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -71;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -72;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -73;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -74;
+      }
     sqlite3_free_table (results);
 
 /* recovering pt_xyz */
     sql = "SELECT RecoverGeometryColumn('pt_xyz', 'g', 4326, 'POINT', 3);";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -75;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -76;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -77;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -78;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -75;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -76;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -77;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -78;
+      }
     sqlite3_free_table (results);
 
 /* recovering pt_xym */
     sql = "SELECT RecoverGeometryColumn('pt_xym', 'g', 4326, 'POINT', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -79;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -80;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -81;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -82;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -79;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -80;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -81;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -82;
+      }
     sqlite3_free_table (results);
 
 /* recovering pt_xyzm */
-    sql = "SELECT RecoverGeometryColumn('pt_xyzm', 'g', 4326, 'POINT', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('pt_xyzm', 'g', 4326, 'POINT', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -83;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -84;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -85;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -86;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -83;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -84;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -85;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -86;
+      }
     sqlite3_free_table (results);
 
 /* recovering ln_xy */
-    sql = "SELECT RecoverGeometryColumn('ln_xy', 'g', 4326, 'LINESTRING', 'XY');";
+    sql =
+	"SELECT RecoverGeometryColumn('ln_xy', 'g', 4326, 'LINESTRING', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -87;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -88;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -89;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -90;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -87;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -88;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -89;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -90;
+      }
     sqlite3_free_table (results);
 
 /* recovering ln_xyz */
-    sql = "SELECT RecoverGeometryColumn('ln_xyz', 'g', 4326, 'LINESTRING', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('ln_xyz', 'g', 4326, 'LINESTRING', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -91;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -92;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -93;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -94;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -91;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -92;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -93;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -94;
+      }
     sqlite3_free_table (results);
 
 /* recovering ln_xym */
-    sql = "SELECT RecoverGeometryColumn('ln_xym', 'g', 4326, 'LINESTRING', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('ln_xym', 'g', 4326, 'LINESTRING', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -95;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -96;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -97;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -98;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -95;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -96;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -97;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -98;
+      }
     sqlite3_free_table (results);
 
 /* recovering ln_xyzm */
-    sql = "SELECT RecoverGeometryColumn('ln_xyzm', 'g', 4326, 'LINESTRING', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('ln_xyzm', 'g', 4326, 'LINESTRING', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -99;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -100;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -101;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -102;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -99;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -100;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -101;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -102;
+      }
     sqlite3_free_table (results);
 
 /* recovering pg_xy */
     sql = "SELECT RecoverGeometryColumn('pg_xy', 'g', 4326, 'POLYGON', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -103;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -104;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -105;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -106;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -103;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -104;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -105;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -106;
+      }
     sqlite3_free_table (results);
 
 /* recovering pg_xyz */
-    sql = "SELECT RecoverGeometryColumn('pg_xyz', 'g', 4326, 'POLYGON', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('pg_xyz', 'g', 4326, 'POLYGON', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -107;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -108;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -109;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -110;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -107;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -108;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -109;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -110;
+      }
     sqlite3_free_table (results);
 
 /* recovering pg_xym */
-    sql = "SELECT RecoverGeometryColumn('pg_xym', 'g', 4326, 'POLYGON', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('pg_xym', 'g', 4326, 'POLYGON', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -111;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -112;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -113;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -114;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -111;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -112;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -113;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -114;
+      }
     sqlite3_free_table (results);
 
 /* recovering pg_xyzm */
-    sql = "SELECT RecoverGeometryColumn('pg_xyzm', 'g', 4326, 'POLYGON', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('pg_xyzm', 'g', 4326, 'POLYGON', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -115;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -116;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -117;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -118;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -115;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -116;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -117;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -118;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpt_xy */
-    sql = "SELECT RecoverGeometryColumn('mpt_xy', 'g', 4326, 'MULTIPOINT', 'XY');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpt_xy', 'g', 4326, 'MULTIPOINT', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -119;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -120;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -121;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -122;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -119;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -120;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -121;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -122;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpt_xyz */
-    sql = "SELECT RecoverGeometryColumn('mpt_xyz', 'g', 4326, 'MULTIPOINT', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpt_xyz', 'g', 4326, 'MULTIPOINT', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -123;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -124;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -125;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -126;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -123;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -124;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -125;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -126;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpt_xym */
-    sql = "SELECT RecoverGeometryColumn('mpt_xym', 'g', 4326, 'MULTIPOINT', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpt_xym', 'g', 4326, 'MULTIPOINT', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -127;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -128;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -129;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -130;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -127;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -128;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -129;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -130;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpt_xyzm */
-    sql = "SELECT RecoverGeometryColumn('mpt_xyzm', 'g', 4326, 'MULTIPOINT', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpt_xyzm', 'g', 4326, 'MULTIPOINT', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -131;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -132;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -133;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -134;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -131;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -132;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -133;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -134;
+      }
     sqlite3_free_table (results);
 
 /* recovering mln_xy */
-    sql = "SELECT RecoverGeometryColumn('mln_xy', 'g', 4326, 'MULTILINESTRING', 'XY');";
+    sql =
+	"SELECT RecoverGeometryColumn('mln_xy', 'g', 4326, 'MULTILINESTRING', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -135;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -136;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -137;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -138;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -135;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -136;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -137;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -138;
+      }
     sqlite3_free_table (results);
 
 /* recovering mln_xyz */
-    sql = "SELECT RecoverGeometryColumn('mln_xyz', 'g', 4326, 'MULTILINESTRING', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('mln_xyz', 'g', 4326, 'MULTILINESTRING', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -139;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -140;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -141;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -142;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -139;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -140;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -141;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -142;
+      }
     sqlite3_free_table (results);
 
 /* recovering mln_xym */
-    sql = "SELECT RecoverGeometryColumn('mln_xym', 'g', 4326, 'MULTILINESTRING', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('mln_xym', 'g', 4326, 'MULTILINESTRING', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -143;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -144;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -145;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -146;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -143;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -144;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -145;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -146;
+      }
     sqlite3_free_table (results);
 
 /* recovering mln_xyzm */
-    sql = "SELECT RecoverGeometryColumn('mln_xyzm', 'g', 4326, 'MULTILINESTRING', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('mln_xyzm', 'g', 4326, 'MULTILINESTRING', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -147;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -148;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -149;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -150;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -147;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -148;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -149;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -150;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpg_xy */
-    sql = "SELECT RecoverGeometryColumn('mpg_xy', 'g', 4326, 'MULTIPOLYGON', 'XY');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpg_xy', 'g', 4326, 'MULTIPOLYGON', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -151;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -152;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -153;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -154;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -151;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -152;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -153;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -154;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpg_xyz */
-    sql = "SELECT RecoverGeometryColumn('mpg_xyz', 'g', 4326, 'MULTIPOLYGON', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpg_xyz', 'g', 4326, 'MULTIPOLYGON', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -155;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -156;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -157;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -158;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -155;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -156;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -157;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -158;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpg_xym */
-    sql = "SELECT RecoverGeometryColumn('mpg_xym', 'g', 4326, 'MULTIPOLYGON', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpg_xym', 'g', 4326, 'MULTIPOLYGON', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -159;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -160;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -161;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -162;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -159;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -160;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -161;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -162;
+      }
     sqlite3_free_table (results);
 
 /* recovering mpg_xyzm */
-    sql = "SELECT RecoverGeometryColumn('mpg_xyzm', 'g', 4326, 'MULTIPOLYGON', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('mpg_xyzm', 'g', 4326, 'MULTIPOLYGON', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -163;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -164;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -165;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -166;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -163;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -164;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -165;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -166;
+      }
     sqlite3_free_table (results);
 
 /* recovering gcoll_xy */
-    sql = "SELECT RecoverGeometryColumn('gcoll_xy', 'g', 4326, 'GEOMETRYCOLLECTION', 'XY');";
+    sql =
+	"SELECT RecoverGeometryColumn('gcoll_xy', 'g', 4326, 'GEOMETRYCOLLECTION', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -167;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -168;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -169;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -170;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -167;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -168;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -169;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -170;
+      }
     sqlite3_free_table (results);
 
 /* recovering gcoll_xyz */
-    sql = "SELECT RecoverGeometryColumn('gcoll_xyz', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('gcoll_xyz', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -171;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -172;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -173;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -174;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -171;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -172;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -173;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -174;
+      }
     sqlite3_free_table (results);
 
 /* recovering gcoll_xym */
-    sql = "SELECT RecoverGeometryColumn('gcoll_xym', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('gcoll_xym', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -175;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -176;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -177;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -178;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -175;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -176;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -177;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -178;
+      }
     sqlite3_free_table (results);
 
 /* recovering gcoll_xyzm */
-    sql = "SELECT RecoverGeometryColumn('gcoll_xyzm', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('gcoll_xyzm', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -179;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -180;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -181;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -182;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -179;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -180;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -181;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -182;
+      }
     sqlite3_free_table (results);
 
 /* recovering geom_xy */
-    sql = "SELECT RecoverGeometryColumn('geom_xy', 'g', 4326, 'GEOMETRY', 'XY');";
+    sql =
+	"SELECT RecoverGeometryColumn('geom_xy', 'g', 4326, 'GEOMETRY', 'XY');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -183;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -184;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -185;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -186;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -183;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -184;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -185;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -186;
+      }
     sqlite3_free_table (results);
 
 /* recovering geom_xyz */
-    sql = "SELECT RecoverGeometryColumn('geom_xyz', 'g', 4326, 'GEOMETRY', 'XYZ');";
+    sql =
+	"SELECT RecoverGeometryColumn('geom_xyz', 'g', 4326, 'GEOMETRY', 'XYZ');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -187;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -188;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -189;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -190;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -187;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -188;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -189;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -190;
+      }
     sqlite3_free_table (results);
 
 /* recovering geom_xym */
-    sql = "SELECT RecoverGeometryColumn('geom_xym', 'g', 4326, 'GEOMETRY', 'XYM');";
+    sql =
+	"SELECT RecoverGeometryColumn('geom_xym', 'g', 4326, 'GEOMETRY', 'XYM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -191;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -192;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -193;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -194;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -191;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -192;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -193;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -194;
+      }
     sqlite3_free_table (results);
 
 /* recovering geom_xyzm */
-    sql = "SELECT RecoverGeometryColumn('geom_xyzm', 'g', 4326, 'GEOMETRY', 'XYZM');";
+    sql =
+	"SELECT RecoverGeometryColumn('geom_xyzm', 'g', 4326, 'GEOMETRY', 'XYZM');";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -195;
-    }
-    if ((rows != 1) || (columns != 1)) {
-      fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-      return -196;
-    }
-    if (results[1] == NULL) {
-      fprintf (stderr, "Unexpected error: NULL result\n");
-      return -197;
-    }
-    if (strcmp(results[1], "1") != 0) {        
-      fprintf (stderr, "Unexpected error: invalid result\n");
-      return -198;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -195;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -196;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "Unexpected error: NULL result\n");
+	  return -197;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: invalid result\n");
+	  return -198;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -199;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -199;
+      }
+
     spatialite_cleanup_ex (cache);
-    
+
     return 0;
 }
diff --git a/test/check_relations_fncts.c b/test/check_relations_fncts.c
index e556cbf..90f1fde 100644
--- a/test/check_relations_fncts.c
+++ b/test/check_relations_fncts.c
@@ -56,9 +56,329 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 static const double double_eps = 0.00000001;
 
-int main (int argc, char *argv[])
+int
+test_extra_mode ()
 {
-#ifndef OMIT_GEOS	/* only if GEOS is supported */
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
+    int ret;
+    sqlite3 *handle;
+    int result;
+    int returnValue = 0;
+    gaiaGeomCollPtr geom_pt1;
+    gaiaGeomCollPtr geom_pt2;
+    gaiaGeomCollPtr geom_ln1;
+    gaiaGeomCollPtr geom_ln2;
+    gaiaGeomCollPtr geom_pg;
+    gaiaGeomCollPtr g;
+    gaiaLinestringPtr ln;
+    gaiaPolygonPtr pg;
+    gaiaRingPtr rng;
+    void *cache = spatialite_alloc_connection ();
+
+    /* Tests start here */
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -101;
+      }
+
+    spatialite_init_ex (handle, cache, 0);
+
+    /* preparing a Point */
+    geom_pt1 = gaiaAllocGeomColl ();
+    gaiaAddPointToGeomColl (geom_pt1, 30.0, 30.0);
+    gaiaMbrGeometry (geom_pt1);
+
+    /* preparing another Point */
+    geom_pt2 = gaiaAllocGeomColl ();
+    gaiaAddPointToGeomColl (geom_pt2, 10.5, 1.5);
+    gaiaMbrGeometry (geom_pt2);
+
+    /* preparing a Linestring */
+    geom_ln1 = gaiaAllocGeomColl ();
+    ln = gaiaAddLinestringToGeomColl (geom_ln1, 3);
+    gaiaSetPoint (ln->Coords, 0, 5.0, 0.0);
+    gaiaSetPoint (ln->Coords, 1, 5.0, 20.0);
+    gaiaSetPoint (ln->Coords, 2, 0.0, 20.0);
+    gaiaMbrGeometry (geom_ln1);
+
+    /* preparing another Linestring */
+    geom_ln2 = gaiaAllocGeomColl ();
+    ln = gaiaAddLinestringToGeomColl (geom_ln2, 4);
+    gaiaSetPoint (ln->Coords, 0, 0.0, 20.0);
+    gaiaSetPoint (ln->Coords, 1, 5.0, 20.0);
+    gaiaSetPoint (ln->Coords, 2, 5.0, 0.0);
+    gaiaSetPoint (ln->Coords, 3, 0.0, 0.0);
+    gaiaMbrGeometry (geom_ln2);
+
+    /* preparing a Polygon */
+    geom_pg = gaiaAllocGeomColl ();
+    pg = gaiaAddPolygonToGeomColl (geom_pg, 5, 1);
+    rng = pg->Exterior;
+    gaiaSetPoint (rng->Coords, 0, 1.5, 1.5);
+    gaiaSetPoint (rng->Coords, 1, 10.5, 1.5);
+    gaiaSetPoint (rng->Coords, 2, 10.5, 10.5);
+    gaiaSetPoint (rng->Coords, 3, 1.5, 10.5);
+    gaiaSetPoint (rng->Coords, 4, 1.5, 1.5);
+    rng = gaiaAddInteriorRing (pg, 0, 5);
+    gaiaSetPoint (rng->Coords, 0, 5.5, 5.5);
+    gaiaSetPoint (rng->Coords, 1, 6.5, 1.5);
+    gaiaSetPoint (rng->Coords, 2, 6.5, 6.5);
+    gaiaSetPoint (rng->Coords, 3, 5.5, 6.5);
+    gaiaSetPoint (rng->Coords, 4, 5.5, 5.5);
+    gaiaMbrGeometry (geom_pg);
+
+    result = gaiaGeomCollDisjoint_r (cache, geom_pt1, geom_ln1);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -102;
+	  goto exit;
+      }
+    result = gaiaGeomCollDisjoint_r (cache, geom_pt2, geom_pg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -103;
+	  goto exit;
+      }
+    result = gaiaGeomCollDisjoint_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -104;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps_r (cache, geom_pt2, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -105;
+	  goto exit;
+      }
+    result = gaiaGeomCollOverlaps_r (cache, geom_pt2, geom_pg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -106;
+	  goto exit;
+      }
+    result = gaiaGeomCollOverlaps_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -107;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses_r (cache, geom_pt2, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -108;
+	  goto exit;
+      }
+    result = gaiaGeomCollCrosses_r (cache, geom_pt2, geom_pg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -109;
+	  goto exit;
+      }
+    result = gaiaGeomCollCrosses_r (cache, geom_pg, geom_ln1);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -110;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches_r (cache, geom_pt2, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -111;
+	  goto exit;
+      }
+    result = gaiaGeomCollTouches_r (cache, geom_pt2, geom_pg);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -112;
+	  goto exit;
+      }
+    result = gaiaGeomCollTouches_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -113;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin_r (cache, geom_pt2, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -114;
+	  goto exit;
+      }
+    result = gaiaGeomCollWithin_r (cache, geom_pt2, geom_pg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -115;
+	  goto exit;
+      }
+    result = gaiaGeomCollWithin_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -116;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains_r (cache, geom_pt2, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -117;
+	  goto exit;
+      }
+    result = gaiaGeomCollContains_r (cache, geom_pg, geom_pt2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -118;
+	  goto exit;
+      }
+    result = gaiaGeomCollContains_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -119;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers_r (cache, geom_pt1, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -120;
+	  goto exit;
+      }
+    result = gaiaGeomCollCovers_r (cache, geom_pg, geom_pt2);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -121;
+	  goto exit;
+      }
+    result = gaiaGeomCollCovers_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -122;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy_r (cache, geom_pt2, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -120;
+	  goto exit;
+      }
+    result = gaiaGeomCollCoveredBy_r (cache, geom_pt2, geom_pg);
+    if (result != 1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -121;
+	  goto exit;
+      }
+    result = gaiaGeomCollCoveredBy_r (cache, geom_pg, geom_ln1);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -122;
+	  goto exit;
+      }
+
+    g = gaiaSharedPaths_r (cache, geom_ln1, geom_ln2);
+    if (g == NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -123;
+	  goto exit;
+      }
+    gaiaFreeGeomColl (g);
+    g = gaiaSharedPaths_r (cache, geom_ln1, geom_ln2);
+    if (g == NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -124;
+	  goto exit;
+      }
+    gaiaFreeGeomColl (g);
+
+    /* Cleanup and exit */
+  exit:
+    gaiaFreeGeomColl (geom_pt1);
+    gaiaFreeGeomColl (geom_pt2);
+    gaiaFreeGeomColl (geom_ln1);
+    gaiaFreeGeomColl (geom_ln2);
+    gaiaFreeGeomColl (geom_pg);
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -133;
+      }
+
+    spatialite_cleanup_ex (cache);
+    return returnValue;
+
+#endif /* end GEOS conditional */
+    return 0;
+}
+
+int
+test_current_mode ()
+{
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
     int ret;
     sqlite3 *handle;
     int result;
@@ -68,746 +388,1794 @@ int main (int argc, char *argv[])
     gaiaGeomCollPtr g;
     gaiaPolygonPtr pg;
     gaiaRingPtr rng;
-    void *cache = spatialite_alloc_connection();
-    
+    void *cache = spatialite_alloc_connection ();
+
     /* Common setup */
-    gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl();
+    gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl ();
     double dummyResultArg = 0.0;
     double dummyResultArg2 = 0.0;
 
-    if (argc > 1 || argv[0] == NULL)
-	argc = 1;		/* silencing stupid compiler warnings */
-    
     /* Tests start here */
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
+
+    /* null inputs for a range of geometry functions */
+    result = gaiaGeomCollEquals_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -1;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollEquals_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -2;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollEquals_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -3;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollIntersects_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -4;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollIntersects_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -5;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollIntersects_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -6;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -7;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -8;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -9;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -10;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -11;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -12;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -13;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -14;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -15;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDisjoint_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -16;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDisjoint_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -17;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDisjoint_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -18;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -19;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -20;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -21;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -22;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -23;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -24;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollRelate_r (cache, 0, validGeometry, "T********");
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -25;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollRelate_r (cache, validGeometry, 0, "T********");
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -26;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollRelate_r (cache, 0, 0, "T********");
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -27;
+	  goto exit;
+      }
+
+    result = gaiaHausdorffDistance_r (cache, 0, validGeometry, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -34;
+	  goto exit;
+      }
+
+    result = gaiaHausdorffDistance_r (cache, validGeometry, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -35;
+	  goto exit;
+      }
+
+    result = gaiaHausdorffDistance_r (cache, 0, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -36;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -37;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -38;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -39;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy_r (cache, 0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -40;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy_r (cache, validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -41;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy_r (cache, 0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -42;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDistance_r (cache, 0, validGeometry, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -43;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDistance_r (cache, validGeometry, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -44;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDistance_r (cache, 0, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -45;
+	  goto exit;
+      }
+    /* Check some of the single geometry analysis routines */
+
+    result = gaiaGeomCollLength_r (cache, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -46;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollArea_r (cache, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -47;
+	  goto exit;
+      }
+
+    result =
+	gaiaGeomCollCentroid_r (cache, 0, &dummyResultArg, &dummyResultArg2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -48;
+	  goto exit;
+      }
+
+    result =
+	gaiaGetPointOnSurface_r (cache, 0, &dummyResultArg, &dummyResultArg2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -49;
+	  goto exit;
+      }
+
+    result = gaiaIsSimple_r (cache, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -32;
+	  goto exit;
+      }
+
+    result = gaiaIsValid_r (cache, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -33;
+	  goto exit;
+      }
+
+    resultDouble = gaiaLineLocatePoint_r (cache, 0, validGeometry);
+    if (abs (resultDouble - -1.0) > double_eps)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__,
+		   resultDouble);
+	  returnValue = -62;
+	  goto exit;
+      }
+
+    resultDouble = gaiaLineLocatePoint_r (cache, validGeometry, 0);
+    if (abs (resultDouble - -1.0) > double_eps)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__,
+		   resultDouble);
+	  returnValue = -63;
+	  goto exit;
+      }
+
+    resultDouble = gaiaLineLocatePoint_r (cache, 0, 0);
+    if (abs (resultDouble - -1.0) > double_eps)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__,
+		   resultDouble);
+	  returnValue = -64;
+	  goto exit;
+      }
+
+    /* geometry generating functionality */
+    geom = NULL;
+    geom = gaiaLinesCutAtNodes (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -50;
+	  goto exit;
+      }
+
+    geom = gaiaLinesCutAtNodes (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -51;
+	  goto exit;
+      }
+
+    geom = gaiaLinesCutAtNodes (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -52;
+	  goto exit;
+      }
+
+    geom = gaiaUnaryUnion_r (cache, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -53;
+	  goto exit;
+      }
+
+    geom = gaiaLineMerge (0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -54;
+	  goto exit;
+      }
+
+    geom = gaiaSnap_r (cache, 0, validGeometry, 4);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -55;
+	  goto exit;
+      }
+
+    geom = gaiaSnap_r (cache, validGeometry, 0, 4);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -56;
+	  goto exit;
+      }
+
+    geom = gaiaSnap_r (cache, 0, 0, 4);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -57;
+	  goto exit;
+      }
+
+    geom = gaiaShortestLine_r (cache, 0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -58;
+	  goto exit;
+      }
+
+    geom = gaiaShortestLine_r (cache, validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -59;
+	  goto exit;
+      }
+
+    geom = gaiaShortestLine_r (cache, 0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -60;
+	  goto exit;
+      }
+
+    geom = gaiaLineSubstring_r (cache, 0, 0, 1);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -61;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryIntersection_r (cache, 0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -65;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryIntersection_r (cache, validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -66;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryIntersection_r (cache, 0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -67;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryUnion_r (cache, 0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -68;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryUnion_r (cache, validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -69;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryUnion_r (cache, 0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -70;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryDifference_r (cache, 0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -71;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryDifference_r (cache, validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -72;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryDifference_r (cache, 0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -73;
+	  goto exit;
+      }
+
+    geom = gaiaGeometrySymDifference_r (cache, 0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -74;
+	  goto exit;
+      }
+
+    geom = gaiaGeometrySymDifference_r (cache, validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -75;
+	  goto exit;
+      }
+
+    geom = gaiaGeometrySymDifference_r (cache, 0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -76;
+	  goto exit;
+      }
+
+    geom = gaiaBoundary_r (cache, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -77;
+	  goto exit;
+      }
+
+    geom = gaiaGeomCollSimplify_r (cache, 0, 1.0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -78;
+	  goto exit;
+      }
+
+    geom = gaiaGeomCollSimplifyPreserveTopology_r (cache, 0, 1.0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -79;
+	  goto exit;
+      }
+
+    geom = gaiaConvexHull_r (cache, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -80;
+	  goto exit;
+      }
+
+    geom = gaiaGeomCollBuffer_r (cache, 0, 0.1, 10);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -81;
+	  goto exit;
+      }
+
+    geom = gaiaOffsetCurve_r (cache, 0, 1.5, 10, 1);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -82;
+	  goto exit;
+      }
+
+    geom = gaiaSingleSidedBuffer_r (cache, 0, 1.5, 10, 1);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -83;
+	  goto exit;
+      }
+
+    geom = gaiaSharedPaths_r (cache, 0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -84;
+	  goto exit;
+      }
+
+    geom = gaiaSharedPaths_r (cache, validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -85;
+	  goto exit;
+      }
+
+    geom = gaiaSharedPaths_r (cache, 0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -86;
+	  goto exit;
+      }
+
+    geom = gaiaLineInterpolatePoint_r (cache, 0, 0.6);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -87;
+	  goto exit;
+      }
+
+    /* Test some strange conditions */
+    result = gaiaGeomCollLength_r (cache, validGeometry, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -88;
+	  goto exit;
+      }
+
+    /* preparing a collection of Polygons */
+    geom = gaiaAllocGeomColl ();
+    pg = gaiaAddPolygonToGeomColl (geom, 5, 1);
+    rng = pg->Exterior;
+    gaiaSetPoint (rng->Coords, 0, 1.5, 1.5);
+    gaiaSetPoint (rng->Coords, 1, 10.5, 1.5);
+    gaiaSetPoint (rng->Coords, 2, 10.5, 10.5);
+    gaiaSetPoint (rng->Coords, 3, 1.5, 10.5);
+    gaiaSetPoint (rng->Coords, 4, 1.5, 1.5);
+    rng = gaiaAddInteriorRing (pg, 0, 5);
+    gaiaSetPoint (rng->Coords, 0, 5.5, 5.5);
+    gaiaSetPoint (rng->Coords, 1, 6.5, 1.5);
+    gaiaSetPoint (rng->Coords, 2, 6.5, 6.5);
+    gaiaSetPoint (rng->Coords, 3, 5.5, 6.5);
+    gaiaSetPoint (rng->Coords, 4, 5.5, 5.5);
+    pg = gaiaAddPolygonToGeomColl (geom, 5, 1);
+    rng = pg->Exterior;
+    gaiaSetPoint (rng->Coords, 0, 8.5, 8.5);
+    gaiaSetPoint (rng->Coords, 1, 18.5, 8.5);
+    gaiaSetPoint (rng->Coords, 2, 18.5, 18.5);
+    gaiaSetPoint (rng->Coords, 3, 8.5, 18.5);
+    gaiaSetPoint (rng->Coords, 4, 8.5, 8.5);
+    rng = gaiaAddInteriorRing (pg, 0, 5);
+    gaiaSetPoint (rng->Coords, 0, 11.5, 11.5);
+    gaiaSetPoint (rng->Coords, 1, 12.5, 11.5);
+    gaiaSetPoint (rng->Coords, 2, 12.5, 12.5);
+    gaiaSetPoint (rng->Coords, 3, 11.5, 12.5);
+    gaiaSetPoint (rng->Coords, 4, 11.5, 11.5);
+    pg = gaiaAddPolygonToGeomColl (geom, 5, 0);
+    rng = pg->Exterior;
+    gaiaSetPoint (rng->Coords, 0, 4.5, 4.5);
+    gaiaSetPoint (rng->Coords, 1, 30.5, 4.5);
+    gaiaSetPoint (rng->Coords, 2, 30.5, 30.5);
+    gaiaSetPoint (rng->Coords, 3, 4.5, 30.5);
+    gaiaSetPoint (rng->Coords, 4, 4.5, 4.5);
+
+    /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */
+    g = gaiaUnaryUnion_r (cache, geom);
+    if (g == NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -89;
+	  goto exit;
+      }
+    result = gaiaGeomCollLength_r (cache, g, &dummyResultArg);
+    if (result == 1
+	&& (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233))
+	;
+    else
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__,
+		   result, dummyResultArg);
+	  returnValue = -90;
+	  goto exit;
+      }
+    gaiaFreeGeomColl (g);
+
+    /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */
+    g = gaiaUnionCascaded_r (cache, geom);
+    if (g == NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -91;
+	  goto exit;
+      }
+    result = gaiaGeomCollLength_r (cache, g, &dummyResultArg);
+    if (result == 1
+	&& (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233))
+	;
+    else
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__,
+		   result, dummyResultArg);
+	  returnValue = -92;
+	  goto exit;
+      }
+    gaiaFreeGeomColl (g);
+    gaiaFreeGeomColl (geom);
+
+    /* Cleanup and exit */
+  exit:
+    gaiaFreeGeomColl (validGeometry);
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -133;
+      }
+
+    spatialite_cleanup_ex (cache);
+    return returnValue;
+
+#endif /* end GEOS conditional */
+    return 0;
+}
+
+int
+test_legacy_mode ()
+{
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
+    int ret;
+    sqlite3 *handle;
+    int result;
+    double resultDouble;
+    int returnValue = 0;
+    gaiaGeomCollPtr geom;
+    gaiaGeomCollPtr g;
+    gaiaPolygonPtr pg;
+    gaiaRingPtr rng;
+
+    /* Common setup */
+    gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl ();
+    double dummyResultArg = 0.0;
+    double dummyResultArg2 = 0.0;
+
+    spatialite_init (0);
+
+    /* Tests start here */
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
     /* null inputs for a range of geometry functions */
-    result = gaiaGeomCollEquals(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -1;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollEquals(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -2;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollEquals(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -3;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollIntersects(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -4;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollIntersects(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -5;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollIntersects(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -6;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollOverlaps(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -7;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollOverlaps(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -8;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollOverlaps(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -9;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCrosses(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -10;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCrosses(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -11;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCrosses(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -12;
-	goto exit;
-    }
-
-    result = gaiaGeomCollTouches(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -13;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollTouches(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -14;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollTouches(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -15;
-	goto exit;
-    }
-
-    result = gaiaGeomCollDisjoint(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -16;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollDisjoint(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -17;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollDisjoint(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -18;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollWithin(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -19;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollWithin(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -20;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollWithin(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -21;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollContains(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -22;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollContains(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -23;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollContains(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -24;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollRelate(0, validGeometry, "T********");
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -25;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollRelate(validGeometry, 0, "T********");
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -26;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollRelate(0, 0, "T********");
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -27;
-	goto exit;
-    }
-    
-#ifdef GEOS_ADVANCED	/* only if GEOS_ADVANCED is supported */
-    result = gaiaHausdorffDistance(0, validGeometry, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -34;
-	goto exit;
-    }
-    
-    result = gaiaHausdorffDistance(validGeometry, 0, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -35;
-	goto exit;
-    }
-    
-    result = gaiaHausdorffDistance(0, 0, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -36;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCovers(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -37;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCovers(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -38;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCovers(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -39;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCoveredBy(0, validGeometry);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -40;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCoveredBy(validGeometry, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -41;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCoveredBy(0, 0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -42;
-	goto exit;
-    }
-#endif	/* end GEOS_ADVANCED conditional */
-    
-    result = gaiaGeomCollDistance(0, validGeometry, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -43;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollDistance(validGeometry, 0, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -44;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollDistance(0, 0, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -45;
-	goto exit;
-    }
+    result = gaiaGeomCollEquals (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -1;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollEquals (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -2;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollEquals (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -3;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollIntersects (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -4;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollIntersects (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -5;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollIntersects (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -6;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -7;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -8;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollOverlaps (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -9;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -10;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -11;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCrosses (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -12;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -13;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -14;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollTouches (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -15;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDisjoint (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -16;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDisjoint (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -17;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDisjoint (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -18;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -19;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -20;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollWithin (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -21;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -22;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -23;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollContains (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -24;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollRelate (0, validGeometry, "T********");
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -25;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollRelate (validGeometry, 0, "T********");
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -26;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollRelate (0, 0, "T********");
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -27;
+	  goto exit;
+      }
+
+    result = gaiaHausdorffDistance (0, validGeometry, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -34;
+	  goto exit;
+      }
+
+    result = gaiaHausdorffDistance (validGeometry, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -35;
+	  goto exit;
+      }
+
+    result = gaiaHausdorffDistance (0, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -36;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -37;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -38;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCovers (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -39;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy (0, validGeometry);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -40;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy (validGeometry, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -41;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCoveredBy (0, 0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -42;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDistance (0, validGeometry, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -43;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDistance (validGeometry, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -44;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollDistance (0, 0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -45;
+	  goto exit;
+      }
     /* Check some of the single geometry analysis routines */
-    
-    result = gaiaGeomCollLength(0, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -46;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollArea(0, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -47;
-	goto exit;
-    }
-    
-    result = gaiaGeomCollCentroid(0, &dummyResultArg, &dummyResultArg2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -48;
-	goto exit;
-    }
-    
-    result = gaiaGetPointOnSurface(0, &dummyResultArg, &dummyResultArg2);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -49;
-	goto exit;
-    }
-    
-    result = gaiaIsSimple(0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -32;
-	goto exit;
-    }
-    
-    result = gaiaIsValid(0);
-    if (result != -1) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -33;
-	goto exit;
-    }
-    
-#ifdef GEOS_ADVANCED	/* only if GEOS_ADVANCED is supported */
-    resultDouble = gaiaLineLocatePoint(0, validGeometry);
-    if (abs (resultDouble - -1.0) > double_eps) {
-	fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble);
-	returnValue = -62;
-	goto exit;
-    }
-
-    resultDouble = gaiaLineLocatePoint(validGeometry, 0);
-    if (abs (resultDouble - -1.0) > double_eps) {
-	fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble);
-	returnValue = -63;
-	goto exit;
-    }
-    
-    resultDouble = gaiaLineLocatePoint(0, 0);
-    if (abs (resultDouble - -1.0) > double_eps) {
-	fprintf(stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble);
-	returnValue = -64;
-	goto exit;
-    }
+
+    result = gaiaGeomCollLength (0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -46;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollArea (0, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -47;
+	  goto exit;
+      }
+
+    result = gaiaGeomCollCentroid (0, &dummyResultArg, &dummyResultArg2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -48;
+	  goto exit;
+      }
+
+    result = gaiaGetPointOnSurface (0, &dummyResultArg, &dummyResultArg2);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -49;
+	  goto exit;
+      }
+
+    result = gaiaIsSimple (0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -32;
+	  goto exit;
+      }
+
+    result = gaiaIsValid (0);
+    if (result != -1)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -33;
+	  goto exit;
+      }
+
+    resultDouble = gaiaLineLocatePoint (0, validGeometry);
+    if (abs (resultDouble - -1.0) > double_eps)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__,
+		   resultDouble);
+	  returnValue = -62;
+	  goto exit;
+      }
+
+    resultDouble = gaiaLineLocatePoint (validGeometry, 0);
+    if (abs (resultDouble - -1.0) > double_eps)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__,
+		   resultDouble);
+	  returnValue = -63;
+	  goto exit;
+      }
+
+    resultDouble = gaiaLineLocatePoint (0, 0);
+    if (abs (resultDouble - -1.0) > double_eps)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__,
+		   resultDouble);
+	  returnValue = -64;
+	  goto exit;
+      }
 
     /* geometry generating functionality */
     geom = NULL;
-    geom = gaiaLinesCutAtNodes(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -50;
-	goto exit;
-    }
-
-    geom = gaiaLinesCutAtNodes(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -51;
-	goto exit;
-    }
-    
-    geom = gaiaLinesCutAtNodes(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -52;
-	goto exit;
-    }
-
-    geom = gaiaUnaryUnion(0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -53;
-	goto exit;
-    }
-    
-    geom = gaiaLineMerge(0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -54;
-	goto exit;
-    }
-    
-    geom = gaiaSnap(0, validGeometry, 4);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -55;
-	goto exit;
-    }
-
-    geom = gaiaSnap(validGeometry, 0, 4);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -56;
-	goto exit;
-    }
-    
-    geom = gaiaSnap(0, 0, 4);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -57;
-	goto exit;
-    }
-    
-    geom = gaiaShortestLine(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -58;
-	goto exit;
-    }
-
-    geom = gaiaShortestLine(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -59;
-	goto exit;
-    }
-    
-    geom = gaiaShortestLine(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -60;
-	goto exit;
-    }
-    
-    geom = gaiaLineSubstring(0, 0, 1);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -61;
-	goto exit;
-    }
-#endif	/* end GEOS_ADVANCED conditional */
-  
-    geom = gaiaGeometryIntersection(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -65;
-	goto exit;
-    }
-
-    geom = gaiaGeometryIntersection(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -66;
-	goto exit;
-    }
-    
-    geom = gaiaGeometryIntersection(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -67;
-	goto exit;
-    }
-    
-    geom = gaiaGeometryUnion(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -68;
-	goto exit;
-    }
-
-    geom = gaiaGeometryUnion(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -69;
-	goto exit;
-    }
-    
-    geom = gaiaGeometryUnion(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -70;
-	goto exit;
-    }
-    
-    geom = gaiaGeometryDifference(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -71;
-	goto exit;
-    }
-
-    geom = gaiaGeometryDifference(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -72;
-	goto exit;
-    }
-    
-    geom = gaiaGeometryDifference(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -73;
-	goto exit;
-    }
-
-    geom = gaiaGeometrySymDifference(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -74;
-	goto exit;
-    }
-
-    geom = gaiaGeometrySymDifference(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -75;
-	goto exit;
-    }
-    
-    geom = gaiaGeometrySymDifference(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -76;
-	goto exit;
-    }
-
-    geom = gaiaBoundary(0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -77;
-	goto exit;
-    }
-
-    geom = gaiaGeomCollSimplify(0, 1.0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -78;
-	goto exit;
-    }
-
-    geom = gaiaGeomCollSimplifyPreserveTopology(0, 1.0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -79;
-	goto exit;
-    }
-    
-    geom = gaiaConvexHull(0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -80;
-	goto exit;
-    }
-    
-    geom = gaiaGeomCollBuffer(0, 0.1, 10);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -81;
-	goto exit;
-    }
-
-#ifdef GEOS_ADVANCED		/* only if GEOS_ADVANCED is supported */
+    geom = gaiaLinesCutAtNodes (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -50;
+	  goto exit;
+      }
+
+    geom = gaiaLinesCutAtNodes (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -51;
+	  goto exit;
+      }
+
+    geom = gaiaLinesCutAtNodes (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -52;
+	  goto exit;
+      }
+
+    geom = gaiaUnaryUnion (0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -53;
+	  goto exit;
+      }
+
+    geom = gaiaLineMerge (0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -54;
+	  goto exit;
+      }
+
+    geom = gaiaSnap (0, validGeometry, 4);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -55;
+	  goto exit;
+      }
+
+    geom = gaiaSnap (validGeometry, 0, 4);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -56;
+	  goto exit;
+      }
+
+    geom = gaiaSnap (0, 0, 4);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -57;
+	  goto exit;
+      }
+
+    geom = gaiaShortestLine (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -58;
+	  goto exit;
+      }
+
+    geom = gaiaShortestLine (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -59;
+	  goto exit;
+      }
+
+    geom = gaiaShortestLine (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -60;
+	  goto exit;
+      }
+
+    geom = gaiaLineSubstring (0, 0, 1);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -61;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryIntersection (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -65;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryIntersection (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -66;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryIntersection (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -67;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryUnion (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -68;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryUnion (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -69;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryUnion (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -70;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryDifference (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -71;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryDifference (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -72;
+	  goto exit;
+      }
+
+    geom = gaiaGeometryDifference (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -73;
+	  goto exit;
+      }
+
+    geom = gaiaGeometrySymDifference (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -74;
+	  goto exit;
+      }
+
+    geom = gaiaGeometrySymDifference (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -75;
+	  goto exit;
+      }
+
+    geom = gaiaGeometrySymDifference (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -76;
+	  goto exit;
+      }
+
+    geom = gaiaBoundary (0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -77;
+	  goto exit;
+      }
+
+    geom = gaiaGeomCollSimplify (0, 1.0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -78;
+	  goto exit;
+      }
+
+    geom = gaiaGeomCollSimplifyPreserveTopology (0, 1.0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -79;
+	  goto exit;
+      }
+
+    geom = gaiaConvexHull (0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -80;
+	  goto exit;
+      }
+
+    geom = gaiaGeomCollBuffer (0, 0.1, 10);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -81;
+	  goto exit;
+      }
+
     geom = gaiaOffsetCurve (0, 1.5, 10, 1);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -82;
-	goto exit;
-    }
-    
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -82;
+	  goto exit;
+      }
+
     geom = gaiaSingleSidedBuffer (0, 1.5, 10, 1);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -83;
-	goto exit;
-    }
-    
-    geom = gaiaSharedPaths(0, validGeometry);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -84;
-	goto exit;
-    }
-
-    geom = gaiaSharedPaths(validGeometry, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -85;
-	goto exit;
-    }
-    
-    geom = gaiaSharedPaths(0, 0);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -86;
-	goto exit;
-    }
-    
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -83;
+	  goto exit;
+      }
+
+    geom = gaiaSharedPaths (0, validGeometry);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -84;
+	  goto exit;
+      }
+
+    geom = gaiaSharedPaths (validGeometry, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -85;
+	  goto exit;
+      }
+
+    geom = gaiaSharedPaths (0, 0);
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -86;
+	  goto exit;
+      }
+
     geom = gaiaLineInterpolatePoint (0, 0.6);
-    if (geom != NULL) {
-	gaiaFree(geom);
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -87;
-	goto exit;
-    }
-#endif	/* end GEOS_ADVANCED conditional */
-    
+    if (geom != NULL)
+      {
+	  gaiaFree (geom);
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -87;
+	  goto exit;
+      }
+
     /* Test some strange conditions */
-    result = gaiaGeomCollLength(validGeometry, &dummyResultArg);
-    if (result != 0) {
-	fprintf(stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result);
-	returnValue = -88;
-	goto exit;
-    }
- 
+    result = gaiaGeomCollLength (validGeometry, &dummyResultArg);
+    if (result != 0)
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__,
+		   result);
+	  returnValue = -88;
+	  goto exit;
+      }
+
     /* preparing a collection of Polygons */
-    geom = gaiaAllocGeomColl();
-    pg = gaiaAddPolygonToGeomColl(geom, 5, 1);
+    geom = gaiaAllocGeomColl ();
+    pg = gaiaAddPolygonToGeomColl (geom, 5, 1);
     rng = pg->Exterior;
-    gaiaSetPoint(rng->Coords, 0, 1.5, 1.5);
-    gaiaSetPoint(rng->Coords, 1, 10.5, 1.5);
-    gaiaSetPoint(rng->Coords, 2, 10.5, 10.5);
-    gaiaSetPoint(rng->Coords, 3, 1.5, 10.5);
-    gaiaSetPoint(rng->Coords, 4, 1.5, 1.5);
-    rng = gaiaAddInteriorRing(pg, 0, 5);
-    gaiaSetPoint(rng->Coords, 0, 5.5, 5.5);
-    gaiaSetPoint(rng->Coords, 1, 6.5, 1.5);
-    gaiaSetPoint(rng->Coords, 2, 6.5, 6.5);
-    gaiaSetPoint(rng->Coords, 3, 5.5, 6.5);
-    gaiaSetPoint(rng->Coords, 4, 5.5, 5.5);
-    pg = gaiaAddPolygonToGeomColl(geom, 5, 1);
+    gaiaSetPoint (rng->Coords, 0, 1.5, 1.5);
+    gaiaSetPoint (rng->Coords, 1, 10.5, 1.5);
+    gaiaSetPoint (rng->Coords, 2, 10.5, 10.5);
+    gaiaSetPoint (rng->Coords, 3, 1.5, 10.5);
+    gaiaSetPoint (rng->Coords, 4, 1.5, 1.5);
+    rng = gaiaAddInteriorRing (pg, 0, 5);
+    gaiaSetPoint (rng->Coords, 0, 5.5, 5.5);
+    gaiaSetPoint (rng->Coords, 1, 6.5, 1.5);
+    gaiaSetPoint (rng->Coords, 2, 6.5, 6.5);
+    gaiaSetPoint (rng->Coords, 3, 5.5, 6.5);
+    gaiaSetPoint (rng->Coords, 4, 5.5, 5.5);
+    pg = gaiaAddPolygonToGeomColl (geom, 5, 1);
     rng = pg->Exterior;
-    gaiaSetPoint(rng->Coords, 0, 8.5, 8.5);
-    gaiaSetPoint(rng->Coords, 1, 18.5, 8.5);
-    gaiaSetPoint(rng->Coords, 2, 18.5, 18.5);
-    gaiaSetPoint(rng->Coords, 3, 8.5, 18.5);
-    gaiaSetPoint(rng->Coords, 4, 8.5, 8.5);
-    rng = gaiaAddInteriorRing(pg, 0, 5);
-    gaiaSetPoint(rng->Coords, 0, 11.5, 11.5);
-    gaiaSetPoint(rng->Coords, 1, 12.5, 11.5);
-    gaiaSetPoint(rng->Coords, 2, 12.5, 12.5);
-    gaiaSetPoint(rng->Coords, 3, 11.5, 12.5);
-    gaiaSetPoint(rng->Coords, 4, 11.5, 11.5);
-    pg = gaiaAddPolygonToGeomColl(geom, 5, 0);
+    gaiaSetPoint (rng->Coords, 0, 8.5, 8.5);
+    gaiaSetPoint (rng->Coords, 1, 18.5, 8.5);
+    gaiaSetPoint (rng->Coords, 2, 18.5, 18.5);
+    gaiaSetPoint (rng->Coords, 3, 8.5, 18.5);
+    gaiaSetPoint (rng->Coords, 4, 8.5, 8.5);
+    rng = gaiaAddInteriorRing (pg, 0, 5);
+    gaiaSetPoint (rng->Coords, 0, 11.5, 11.5);
+    gaiaSetPoint (rng->Coords, 1, 12.5, 11.5);
+    gaiaSetPoint (rng->Coords, 2, 12.5, 12.5);
+    gaiaSetPoint (rng->Coords, 3, 11.5, 12.5);
+    gaiaSetPoint (rng->Coords, 4, 11.5, 11.5);
+    pg = gaiaAddPolygonToGeomColl (geom, 5, 0);
     rng = pg->Exterior;
-    gaiaSetPoint(rng->Coords, 0, 4.5, 4.5);
-    gaiaSetPoint(rng->Coords, 1, 30.5, 4.5);
-    gaiaSetPoint(rng->Coords, 2, 30.5, 30.5);
-    gaiaSetPoint(rng->Coords, 3, 4.5, 30.5);
-    gaiaSetPoint(rng->Coords, 4, 4.5, 4.5);
+    gaiaSetPoint (rng->Coords, 0, 4.5, 4.5);
+    gaiaSetPoint (rng->Coords, 1, 30.5, 4.5);
+    gaiaSetPoint (rng->Coords, 2, 30.5, 30.5);
+    gaiaSetPoint (rng->Coords, 3, 4.5, 30.5);
+    gaiaSetPoint (rng->Coords, 4, 4.5, 4.5);
 
-#ifdef GEOS_ADVANCED	/* only if GEOS_ADVANCED is supported */
     /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */
-    g = gaiaUnaryUnion(geom);
-    if (g == NULL) {
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -89;
-	goto exit;
-    }
-    result = gaiaGeomCollLength(g, &dummyResultArg);
-    if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233))
-        ;
-    else {
-	fprintf(stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg);
-	returnValue = -90;
-	goto exit;
-    }
-    gaiaFreeGeomColl(g);
-#endif	/* end GEOS_ADVANCED conditional */
- 
+    g = gaiaUnaryUnion (geom);
+    if (g == NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -89;
+	  goto exit;
+      }
+    result = gaiaGeomCollLength (g, &dummyResultArg);
+    if (result == 1
+	&& (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233))
+	;
+    else
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__,
+		   result, dummyResultArg);
+	  returnValue = -90;
+	  goto exit;
+      }
+    gaiaFreeGeomColl (g);
+
     /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */
-    g = gaiaUnionCascaded(geom);
-    if (g == NULL) {
-	fprintf(stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
-	returnValue = -91;
-	goto exit;
-    }
-    result = gaiaGeomCollLength(g, &dummyResultArg);
-    if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233))
-        ;
-    else {
-	fprintf(stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg);
-	returnValue = -92;
-	goto exit;
-    }
-    gaiaFreeGeomColl(g);
-    gaiaFreeGeomColl(geom);
+    g = gaiaUnionCascaded (geom);
+    if (g == NULL)
+      {
+	  fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__);
+	  returnValue = -91;
+	  goto exit;
+      }
+    result = gaiaGeomCollLength (g, &dummyResultArg);
+    if (result == 1
+	&& (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233))
+	;
+    else
+      {
+	  fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__,
+		   result, dummyResultArg);
+	  returnValue = -92;
+	  goto exit;
+      }
+    gaiaFreeGeomColl (g);
+    gaiaFreeGeomColl (geom);
 
     /* Cleanup and exit */
-exit:
+  exit:
     gaiaFreeGeomColl (validGeometry);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -133;
-    }
-        
-    spatialite_cleanup_ex (cache);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -133;
+      }
+
+    spatialite_cleanup ();
     return returnValue;
 
-#endif	/* end GEOS conditional */
+#endif /* end GEOS conditional */
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+    int ret;
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+    ret = test_current_mode ();
+    if (ret != 0)
+	return ret;
+    ret = test_extra_mode ();
+    if (ret != 0)
+	return ret;
+    ret = test_legacy_mode ();
+    if (ret != 0)
+	return ret;
     return 0;
 }
diff --git a/test/check_shp_load.c b/test/check_shp_load.c
index 20078b8..b8f111a 100644
--- a/test/check_shp_load.c
+++ b/test/check_shp_load.c
@@ -51,83 +51,169 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+static int
+do_test (sqlite3 * handle, const void *p_cache)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
     int ret;
-    sqlite3 *handle;
     char *err_msg = NULL;
     int row_count;
-    void *cache = spatialite_alloc_connection();
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret = load_shapefile (handle, "./shapetest1", "test1", "UTF-8", 4326,
+			  "col1", 1, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+
+#ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
+
+    if (p_cache == NULL)
+	ret =
+	    check_geometry_column (handle, "test1", "geometry", "./report.html",
+				   NULL, NULL, NULL);
+    else
+	ret =
+	    check_geometry_column_r (p_cache, handle, "test1", "geometry",
+				     "./report.html", NULL, NULL, NULL);
+    if (ret)
+      {
+	  fprintf (stderr, "check_geometry_column() error\n");
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    if (p_cache == NULL)
+	ret =
+	    sanitize_geometry_column (handle, "test1", "geometry", "tmp_test1",
+				      "./report.html", NULL, NULL, NULL, NULL,
+				      NULL);
+    else
+	ret =
+	    sanitize_geometry_column_r (p_cache, handle, "test1", "geometry",
+					"tmp_test1", "./report.html", NULL,
+					NULL, NULL, NULL, NULL);
+    if (ret)
+      {
+	  fprintf (stderr, "sanitize_geometry_column() error\n");
+	  sqlite3_close (handle);
+	  return -5;
+      }
+
+    if (p_cache == NULL)
+	ret =
+	    check_geometry_column (handle, "test1", "col1", "./report.html",
+				   NULL, NULL, NULL);
+    else
+	ret =
+	    check_geometry_column_r (p_cache, handle, "test1", "col1",
+				     "./report.html", NULL, NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "check_geometry_column() error\n");
+	  sqlite3_close (handle);
+	  return -6;
+      }
+
+    if (p_cache == NULL)
+	ret =
+	    sanitize_geometry_column (handle, "test1", "col1", "tmp_test1",
+				      "./report.html", NULL, NULL, NULL, NULL,
+				      NULL);
+    else
+	ret =
+	    sanitize_geometry_column_r (p_cache, handle, "test1", "col1",
+					"tmp_test1", "./report.html", NULL,
+					NULL, NULL, NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "sanitize_geometry_column() error\n");
+	  sqlite3_close (handle);
+	  return -7;
+      }
+
+#endif /* end LWGEOM conditionals */
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
+    int ret;
+    sqlite3 *handle;
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    ret = load_shapefile (handle, "./shapetest1", "test1", "UTF-8", 4326, 
-			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
 
-#ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
-
-    ret = check_geometry_column (handle, "test1", "geometry", "./report.html", NULL, NULL, NULL);
-    if (ret) {
-        fprintf (stderr, "check_geometry_column() error\n");
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = sanitize_geometry_column (handle, "test1", "geometry", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); 
-    if (ret) {
-        fprintf (stderr, "sanitize_geometry_column() error\n");
-	sqlite3_close(handle);
-	return -5;
-    }
-
-    ret = check_geometry_column (handle, "test1", "col1", "./report.html", NULL, NULL, NULL);
-    if (!ret) {
-        fprintf (stderr, "check_geometry_column() error\n");
-	sqlite3_close(handle);
-	return -6;
-    }
-
-    ret = sanitize_geometry_column (handle, "test1", "col1", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); 
-    if (!ret) {
-        fprintf (stderr, "sanitize_geometry_column() error\n");
-	sqlite3_close(handle);
-	return -7;
-    }
+    ret = do_test (handle, cache);
+    if (ret != 0)
+	return ret;
 
-#endif /* end LWGEOM conditionals */
-    
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -8;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -8;
+      }
+
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
 
+/* testing again in legacy mode */
+    spatialite_init (0);
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -9;
+      }
+
+    ret = do_test (handle, NULL);
+    if (ret != 0)
+	return ret;
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -10;
+      }
+
+    spatialite_cleanup ();
+#endif /* end ICONV conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_shp_load_3d.c b/test/check_shp_load_3d.c
index 03bb4b5..3e321d3 100644
--- a/test/check_shp_load_3d.c
+++ b/test/check_shp_load_3d.c
@@ -51,11 +51,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+static int
+do_test (sqlite3 * handle, const void *p_cache)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
     int ret;
-    sqlite3 *handle;
     char *err_msg = NULL;
     int row_count;
     const char *sql;
@@ -64,466 +63,729 @@ int main (int argc, char *argv[])
     int columns;
     double tic;
     gaiaVectorLayersListPtr list;
-    void *cache = spatialite_alloc_connection();
-
-    if (argc > 1 || argv[0] == NULL)
-	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
-
-    spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    ret = load_shapefile (handle, "shp/merano-3d/polygons", "polygons", "CP1252", 25832, 
-			  "geom", 0, 1, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	load_shapefile (handle, "shp/merano-3d/polygons", "polygons", "CP1252",
+			25832, "geom", 0, 1, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
 
     ret = update_layer_statistics (handle, "polygons", "geom");
-    if (!ret) {
-        fprintf (stderr, "update_layer_statistics() error %s\n", err_msg);
-	sqlite3_close(handle);
-	return -8;
-    }
-
-    ret = load_shapefile (handle, "shp/merano-3d/roads", "roads", "CP1252", 25832, 
-			  "geom", 0, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_shapefile (handle, "shp/merano-3d/points", "points", "CP1252", 25832, 
-			  "geom", 0, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -14;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -15;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, TEXT_I) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -16;
-    }
-
-    ret = sqlite3_exec (handle, "CREATE TABLE polyg_xy (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE polyg_xy error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -17;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xy', 'geom', 25832, 'POLYGON', 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeomety polyg_xy error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -17;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding polyg_xy (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -18;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding polyg_xy (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -19;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE polyg_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE polyg_xym error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -20;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xym', 'geom', 25832, 'POLYGON', 'XYM')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometry polyg_xym error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -21;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding polyg_xym (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -22;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding polyg_xym (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -23;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE polyg_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE polyg_xyz error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -24;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xyz', 'geom', 25832, 'POLYGON', 'XYZ')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometry polyg_xyz error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -25;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding polyg_xyz (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -26;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding polyg_xyz (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -27;
-    }
-
-    ret = sqlite3_exec (handle, "CREATE TABLE roads_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE roads_xyz error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -28;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyz', 'geom', 25832, 'LINESTRING', 'XYZ')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeomety roads_xyz error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -29;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding roads_xyz (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -30;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding roads_xyz (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -31;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE roads_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE roads_xym error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -32;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xym', 'geom', 25832, 'LINESTRING', 'XYM')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometry roads_xym error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -33;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding roads_xym (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -34;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding roads_xym (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -35;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE roads_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE roads_xyzm error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -36;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyzm', 'geom', 25832, 'LINESTRING', 'XYZM')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometry roads_xyzm error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -37;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding roads_xyzm (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -38;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding roads_xyzm (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -39;
-    }
-
-    ret = sqlite3_exec (handle, "CREATE TABLE points_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE points_xyz error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -40;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyz', 'geom', 25832, 'POINT', 'XYZ')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeomety points_xyz error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -41;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding points_xyz (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -42;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding points_xyz (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -43;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE points_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE points_xym error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -44;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xym', 'geom', 25832, 'POINT', 'XYM')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometry points_xym error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -45;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding points_xym (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -46;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding points_xym (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -47;
-    }
-    ret = sqlite3_exec (handle, "CREATE TABLE points_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE points_xyzm error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -48;
-    }
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyzm', 'geom', 25832, 'POINT', 'XYZM')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometry points_xyzm error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -49;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding points_xyzm (1) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -50;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "feeding points_xyzm (2) error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -51;
-    }
-
-    elementary_geometries (handle, "points", "geom", "elem_point", "pk_elem", "mul_id");
-    elementary_geometries (handle, "roads", "geom", "elem_linestring", "pk_elem", "mul_id");
-    elementary_geometries (handle, "polygons", "geom", "elem_poly", "pk_elem", "mul_id");
-
-    elementary_geometries (handle, "polyg_xy", "geom", "elem_poly_xy", "pk_elem1", "mul_id");
-    elementary_geometries (handle, "polyg_xym", "geom", "elem_poly_xym", "pk_elem1", "mul_id");
-    elementary_geometries (handle, "polyg_xyz", "geom", "elem_poly_xyz", "pk_elem1", "mul_id");
-
-    elementary_geometries (handle, "roads_xyz", "geom", "elem_roads_xy", "pk_elem1", "mul_id");
-    elementary_geometries (handle, "roads_xym", "geom", "elem_roads_xym", "pk_elem1", "mul_id");
-    elementary_geometries (handle, "roads_xyzm", "geom", "elem_roads_xyz", "pk_elem1", "mul_id");
-
-    elementary_geometries (handle, "points_xyz", "geom", "elem_points_xy", "pk_elem1", "mul_id");
-    elementary_geometries (handle, "points_xym", "geom", "elem_points_xym", "pk_elem1", "mul_id");
-    elementary_geometries (handle, "points_xyzm", "geom", "elem_points_xyz", "pk_elem1", "mul_id");
-
-    remove_duplicated_rows(handle, "polyg_xy");
-    remove_duplicated_rows(handle, "polyg_xyz");
-    remove_duplicated_rows(handle, "polyg_xym");
-    remove_duplicated_rows(handle, "roads_xyz");
-    remove_duplicated_rows(handle, "roads_xym");
-    remove_duplicated_rows(handle, "roads_xyzm");
-    remove_duplicated_rows(handle, "points_xyz");
-    remove_duplicated_rows(handle, "points_xym");
-    remove_duplicated_rows(handle, "points_xyzm");
+    if (!ret)
+      {
+	  fprintf (stderr, "update_layer_statistics() error %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -8;
+      }
+
+    ret =
+	load_shapefile (handle, "shp/merano-3d/roads", "roads", "CP1252", 25832,
+			"geom", 0, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_shapefile (handle, "shp/merano-3d/points", "points", "CP1252",
+			25832, "geom", 0, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polygons (FEATURE_ID, DATUM, TEXT_I) VALUES (1250000, 0.1, 'alpha')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE polyg_xy (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE polyg_xy error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('polyg_xy', 'geom', 25832, 'POLYGON', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeomety polyg_xy error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding polyg_xy (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -18;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding polyg_xy (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -19;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE polyg_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE polyg_xym error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -20;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('polyg_xym', 'geom', 25832, 'POLYGON', 'XYM')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometry polyg_xym error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -21;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding polyg_xym (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -22;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding polyg_xym (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -23;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE polyg_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE polyg_xyz error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -24;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('polyg_xyz', 'geom', 25832, 'POLYGON', 'XYZ')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometry polyg_xyz error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -25;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding polyg_xyz (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -26;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding polyg_xyz (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -27;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE roads_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE roads_xyz error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -28;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('roads_xyz', 'geom', 25832, 'LINESTRING', 'XYZ')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeomety roads_xyz error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -29;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding roads_xyz (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -30;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding roads_xyz (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -31;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE roads_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE roads_xym error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -32;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('roads_xym', 'geom', 25832, 'LINESTRING', 'XYM')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometry roads_xym error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -33;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding roads_xym (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -34;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding roads_xym (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -35;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE roads_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE roads_xyzm error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -36;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('roads_xyzm', 'geom', 25832, 'LINESTRING', 'XYZM')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometry roads_xyzm error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -37;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding roads_xyzm (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -38;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding roads_xyzm (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -39;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE points_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE points_xyz error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -40;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('points_xyz', 'geom', 25832, 'POINT', 'XYZ')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeomety points_xyz error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -41;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding points_xyz (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -42;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding points_xyz (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -43;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE points_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE points_xym error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -44;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('points_xym', 'geom', 25832, 'POINT', 'XYM')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometry points_xym error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -45;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding points_xym (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -46;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding points_xym (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -47;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE points_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE points_xyzm error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -48;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('points_xyzm', 'geom', 25832, 'POINT', 'XYZM')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometry points_xyzm error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -49;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding points_xyzm (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -50;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "feeding points_xyzm (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -51;
+      }
+
+    elementary_geometries (handle, "points", "geom", "elem_point", "pk_elem",
+			   "mul_id");
+    elementary_geometries (handle, "roads", "geom", "elem_linestring",
+			   "pk_elem", "mul_id");
+    elementary_geometries (handle, "polygons", "geom", "elem_poly", "pk_elem",
+			   "mul_id");
+
+    elementary_geometries (handle, "polyg_xy", "geom", "elem_poly_xy",
+			   "pk_elem1", "mul_id");
+    elementary_geometries (handle, "polyg_xym", "geom", "elem_poly_xym",
+			   "pk_elem1", "mul_id");
+    elementary_geometries (handle, "polyg_xyz", "geom", "elem_poly_xyz",
+			   "pk_elem1", "mul_id");
+
+    elementary_geometries (handle, "roads_xyz", "geom", "elem_roads_xy",
+			   "pk_elem1", "mul_id");
+    elementary_geometries (handle, "roads_xym", "geom", "elem_roads_xym",
+			   "pk_elem1", "mul_id");
+    elementary_geometries (handle, "roads_xyzm", "geom", "elem_roads_xyz",
+			   "pk_elem1", "mul_id");
+
+    elementary_geometries (handle, "points_xyz", "geom", "elem_points_xy",
+			   "pk_elem1", "mul_id");
+    elementary_geometries (handle, "points_xym", "geom", "elem_points_xym",
+			   "pk_elem1", "mul_id");
+    elementary_geometries (handle, "points_xyzm", "geom", "elem_points_xyz",
+			   "pk_elem1", "mul_id");
+
+    remove_duplicated_rows (handle, "polyg_xy");
+    remove_duplicated_rows (handle, "polyg_xyz");
+    remove_duplicated_rows (handle, "polyg_xym");
+    remove_duplicated_rows (handle, "roads_xyz");
+    remove_duplicated_rows (handle, "roads_xym");
+    remove_duplicated_rows (handle, "roads_xyzm");
+    remove_duplicated_rows (handle, "points_xyz");
+    remove_duplicated_rows (handle, "points_xym");
+    remove_duplicated_rows (handle, "points_xyzm");
 
     sql = "CREATE VIEW test_view AS "
-          "SELECT ROWID AS ROWID, pk_elem AS id, geom AS geometry FROM roads_xyz";
+	"SELECT ROWID AS ROWID, pk_elem AS id, geom AS geometry FROM roads_xyz";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE test_view error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -52;
-    }
-
-    sql = "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, "
-          "f_table_name, f_geometry_column, read_only) VALUES "
-          "('test_view', 'geometry', 'rowid', 'roads_xyz', 'geom', 1)";
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE test_view error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -52;
+      }
+
+    sql =
+	"INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, "
+	"f_table_name, f_geometry_column, read_only) VALUES "
+	"('test_view', 'geometry', 'rowid', 'roads_xyz', 'geom', 1)";
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Register SpatialView error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -53;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Register SpatialView error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -53;
+      }
 
     ret = update_layer_statistics (handle, NULL, NULL);
-    if (!ret) {
-        fprintf (stderr, "update_layer_statistics() error %s\n", err_msg);
-	sqlite3_close(handle);
-	return -54;
-    }
+    if (!ret)
+      {
+	  fprintf (stderr, "update_layer_statistics() error %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -54;
+      }
 
     sql = "SELECT row_count, extent_min_x, extent_max_y "
-          "FROM geometry_columns_statistics "
-          "WHERE f_table_name LIKE 'roads' "
-          "AND f_geometry_column LIKE 'geom'";
+	"FROM geometry_columns_statistics "
+	"WHERE f_table_name LIKE 'roads' " "AND f_geometry_column LIKE 'geom'";
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "Error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -55;
-    }
-    if (rows != 1) {
-        fprintf (stderr, "Unexpected num of rows for GEOMETRY_COLUMNS_STATISTICS.\n");
-        return  -56;
-    }
-    if (atoi(results[columns+0]) != 18) {
-        fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result row_count: %s\n", results[columns+0]);
-        return -57;
-    }
-    tic = fabs(atof(results[columns+1]) - 666057.648017325);
-    if (tic >= 0.00000002) {
-        fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_min_x: %s\n", results[columns+1]);
-        return -58;
-    }
-    tic = fabs(atof(results[columns+2]) - 5170671.31627796);
-    if (tic >= 0.0000002) {
-        fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_max_y: %s\n", results[columns+2]);
-        return -59;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
+    if (rows != 1)
+      {
+	  fprintf (stderr,
+		   "Unexpected num of rows for GEOMETRY_COLUMNS_STATISTICS.\n");
+	  return -56;
+      }
+    if (atoi (results[columns + 0]) != 18)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result row_count: %s\n",
+		   results[columns + 0]);
+	  return -57;
+      }
+    tic = fabs (atof (results[columns + 1]) - 666057.648017325);
+    if (tic >= 0.00000002)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_min_x: %s\n",
+		   results[columns + 1]);
+	  return -58;
+      }
+    tic = fabs (atof (results[columns + 2]) - 5170671.31627796);
+    if (tic >= 0.0000002)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_max_y: %s\n",
+		   results[columns + 2]);
+	  return -59;
+      }
     sqlite3_free_table (results);
 
     ret = gaiaDropTable (handle, "polygons");
-    if (!ret) {
-	fprintf (stderr, "DROP polygons error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -60;
-    }
-    
+    if (!ret)
+      {
+	  fprintf (stderr, "DROP polygons error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -60;
+      }
+
 /* checking gaiaGetVectorLayersList() - ALL */
-    list = gaiaGetVectorLayersList(handle, NULL, NULL, GAIA_VECTORS_LIST_FAST);
-    gaiaFreeVectorLayersList(list);
+    list =
+	gaiaGetVectorLayersList (handle, NULL, NULL,
+				 GAIA_VECTORS_LIST_OPTIMISTIC);
+    gaiaFreeVectorLayersList (list);
 
 #ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
 
-    ret = check_all_geometry_columns (handle, "./report", NULL, NULL);
-    if (!ret) {
-        fprintf (stderr, "check_all_geometry_columns() error\n");
-	sqlite3_close(handle);
-	return -61;
-    }
-
-    ret = sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); 
-    if (!ret) {
-        fprintf (stderr, "sanitize_all_geometry_columns() error\n");
-	sqlite3_close(handle);
-	return -62;
-    }
+    if (p_cache == NULL)
+	ret = check_all_geometry_columns (handle, "./report", NULL, NULL);
+    else
+	ret =
+	    check_all_geometry_columns_r (p_cache, handle, "./report", NULL,
+					  NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "check_all_geometry_columns() error\n");
+	  sqlite3_close (handle);
+	  return -61;
+      }
+
+    if (p_cache == NULL)
+	ret =
+	    sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL,
+					   NULL);
+    else
+	ret =
+	    sanitize_all_geometry_columns_r (p_cache, handle, "tmp_",
+					     "./report", NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "sanitize_all_geometry_columns() error\n");
+	  sqlite3_close (handle);
+	  return -62;
+      }
 
 #endif /* end LWGEOM conditionals */
-    
+
 /* checking gaiaGetVectorLayersList() - Table */
-    list = gaiaGetVectorLayersList(handle, "elem_points_xyz", NULL, GAIA_VECTORS_LIST_FAST);
-    gaiaFreeVectorLayersList(list);
-    
+    list =
+	gaiaGetVectorLayersList (handle, "elem_points_xyz", NULL,
+				 GAIA_VECTORS_LIST_OPTIMISTIC);
+    gaiaFreeVectorLayersList (list);
+
 /* checking gaiaGetVectorLayersList() - Table and Geometry */
-    list = gaiaGetVectorLayersList(handle, "elem_roads_xy", "geom", GAIA_VECTORS_LIST_FAST);
-    gaiaFreeVectorLayersList(list);
+    list =
+	gaiaGetVectorLayersList (handle, "elem_roads_xy", "geom",
+				 GAIA_VECTORS_LIST_OPTIMISTIC);
+    gaiaFreeVectorLayersList (list);
+
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
+    int ret;
+    sqlite3 *handle;
+    void *cache = spatialite_alloc_connection ();
+
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    spatialite_init_ex (handle, cache, 0);
+
+    ret = do_test (handle, cache);
+    if (ret != 0)
+	return ret;
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -61;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -61;
+      }
 
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
 
+/* testing again in legacy mode */
+    spatialite_init (0);
+
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -62;
+      }
+
+    ret = do_test (handle, NULL);
+    if (ret != 0)
+	return ret;
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -63;
+
+	  spatialite_cleanup ();
+      }
+#endif /* end ICONV conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_spatialindex.c b/test/check_spatialindex.c
index 4b4787e..3aeab3c 100644
--- a/test/check_spatialindex.c
+++ b/test/check_spatialindex.c
@@ -51,9 +51,172 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int do_test(sqlite3 *handle, int legacy)
+int
+do_test_without_rowid (sqlite3 * handle)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+/* testing WITHOUT ROWID */
+    char *err_msg = NULL;
+    char **results;
+    int rows;
+    int columns;
+    int ret = sqlite3_exec (handle,
+			    "CREATE TABLE without_rowid ("
+			    "id INTEGER NOT NULL PRIMARY KEY,"
+			    "name TEXT NOT NULL) WITHOUT ROWID",
+			    NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE without_rowid error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -313;
+      }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT AddGeometryColumn('without_rowid', 'geom', 4326, 'POINT', 'XY')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn(without_rowid) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -314;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: AddGeometryColumn(without_rowid) bad result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  return -315;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "unexpected result AddGeometryColumn(without_rowid): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  return -316;
+      }
+    sqlite3_free_table (results);
+
+
+    ret = sqlite3_exec (handle,
+			"ALTER TABLE without_rowid ADD COLUMN geom BLOB",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ALTER TABLE without_rowid error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -317;
+      }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RecoverGeometryColumn('without_rowid', 'geom', 4326, 'POINT', 'XY')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(without_rowid) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -318;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: RecoverGeometryColumn(without_rowid) bad result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  return -319;
+      }
+    if (strcmp (results[1], "0") != 0)
+      {
+	  fprintf (stderr,
+		   "unexpected result RecoverGeometryColumn(without_rowid): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  return -320;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RecoverSpatialIndex('without_rowid', 'geom', 0)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverSpatialIndex(without_rowid) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -321;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: RecoverSpatialIndex(without_rowid) bad result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  return -322;
+      }
+    if (strcmp (results[1], "-1") != 0)
+      {
+	  fprintf (stderr,
+		   "unexpected result RecoverSpatialIndex(without_rowid): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  return -323;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CheckSpatialIndex('without_rowid', 'geom')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CheckSpatialIndex(without_rowid) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -324;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CheckSpatialIndex(without_rowid) bad result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  return -325;
+      }
+    if (strcmp (results[1], "-1") != 0)
+      {
+	  fprintf (stderr,
+		   "unexpected result CheckSpatialIndex(without_rowid): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  return -326;
+      }
+    sqlite3_free_table (results);
+    return 0;
+
+/*
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
+    return -113;
+    */
+}
+
+int
+do_test (sqlite3 * handle, int legacy)
+{
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     char *err_msg = NULL;
     int row_count;
@@ -61,269 +224,346 @@ int do_test(sqlite3 *handle, int legacy)
     int rows;
     int columns;
     char sql[1024];
-	
+
     ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils",
 			  "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count,
 			  err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 61) {
-	fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-    
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -5;
-    }
-    if ((rows != 22) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -6;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (strcmp(results[22], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected result at 22: %s\n", results[22]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -8;
-    }
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 61)
+      {
+	  fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+    if ((rows != 22) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (strcmp (results[22], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected result at 22: %s\n", results[22]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -8;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -9;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
     rows = 0;
     columns = 0;
     ret = sqlite3_get_table (handle, "SELECT pkid FROM idx_Councils_geom;",
 			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in idx SELECT: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -10;
-    }
-    if ((rows != 61) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select pkid bad idx result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -11;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in idx SELECT: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 61) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select pkid bad idx result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -11;
+      }
     sqlite3_free_table (results);
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -12;
-    }
-    if ((rows != 22) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -13;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -14;
-    }
-    if (strcmp(results[22], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -15;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+    if ((rows != 22) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad idx result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    if (strcmp (results[22], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -15;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -16;
-    }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -16;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -17;
-    }
-    if ((rows != 22) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -18;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -19;
-    }
-    if (strcmp(results[22], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -20;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
+    if ((rows != 22) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad idx result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -18;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -19;
+      }
+    if (strcmp (results[22], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -20;
+      }
     sqlite3_free_table (results);
-  
-    ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UPDATE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -34;
-    }
+
+    ret =
+	sqlite3_exec (handle,
+		      "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UPDATE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -35;
-    }
-    if ((rows != 22) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -36;
-    }
-    if (strcmp(results[1], "Ascoli Satriano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -37;
-    }
-    if (strcmp(results[22], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -38;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
+    if ((rows != 22) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad idx result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -36;
+      }
+    if (strcmp (results[1], "Ascoli Satriano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -37;
+      }
+    if (strcmp (results[22], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -38;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = \"Ascoli Satriano\";",
-			NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -39;
-    }
+    ret =
+	sqlite3_exec (handle,
+		      "DELETE FROM Councils WHERE lc_name = \"Ascoli Satriano\";",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -39;
+      }
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -40;
-    }
-    if ((rows != 21) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -41;
-    }
-    if (strcmp(results[1], "Cagnano Varano") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -42;
-    }
-    if (strcmp(results[21], "Zapponeta") != 0) {
-	fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -43;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -40;
+      }
+    if ((rows != 21) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select lc_name bad idx result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -41;
+      }
+    if (strcmp (results[1], "Cagnano Varano") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -42;
+      }
+    if (strcmp (results[21], "Zapponeta") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -43;
+      }
     sqlite3_free_table (results);
 
     rows = 0;
     columns = 0;
-    ret = sqlite3_get_table (handle, "SELECT rowid, nodeno FROM idx_Councils_geom_rowid ORDER BY rowid;",
-			     &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -44;
-    }
-    if ((rows != 61) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select rowid bad idx result: %i/%i.\n", rows, columns);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return  -45;
-    }
-    if (strcmp(results[2], "1") != 0) {
-	fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -46;
-    }
-    if (strcmp(results[12], "6") != 0) {
-	fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]);
-	sqlite3_free_table (results);
-	sqlite3_close(handle);
-	return -47;
-    }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT rowid, nodeno FROM idx_Councils_geom_rowid ORDER BY rowid;",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -44;
+      }
+    if ((rows != 61) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select rowid bad idx result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -45;
+      }
+    if (strcmp (results[2], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -46;
+      }
+    if (strcmp (results[12], "6") != 0)
+      {
+	  fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -47;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CheckSpatialIndex (1) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -48;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex();", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CheckSpatialIndex (2) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -49;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverSpatialIndex (1) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -50;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex();", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverSpatialIndex (2) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -51;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT CheckSpatialIndex('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CheckSpatialIndex (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT CheckSpatialIndex();", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CheckSpatialIndex (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -49;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverSpatialIndex (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -50;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex();", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverSpatialIndex (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -51;
+      }
 
 /*
 / going to create a broken/corrupted SpatialIndex 
@@ -333,128 +573,201 @@ int do_test(sqlite3 *handle, int legacy)
 / - and finally we'll perform a Vacuum
 / - all this notoriously causes R*Tree corruption
 */
-    ret = sqlite3_exec (handle, "CREATE TABLE bad_councils AS SELECT lc_name, geom FROM Councils", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE bad_councils error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -52;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -54;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 1, 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -55;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032.5, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -56;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 1, 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -57;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 1.5)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -58;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'DUMMY', 'XY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -59;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 'DUMMY')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -60;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 2)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -61;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('bad_councils', 'geom')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateSpatialIndex(bad_councils) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -62;
-    }
-
-    ret = sqlite3_exec (handle, "DELETE FROM bad_councils WHERE lc_name LIKE 'C%'", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE FROM bad_councils error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -63;
-    }
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE bad_councils AS SELECT lc_name, geom FROM Councils",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE bad_councils error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -52;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 1, 23032, 'MULTIPOLYGON', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032.5, 'MULTIPOLYGON', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -56;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 1, 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -57;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 1.5)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -58;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'DUMMY', 'XY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -59;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 'DUMMY')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -60;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 2)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -61;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT CreateSpatialIndex('bad_councils', 'geom')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateSpatialIndex(bad_councils) error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -62;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "DELETE FROM bad_councils WHERE lc_name LIKE 'C%'", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE FROM bad_councils error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -63;
+      }
 
     ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -64;
-    }
-    ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CheckSpatialIndex (3) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -65;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RecoverSpatialIndex (3) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -66;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('bad_councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UpdateLayerStatistics (1) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -67;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics();", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UpdateLayerStatistics (2) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -68;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VACUUM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -64;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT CheckSpatialIndex('bad_councils', 'geom');", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CheckSpatialIndex (3) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -65;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RecoverSpatialIndex('bad_councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RecoverSpatialIndex (3) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -66;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT UpdateLayerStatistics('bad_councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateLayerStatistics (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -67;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT UpdateLayerStatistics();", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateLayerStatistics (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -68;
+      }
 /* END broken SpatialIndex check/recover */
 
-    ret = sqlite3_exec (handle, "SELECT Extent(geom) FROM Councils;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Extent (1) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -69;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT Extent(geom) FROM Councils;", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Extent (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -69;
+      }
 
     strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN (");
     strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE ");
     strcat (sql, "f_table_name = 'Councils' AND search_frame = ");
     strcat (sql, "BuildMbr(10, 10, 20, 20));");
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualSpatialIndex (1) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -70;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualSpatialIndex (1) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -70;
+      }
 
     strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN (");
     strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE ");
@@ -462,292 +775,894 @@ int do_test(sqlite3 *handle, int legacy)
     strcat (sql, "'geom' AND search_frame = BuildCircleMbr(1019000, ");
     strcat (sql, "4592000, 10000));");
     ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualSpatialIndex (2) error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -71;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Rebuild triggers error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -72;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Disable index error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -73;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Disable index error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -74;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualSpatialIndex (2) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -71;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RebuildGeometryTriggers('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Rebuild triggers error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -72;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Disable index error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -73;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT RebuildGeometryTriggers('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Disable index error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -74;
+      }
 
     ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -75;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn(1, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -76;
-    }
-    ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('a', 1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -77;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex(1, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -78;
-    }
-    ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('a', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -79;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -80;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -81;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -82;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -83;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 'c');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -84;
-    }
-    ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -85;
-    }
-    ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex(1, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -86;
-    }
-    ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('a', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -87;
-    }
-    ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex(1, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -88;
-    }
-    ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('a', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -89;
-    }
-    ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers(1, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -90;
-    }
-    ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('a', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -91;
-    }
-    ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('a', 2);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -92;
-    }
-    ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics(2, 'a');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg);
-        sqlite3_free (err_msg);
-        return -93;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -75;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT DiscardGeometryColumn(1, 'a');", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -76;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT DiscardGeometryColumn('a', 1);", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -77;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT CheckSpatialIndex(1, 'a');", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -78;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT CheckSpatialIndex('a', 2);", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -79;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1, 'a');", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -80;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 2);", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -81;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a');", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -82;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1);", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -83;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 'c');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -84;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 1);", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -85;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT CreateSpatialIndex(1, 'a');", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -86;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT CreateSpatialIndex('a', 2);", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -87;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT DisableSpatialIndex(1, 'a');", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -88;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT DisableSpatialIndex('a', 2);", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -89;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RebuildGeometryTriggers(1, 'a');", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -90;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('a', 2);", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -91;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT UpdateLayerStatistics('a', 2);", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -92;
+      }
+    ret =
+	sqlite3_exec (handle, "SELECT UpdateLayerStatistics(2, 'a');", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  return -93;
+      }
 
 /* final DB cleanup */
-    ret = sqlite3_exec (handle, "DROP TABLE bad_councils", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE bad_councils error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -94;
-    }
-    ret = sqlite3_exec (handle, "DROP TABLE idx_bad_councils_geom", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE idx_bad_councils_geom error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -95;
-    }
-    ret = sqlite3_exec (handle, "DROP TABLE idx_Councils_geom", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE idx_Councils_geom error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -96;
-    }
-    ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -97;
-    }
+    ret =
+	sqlite3_exec (handle, "DROP TABLE bad_councils", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE bad_councils error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -94;
+      }
+    ret =
+	sqlite3_exec (handle, "DROP TABLE idx_bad_councils_geom", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE idx_bad_councils_geom error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -95;
+      }
+    ret =
+	sqlite3_exec (handle, "DROP TABLE idx_Councils_geom", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE idx_Councils_geom error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -96;
+      }
+    ret =
+	sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -97;
+      }
     if (legacy)
-    {
-    /* only required for legacy style metadata */
-        ret = sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, &err_msg);
-        if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM layer_statistics error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -98;
-	}
-    }
-    ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -99;
-    }
+      {
+	  /* only required for legacy style metadata */
+	  ret =
+	      sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL,
+			    &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DELETE FROM layer_statistics error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -98;
+	    }
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE FROM spatialite_history error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -99;
+      }
     ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -100;
-    }
-	
-#endif	/* end ICONV conditional */
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VACUUM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -100;
+      }
+
+#endif /* end ICONV conditional */
 
 /* ok, succesfull termination */
-	return 0;
+    return 0;
 }
 
-int main (int argc, char *argv[])
+int
+do_test_rowid (sqlite3 * handle)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
+    int ret;
+    char *err_msg = NULL;
+    int row_count;
+    char **results;
+    int rows;
+    int columns;
+
+    ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils",
+			  "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count,
+			  err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -203;
+      }
+    if (row_count != 61)
+      {
+	  fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count);
+	  sqlite3_close (handle);
+	  return -204;
+      }
+
+    ret =
+	sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -205;
+      }
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CheckSpatialIndex('Councils', 'geom');",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CheckSpatialIndex(rowid-1): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -206;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CheckSpatialIndex(rowid-1) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -207;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL CheckSpatialIndex(rowid-1)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -208;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected CheckSpatialIndex(rowid-1): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -209;
+      }
+    sqlite3_free_table (results);
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CheckSpatialIndex('Councils', 'geom');",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RecoverSpatialIndex(rowid-1): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -210;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: RecoverSpatialIndex(rowid-1) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -211;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL RecoverSpatialIndex(rowid-1)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -212;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected RecoverSpatialIndex(rowid-1): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -213;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_exec (handle, "ALTER TABLE Councils ADD COLUMN rowid", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ALTER TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -214;
+      }
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CheckSpatialIndex('Councils', 'geom');",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CheckSpatialIndex(rowid-2): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -215;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CheckSpatialIndex(rowid-2) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -216;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL CheckSpatialIndex(rowid-2)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -217;
+      }
+    if (strcmp (results[1], "-1") != 0)
+      {
+	  fprintf (stderr, "unexpected CheckSpatialIndex(rowid-2): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -218;
+      }
+    sqlite3_free_table (results);
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CheckSpatialIndex('Councils', 'geom');",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RecoverSpatialIndex(rowid-2): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -219;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: RecoverSpatialIndex(rowid-2) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -220;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL RecoverSpatialIndex(rowid-2)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -221;
+      }
+    if (strcmp (results[1], "-1") != 0)
+      {
+	  fprintf (stderr, "unexpected RecoverSpatialIndex(rowid-2): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -222;
+      }
+    sqlite3_free_table (results);
+
+    rows = 0;
+    columns = 0;
+    ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils');",
+			     &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CheckShadowedRowid(rowid-1): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -223;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CheckShadowedRowid(rowid-1) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -224;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL CheckShadowedRowid(rowid-1)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -225;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected CheckShadowedRowid(rowid-1): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -226;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DisableSpatialIndex(rowid) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -227;
+      }
+
+    ret =
+	sqlite3_exec (handle, "DROP TABLE idx_councils_geom", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE(rowid) error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -228;
+      }
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CreateSpatialIndex('Councils', 'geom');",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CreateSpatialIndex(rowid-2): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -229;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CreateSpatialIndex(rowid-2) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -230;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL CreateSpatialIndex(rowid-2)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -231;
+      }
+    if (strcmp (results[1], "-1") != 0)
+      {
+	  fprintf (stderr, "unexpected CreateSpatialIndex(rowid-2): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -232;
+      }
+    sqlite3_free_table (results);
+
+    rows = 0;
+    columns = 0;
+    ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils');",
+			     &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CheckShadowedRowid(rowid-2): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -233;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CheckShadowedRowid(rowid-2) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -234;
+      }
+    if (results[1] == NULL)
+      {
+	  fprintf (stderr, "unexpected NULL CheckShadowedRowid(rowid-2)\n");
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -235;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr, "unexpected CheckShadowedRowid(rowid-2): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -236;
+      }
+    sqlite3_free_table (results);
+
+    rows = 0;
+    columns = 0;
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT CheckShadowedRowid('Councils_bad_name_not_existing');",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CheckShadowedRowid(rowid-3): %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -237;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: CheckShadowedRowid(rowid-3) result: %i/%i.\n",
+		   rows, columns);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -238;
+      }
+    if (results[1] != NULL)
+      {
+	  fprintf (stderr,
+		   "unexpected NOT NULL CheckShadowedRowid(rowid-3): %s\n",
+		   results[1]);
+	  sqlite3_free_table (results);
+	  sqlite3_close (handle);
+	  return -239;
+      }
+    sqlite3_free_table (results);
+
+#endif /* end ICONV conditional */
+
+/* ok, succesfull termination */
+    return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
 /* testing current style metadata layout >= v.4.0.0 */
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = do_test(handle, 0);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing current style metadata layout\n");
-	return ret;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret = do_test (handle, 0);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing current style metadata layout\n");
+	  return ret;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -101;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -101;
+      }
+
+    spatialite_cleanup_ex (cache);
+
+/* testing ROWID physical column */
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -102;
+      }
+
+    spatialite_init_ex (handle, cache, 0);
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -103;
+      }
+
+    ret = do_test_rowid (handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing current style metadata layout (rowid column)\n");
+	  return ret;
+      }
+
+    if (strcmp (sqlite3_libversion (), "3.8.2") >= 0)
+      {
+	  /* testing WITHOUT ROWID (requires SQLIte 3.8.2 or later) */
+	  ret = do_test_without_rowid (handle);
+	  if (ret != 0)
+	    {
+		fprintf (stderr,
+			 "error while testing current style metadata layout (WITHOUT ROWID)\n");
+		return ret;
+	    }
+      }
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -104;
+      }
+
     spatialite_cleanup_ex (cache);
 
 /* testing legacy style metadata layout <= v.3.1.0 */
-    cache = spatialite_alloc_connection();
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    cache = spatialite_alloc_connection ();
+    ret =
+	system
+	("cp test-legacy-3.0.1.sqlite copy-spatialindex-legacy-3.0.1.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -105;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-spatialindex-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -106;
+      }
+
+    spatialite_init_ex (handle, cache, 0);
+
+    ret = do_test (handle, 1);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout\n");
+	  return ret;
+      }
+
+    if (strcmp (sqlite3_libversion (), "3.8.2") >= 0)
+      {
+	  /* testing WITHOUT ROWID (requires SQLIte 3.8.2 or later) */
+	  ret = do_test_without_rowid (handle);
+	  if (ret != 0)
+	    {
+		fprintf (stderr,
+			 "error while testing legacy style metadata layout (WITHOUT ROWID)\n");
+		return ret;
+	    }
+      }
+
+    ret = sqlite3_close (handle);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -107;
+      }
+
+    spatialite_cleanup_ex (cache);
+    ret = unlink ("copy-spatialindex-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -108;
+      }
 
+/* testing legacy style metadata layout <= v.3.1.0 (ROWID column) */
+    cache = spatialite_alloc_connection ();
+    ret =
+	system
+	("cp test-legacy-3.0.1.sqlite copy-spatialindex-legacy-3.0.1.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -109;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-spatialindex-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -110;
+      }
     spatialite_init_ex (handle, cache, 0);
-	
-    ret = do_test(handle, 1);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy style metadata layout\n");
-	return ret;
-    }
+
+    ret = do_test_rowid (handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout (rowid column)\n");
+	  return ret;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -101;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -111;
+      }
+
     spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    ret = unlink ("copy-spatialindex-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -1;
-    }
-	
-#endif	/* end ICONV conditional */
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -112;
+      }
+
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_sql_stmt.c b/test/check_sql_stmt.c
index d8509ef..572d8c1 100644
--- a/test/check_sql_stmt.c
+++ b/test/check_sql_stmt.c
@@ -43,6 +43,7 @@ the terms of any one of the MPL, the GPL or the LGPL.
 */
 #define _GNU_SOURCE
 #include <stdlib.h>
+#include <unistd.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -56,10 +57,6 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-#include <libxml/parser.h>
-#endif
-
 #ifndef OMIT_GEOS		/* including GEOS */
 #include <geos_c.h>
 #endif
@@ -73,16 +70,99 @@ the terms of any one of the MPL, the GPL or the LGPL.
 
 struct test_data
 {
-    char * test_case_name;
-    char * database_name;
-    char * sql_statement;
+    char *test_case_name;
+    char *database_name;
+    char *sql_statement;
     int expected_rows;
     int expected_columns;
-    char ** expected_results;
+    char **expected_results;
     int *expected_precision;
 };
 
-int do_one_case (const struct test_data *data)
+struct db_conn
+{
+    sqlite3 *db_handle;
+    char *db_path;
+    int read_only;
+    const void *cache;
+};
+
+static void
+close_connection (struct db_conn *conn)
+{
+    if (conn->db_path != NULL)
+	free (conn->db_path);
+    conn->db_path = NULL;
+    if (conn->db_handle != NULL)
+	sqlite3_close (conn->db_handle);
+    conn->db_handle = NULL;
+    if (conn->cache == NULL)
+	spatialite_cleanup ();
+}
+
+static void
+save_connection (struct db_conn *conn, const char *database_name,
+		 sqlite3 * db_handle, int read_only, int empty_db)
+{
+    int len = strlen (database_name);
+    conn->db_handle = db_handle;
+    conn->read_only = read_only;
+    if (read_only)
+      {
+	  conn->db_path = malloc (len - 2);
+	  memcpy (conn->db_path, database_name, len - 3);
+	  *(conn->db_path + len - 3) = '\0';
+      }
+    else if (empty_db)
+      {
+	  conn->db_path = malloc (9);
+	  strcpy (conn->db_path, ":memory:");
+      }
+    else
+      {
+	  conn->db_path = malloc (len + 1);
+	  strcpy (conn->db_path, database_name);
+      }
+}
+
+static int
+compare_path (const char *pth1, const char *pth2, int read_only)
+{
+    int ret = 0;
+    if (!read_only)
+      {
+	  if (strcmp (pth1, pth2) == 0)
+	      ret = 1;
+      }
+    else
+      {
+	  if (strncmp (pth1, pth2, strlen (pth2) - 3) == 0)
+	      ret = 1;
+      }
+    return ret;
+}
+
+static int
+load_dyn_extension (sqlite3 * db_handle)
+{
+    int ret;
+    char *err_msg = NULL;
+    sqlite3_enable_load_extension (db_handle, 1);
+    ret =
+	sqlite3_exec (db_handle, "SELECT load_extension('mod_spatialite')",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "load_extension() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 0;
+      }
+    return 1;
+}
+
+int
+do_one_case (struct db_conn *conn, const struct test_data *data,
+	     int load_extension)
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -91,76 +171,158 @@ int do_one_case (const struct test_data *data)
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    int read_only = 0;
+    int empty_db = 0;
+    int not_memory_db = 0;
+
+    fprintf (stderr, "Test case: %s\n", data->test_case_name);
+    if (strncmp
+	("_RO", data->database_name + strlen (data->database_name) - 3,
+	 strlen ("_RO")) == 0)
+	read_only = 1;
+    if (strcmp ("NEW:memory:", data->database_name) == 0)
+	empty_db = 1;
+    if (conn->db_handle != NULL)
+      {
+	  if (empty_db)
+	      ;
+	  else if (compare_path (conn->db_path, data->database_name, read_only))
+	    {
+		if (conn->read_only == read_only)
+		  {
+		      db_handle = conn->db_handle;
+		      goto skip_init;
+		  }
+	    }
+	  close_connection (conn);
+      }
+
+    if (conn->cache == NULL && !load_extension)
+	spatialite_init (0);
 
-    fprintf(stderr, "Test case: %s\n", data->test_case_name);
     /* This hack checks if the name ends with _RO */
-    if (strncmp("_RO", data->database_name + strlen(data->database_name) - 3, strlen("_RO")) == 0) {
-	fprintf(stderr, "opening read_only\n");
-	ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READONLY, NULL);
-    } else {
-	ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    }
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "cannot open %s db: %s\n", data->database_name, sqlite3_errmsg (db_handle));
-      sqlite3_close (db_handle);
-      db_handle = NULL;
-      return -1;
-    }
-
-    spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(db_handle);
-	return -2;
-    }
-
-    ret = sqlite3_get_table (db_handle, data->sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -10;
-    }
-    if ((rows != data->expected_rows) || (columns != data->expected_columns)) {
-	fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns);
-	return  -11;
-    }
-    for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) {
-	if (results[i] != NULL && data->expected_precision[i] == 0) {
-	    data->expected_precision[i] = strlen(results[i]);
-	}
-	if (results[i] == NULL) {
-	    if (strcmp("(NULL)", data->expected_results[i]) == 0) {
-		/* we expected this */
-		continue;
-	    } else {
-		fprintf (stderr, "Null value at %i.\n", i);
-		fprintf (stderr, "Expected value was: %s\n", data->expected_results[i]);
-		return  -12;
+    if (strncmp
+	("_RO", data->database_name + strlen (data->database_name) - 3,
+	 strlen ("_RO")) == 0)
+      {
+	  fprintf (stderr, "opening read_only\n");
+	  read_only = 1;
+	  ret =
+	      sqlite3_open_v2 (data->database_name, &db_handle,
+			       SQLITE_OPEN_READONLY, NULL);
+      }
+    else if (empty_db)
+      {
+	  ret =
+	      sqlite3_open_v2 (":memory:", &db_handle,
+			       SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
+			       NULL);
+      }
+    else
+      {
+	  if (strcmp (data->database_name, ":memory:") != 0)
+	      not_memory_db = 1;
+	  ret =
+	      sqlite3_open_v2 (data->database_name, &db_handle,
+			       SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
+			       NULL);
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open %s db: %s\n", data->database_name,
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    if (conn->cache != NULL)
+	spatialite_init_ex (db_handle, conn->cache, 0);
+    if (load_extension)
+      {
+	  if (!load_dyn_extension (db_handle))
+	    {
+		sqlite3_close (db_handle);
+		db_handle = NULL;
+		return -3;
+	    }
+      }
+    save_connection (conn, data->database_name, db_handle, read_only, empty_db);
+
+    if (read_only || not_memory_db)
+	goto skip_init;
+    ret =
+	sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+  skip_init:
+
+    ret =
+	sqlite3_get_table (db_handle, data->sql_statement, &results, &rows,
+			   &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != data->expected_rows) || (columns != data->expected_columns))
+      {
+	  fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows,
+		   columns);
+	  return -11;
+      }
+    for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i)
+      {
+	  if (results[i] != NULL && data->expected_precision[i] == 0)
+	    {
+		data->expected_precision[i] = strlen (results[i]);
+	    }
+	  if (results[i] == NULL)
+	    {
+		if (strcmp ("(NULL)", data->expected_results[i]) == 0)
+		  {
+		      /* we expected this */
+		      continue;
+		  }
+		else
+		  {
+		      fprintf (stderr, "Null value at %i.\n", i);
+		      fprintf (stderr, "Expected value was: %s\n",
+			       data->expected_results[i]);
+		      return -12;
+		  }
 	    }
-	} else if (strlen(results[i]) == 0) {
-	    fprintf (stderr, "zero length result at %i\n", i);
-	    fprintf (stderr, "Expected value was    : %s|\n", data->expected_results[i]);
-	    return -13;
-	} else if (strncmp(results[i], data->expected_results[i], data->expected_precision[i]) != 0) {
-	    fprintf (stderr, "Unexpected value at %i: %s|\n", i, results[i]);
-	    fprintf (stderr, "Expected value was   : %s|\n", data->expected_results[i]);
-	    return  -14;
-	}
-    }
+	  else if (strlen (results[i]) == 0)
+	    {
+		fprintf (stderr, "zero length result at %i\n", i);
+		fprintf (stderr, "Expected value was    : %s|\n",
+			 data->expected_results[i]);
+		return -13;
+	    }
+	  else if (strncmp
+		   (results[i], data->expected_results[i],
+		    data->expected_precision[i]) != 0)
+	    {
+		fprintf (stderr, "Unexpected value at %i: %s|\n", i,
+			 results[i]);
+		fprintf (stderr, "Expected value was   : %s|\n",
+			 data->expected_results[i]);
+		return -14;
+	    }
+      }
     sqlite3_free_table (results);
 
-    sqlite3_close (db_handle);
-        
-    spatialite_cleanup_ex(cache);
-    
     return 0;
 }
 
-int get_clean_line(FILE *f, char ** line)
+int
+get_clean_line (FILE * f, char **line)
 {
     size_t len = 0;
     ssize_t num_read = 0;
@@ -168,475 +330,400 @@ int get_clean_line(FILE *f, char ** line)
     char *tmp_line = NULL;
 
 #if !defined(_WIN32) &&!defined(__APPLE__)
-/* expecpting to be on a sane minded platform [linux-like] */
-    num_read = getline(&(tmp_line), &len, f);
+/* expecting to be on a sane minded platform [linux-like] */
+    num_read = getline (&(tmp_line), &len, f);
 #else
 /* neither Windows nor MacOsX support getline() */
-	len = 1024 * 1024;
-	tmp_line = malloc(len);
-	if (fgets(tmp_line, len, f) == NULL)
-	{
-		free(tmp_line);
-		num_read = -1;
-	}
-	else
-		num_read = strlen(tmp_line);
+    len = 1024 * 1024;
+    tmp_line = malloc (len);
+    if (fgets (tmp_line, len, f) == NULL)
+      {
+	  free (tmp_line);
+	  num_read = -1;
+      }
+    else
+	num_read = strlen (tmp_line);
 #endif
 
-    if (num_read < 1) {
-	fprintf(stderr, "failed to read at %li: %zi\n", ftell(f), num_read);
-	return -1;
-    }
+    if (num_read < 1)
+      {
+	  fprintf (stderr, "failed to read at %li: %li\n", ftell (f), num_read);
+	  return -1;
+      }
     /* trim the trailing new line and any comments */
-    for (end = 0; end < num_read; ++end) {
-	if (*(tmp_line + end) == '\n')
-	    break;
-	if (*(tmp_line + end) == '#')
-	    break;
-    }
+    for (end = 0; end < num_read; ++end)
+      {
+	  if (*(tmp_line + end) == '\n')
+	      break;
+	  if (*(tmp_line + end) == '#')
+	      break;
+      }
     /* trim any trailing spaces */
-    while (end > 0) {
-	if (*(tmp_line + end -1) != ' ') {
-	    break;
-	}
-	*(tmp_line + end -1) = '\0';
-	end--;
-    }
-    *line = malloc(end + 1);
-    memcpy(*line, tmp_line, end);
+    while (end > 0)
+      {
+	  if (*(tmp_line + end - 1) != ' ')
+	    {
+		break;
+	    }
+	  *(tmp_line + end - 1) = '\0';
+	  end--;
+      }
+    *line = malloc (end + 1);
+    memcpy (*line, tmp_line, end);
     (*line)[end] = '\0';
-    free(tmp_line);
+    free (tmp_line);
     return 0;
 }
 
-void handle_precision(char *expected_result, int *precision)
+void
+handle_precision (char *expected_result, int *precision)
 {
     int i;
-    int result_len = strlen(expected_result);
+    int prcsn;
+    int result_len = strlen (expected_result);
     *precision = 0;
-    for (i = result_len - 1; i >= 0; --i) {
-	if (expected_result[i] == ':') {
-	    expected_result[i] = '\0';
-	    *precision = atoi(&(expected_result[i + 1]));
-	    break;
-	}
-    }
+    for (i = result_len - 1; i >= 0; --i)
+      {
+	  if (expected_result[i] == ':')
+	    {
+		prcsn = atoi (&(expected_result[i + 1]));
+		if (prcsn > 0)
+		  {
+		      expected_result[i] = '\0';
+		      *precision = prcsn;
+		  }
+		break;
+	    }
+      }
 }
 
-struct test_data *read_one_case(const char *filepath)
+struct test_data *
+read_one_case (const char *filepath)
 {
     int num_results;
     int i;
     char *tmp;
     FILE *f;
-    struct test_data* data;
-
-    f = fopen(filepath, "r");
-    
-    data = malloc(sizeof(struct test_data));
-    get_clean_line(f, &(data->test_case_name));
-    get_clean_line(f, &(data->database_name));
-    get_clean_line(f, &(data->sql_statement));
-    get_clean_line(f, &(tmp));
-    data->expected_rows = atoi(tmp);
-    free(tmp);
-    get_clean_line(f, &(tmp));
-    data->expected_columns = atoi(tmp);
-    free(tmp);
+    struct test_data *data;
+
+    f = fopen (filepath, "r");
+
+    data = malloc (sizeof (struct test_data));
+    get_clean_line (f, &(data->test_case_name));
+    get_clean_line (f, &(data->database_name));
+    get_clean_line (f, &(data->sql_statement));
+    get_clean_line (f, &(tmp));
+    data->expected_rows = atoi (tmp);
+    free (tmp);
+    get_clean_line (f, &(tmp));
+    data->expected_columns = atoi (tmp);
+    free (tmp);
     num_results = (data->expected_rows + 1) * data->expected_columns;
-    data->expected_results = malloc(num_results * sizeof(char*));
-    data->expected_precision = malloc(num_results * sizeof(int));
-    for (i = 0; i < num_results; ++i) {
-	get_clean_line(f, &(data->expected_results[i]));
-	handle_precision(data->expected_results[i], &(data->expected_precision[i]));
-    }
-    fclose(f);
+    data->expected_results = malloc (num_results * sizeof (char *));
+    data->expected_precision = malloc (num_results * sizeof (int));
+    for (i = 0; i < num_results; ++i)
+      {
+	  get_clean_line (f, &(data->expected_results[i]));
+	  handle_precision (data->expected_results[i],
+			    &(data->expected_precision[i]));
+      }
+    fclose (f);
     return data;
 }
 
-void cleanup_test_data(struct test_data *data)
+void
+cleanup_test_data (struct test_data *data)
 {
     int i;
     int num_results = (data->expected_rows + 1) * (data->expected_columns);
 
-    for (i = 0; i < num_results; ++i) {
-	free(data->expected_results[i]);
-    }
-    free(data->expected_results);
-    free(data->expected_precision);
-    free(data->test_case_name);
-    free(data->database_name);
-    free(data->sql_statement);
-    free(data);
+    for (i = 0; i < num_results; ++i)
+      {
+	  free (data->expected_results[i]);
+      }
+    free (data->expected_results);
+    free (data->expected_precision);
+    free (data->test_case_name);
+    free (data->database_name);
+    free (data->sql_statement);
+    free (data);
 }
 
-int test_case_filter(const struct dirent *entry)
+int
+test_case_filter (const struct dirent *entry)
 {
-    return (fnmatch("*.testcase", entry->d_name, FNM_PERIOD) == 0);
+    return (fnmatch ("*.testcase", entry->d_name, FNM_PERIOD) == 0);
 }
 
-int run_all_testcases()
+int
+run_subdir_test (const char *subdirname, struct db_conn *conn,
+		 int load_extension)
 {
     struct dirent **namelist;
     int n;
     int i;
     int result = 0;
+
+    n = scandir (subdirname, &namelist, test_case_filter, alphasort);
+    if (n < 0)
+      {
+	  perror ("scandir");
+	  return -1;
+      }
+
+    for (i = 0; i < n; ++i)
+      {
+	  struct test_data *data;
+	  char *path;
+	  if (asprintf (&path, "%s/%s", subdirname, namelist[i]->d_name) < 0)
+	    {
+		return -1;
+	    }
+	  data = read_one_case (path);
+	  free (path);
+
+	  result = do_one_case (conn, data, load_extension);
+
+	  cleanup_test_data (data);
+	  if (result != 0)
+	    {
+		return result;
+	    }
+	  free (namelist[i]);
+      }
+    free (namelist);
+    return result;
+}
+
+int
+run_all_testcases (struct db_conn *conn, int load_extension)
+{
+    int ret;
+    int result = 0;
     const char *security_level;
-    
-    n = scandir("sql_stmt_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-    
+
+    result = run_subdir_test ("sql_stmt_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+
     security_level = getenv ("SPATIALITE_SECURITY");
     if (security_level == NULL)
 	;
-    else if (strcasecmp (security_level, "relaxed") == 0) {
-	n = scandir("sql_stmt_security_tests", &namelist, test_case_filter, alphasort);
-	if (n < 0) {
-	    perror("scandir");
-	    return -1;
-	}
-
-	for (i = 0; i < n; ++i) {
-	    struct test_data *data;
-	    char *path;
-	    if (asprintf(&path, "sql_stmt_security_tests/%s", namelist[i]->d_name) < 0) {
-	        return -1;
+    else if (strcasecmp (security_level, "relaxed") == 0)
+      {
+	  result =
+	      run_subdir_test ("sql_stmt_security_tests", conn, load_extension);
+	  if (result != 0)
+	    {
+		return result;
 	    }
-	    data = read_one_case(path);
-	    free(path);
-	
-	    result = do_one_case(data);
-	
-	    cleanup_test_data(data);
-	    if (result != 0) {
-	        return result;
-	    }
-	    free(namelist[i]);
-	}
-	free(namelist);
-    }
-
-#ifndef OMIT_MATHSQL	/* only if MATHSQL is supported */
-    n = scandir("sql_stmt_mathsql_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_mathsql_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-#endif	/* end MATHSQL conditional */
-
-#ifndef OMIT_PROJ	/* only if PROJ is supported */
-    n = scandir("sql_stmt_proj_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_proj_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-#endif	/* end PROJ conditional */
-
-#ifndef OMIT_GEOS	/* only if GEOS is supported */
-    if (strcmp(GEOSversion (), "3.3") < 0)
-    {
-    /* 
-      skipping GEOS tests if some obsolete version is found 
-    
-      rationale: obsolete versions may return substantially
-      different results, thus causing many testcases to fail
-    */
-        fprintf(stderr, "WARNING: skipping GEOS testcases; obsolete version found !!!\n");
-        goto skip_geos;
-    }
-
-    n = scandir("sql_stmt_geos_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_geos_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-skip_geos:
-#endif	/* end GEOS conditional */
-
-#ifdef GEOS_ADVANCED	/* only if GEOS_ADVANCED is supported */
-    if (strcmp(GEOSversion (), "3.3") < 0)
-    {
-    /* 
-       skipping GEOS tests if some obsolete version is found 
-
-       rationale: obsolete versions may return substantially
-       different results, thus causing many testcases to fail
-    */
-        fprintf(stderr, "WARNING: skipping GEOS_ADVANCED testcases; obsolete version found !!!\n");
-        goto skip_geos_advanced;
-    }
-    n = scandir("sql_stmt_geosadvanced_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_geosadvanced_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-skip_geos_advanced:
-#endif	/* end GEOS_ADVANCED conditional */
-
-#ifdef GEOS_TRUNK	/* only if GEOS_TRUNK is supported */
-    if (strcmp(GEOSversion (), "3.3") < 0)
-    {
-    /* 
-       skipping GEOS tests if some obsolete version is found 
-
-       rationale: obsolete versions may return substantially
-       different results, thus causing many testcases to fail
-    */
-        fprintf(stderr, "WARNING: skipping GEOS_TRUNK testcases; obsolete version found !!!\n");
-        goto skip_geos_trunk;
-    }
-    n = scandir("sql_stmt_geostrunk_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_geostrunk_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-skip_geos_trunk:
-#endif	/* end GEOS_TRUNK conditional */
-
-#ifdef ENABLE_LWGEOM	/* only if LWGEOM is supported */
-    n = scandir("sql_stmt_lwgeom_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_lwgeom_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
-#endif	/* end LWGEOM conditional */
-
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-    n = scandir("sql_stmt_libxml2_tests", &namelist, test_case_filter, alphasort);
-    if (n < 0) {
-	perror("scandir");
-	return -1;
-    }
-
-    for (i = 0; i < n; ++i) {
-	struct test_data *data;
-	char *path;
-	if (asprintf(&path, "sql_stmt_libxml2_tests/%s", namelist[i]->d_name) < 0) {
-	    return -1;
-	}
-	data = read_one_case(path);
-	free(path);
-	
-	result = do_one_case(data);
-	
-	cleanup_test_data(data);
-	if (result != 0) {
-	    return result;
-	}
-	free(namelist[i]);
-    }
-    free(namelist);
+      }
+
+#ifndef OMIT_MATHSQL		/* only if MATHSQL is supported */
+    result = run_subdir_test ("sql_stmt_mathsql_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+#endif /* end MATHSQL conditional */
+
+#ifndef OMIT_PROJ		/* only if PROJ is supported */
+    result = run_subdir_test ("sql_stmt_proj_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+#endif /* end PROJ conditional */
+
+#ifndef OMIT_GEOS		/* only if GEOS is supported */
+    if (strcmp (GEOSversion (), "3.3") < 0)
+      {
+	  /* 
+	     skipping GEOS tests if some obsolete version is found 
+
+	     rationale: obsolete versions may return substantially
+	     different results, thus causing many testcases to fail
+	   */
+	  fprintf (stderr,
+		   "WARNING: skipping GEOS testcases; obsolete version found !!!\n");
+	  goto skip_geos;
+      }
+    ret = system ("cp test_geos.sqlite test_geos_x.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot copy test_geos database\n");
+	  return -1;
+      }
+
+    result = run_subdir_test ("sql_stmt_geos_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+
+    ret = unlink ("test_geos_x.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot remove test_geos_x database\n");
+	  return -20;
+      }
+  skip_geos:
+#endif /* end GEOS conditional */
+
+#ifdef GEOS_ADVANCED		/* only if GEOS_ADVANCED is supported */
+    if (strcmp (GEOSversion (), "3.4") < 0)
+      {
+	  /* 
+	     skipping GEOS tests if some obsolete version is found 
+
+	     rationale: obsolete versions may return substantially
+	     different results, thus causing many testcases to fail
+	   */
+	  fprintf (stderr,
+		   "WARNING: skipping GEOS_ADVANCED testcases; obsolete version found !!!\n");
+	  goto skip_geos_advanced;
+      }
+
+    result =
+	run_subdir_test ("sql_stmt_geosadvanced_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+
+  skip_geos_advanced:
+#endif /* end GEOS_ADVANCED conditional */
+
+#ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
+    result = run_subdir_test ("sql_stmt_lwgeom_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+
+#endif /* end LWGEOM conditional */
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+    result = run_subdir_test ("sql_stmt_libxml2_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
 
     security_level = getenv ("SPATIALITE_SECURITY");
     if (security_level == NULL)
 	;
-    else if (strcasecmp (security_level, "relaxed") == 0) {
-	n = scandir("sql_stmt_xmlsec_tests", &namelist, test_case_filter, alphasort);
-	if (n < 0) {
-	    perror("scandir");
-	    return -1;
-	}
-
-	for (i = 0; i < n; ++i) {
-	    struct test_data *data;
-	    char *path;
-	    if (asprintf(&path, "sql_stmt_xmlsec_tests/%s", namelist[i]->d_name) < 0) {
-	        return -1;
-	    }
-	    data = read_one_case(path);
-	    free(path);
-	
-	    result = do_one_case(data);
-	
-	    cleanup_test_data(data);
-	    if (result != 0) {
-	        return result;
+    else if (strcasecmp (security_level, "relaxed") == 0)
+      {
+	  result =
+	      run_subdir_test ("sql_stmt_libxml2_tests", conn, load_extension);
+	  if (result != 0)
+	    {
+		return result;
 	    }
-	    free(namelist[i]);
-	}
-	free(namelist);
-    }
+      }
 
-    xmlCleanupParser();
+#endif /* end LIBXML2 conditional */
 
-#endif	/* end LIBXML2 conditional */
+#ifdef ENABLE_GEOPACKAGE	/* only if GeoPackage support is enabled */
+    result =
+	run_subdir_test ("sql_stmt_geopackage_tests", conn, load_extension);
+    if (result != 0)
+      {
+	  return result;
+      }
+
+#endif /* end GEOPACKAGE conditional */
 
     return result;
 }
 
-int run_specified_testcases(int argc, char *argv[])
+int
+run_specified_testcases (int argc, char *argv[], struct db_conn *conn,
+			 int load_extension)
 {
     int result = 0;
     int i = 0;
-    
+
     for (i = 1; i < argc; ++i)
-    {
-	struct test_data *data;
-	data = read_one_case(argv[i]);
-	result = do_one_case(data);
-	cleanup_test_data(data);
-	if (result != 0) {
-	    break;
-	}
-    }
+      {
+	  struct test_data *data;
+	  data = read_one_case (argv[i]);
+	  result = do_one_case (conn, data, load_extension);
+	  cleanup_test_data (data);
+	  if (result != 0)
+	    {
+		break;
+	    }
+      }
     return result;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int result = 0;
+    void *cache = spatialite_alloc_connection ();
+    struct db_conn conn;
+    conn.db_path = NULL;
+    conn.db_handle = NULL;
+    conn.cache = cache;
 
+/* testing in current mode */
     if (argc == 1)
-    {
-	result = run_all_testcases();
-    }
+      {
+	  result = run_all_testcases (&conn, 0);
+      }
     else
-    {
-	result = run_specified_testcases(argc, argv);
-    }
+      {
+	  result = run_specified_testcases (argc, argv, &conn, 0);
+      }
     if (result != 0)
-    {
-    /* it looks like if MinGW applies some wrong assumption   */ 
-    /* some negative values are incorrectly reported to be OK */
-    /* forcing -1 seems to resolve this issue                 */
-        result = -1;
-    }
+      {
+	  /* it looks like if MinGW applies some wrong assumption   */
+	  /* some negative values are incorrectly reported to be OK */
+	  /* forcing -1 seems to resolve this issue                 */
+	  result = -1;
+      }
+
+    close_connection (&conn);
+    spatialite_cleanup_ex (conn.cache);
+    conn.cache = NULL;
+
+    if (result == 0)
+      {
+	  /* testing again in legacy mode */
+	  fprintf (stderr,
+		   "\n****************** testing again in legacy mode\n\n");
+	  if (argc == 1)
+	    {
+		result = run_all_testcases (&conn, 0);
+	    }
+	  else
+	    {
+		result = run_specified_testcases (argc, argv, &conn, 0);
+	    }
+	  close_connection (&conn);
+      }
+
+    if (result == 0)
+      {
+	  /* testing again in load_extension mode */
+	  fprintf (stderr,
+		   "\n****************** testing again in load_extension mode\n\n");
+	  if (argc == 1)
+	    {
+		result = run_all_testcases (&conn, 1);
+	    }
+	  else
+	    {
+		result = run_specified_testcases (argc, argv, &conn, 1);
+	    }
+	  close_connection (&conn);
+      }
 
+    spatialite_shutdown ();
     return result;
 }
diff --git a/test/check_styling.c b/test/check_styling.c
index 207aebf..84df8eb 100644
--- a/test/check_styling.c
+++ b/test/check_styling.c
@@ -51,81 +51,82 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-#include <libxml/parser.h>
-#endif
-
 static unsigned char *
-load_blob(const char *path, int *blob_len)
+load_blob (const char *path, int *blob_len)
 {
 /* loading an external image */
     unsigned char *blob;
     int sz = 0;
     int rd;
-    FILE *fl = fopen(path, "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"%s\"\n", path);
-	return NULL;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    blob = (unsigned char *) malloc(sz);
+    FILE *fl = fopen (path, "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"%s\"\n", path);
+	  return NULL;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    blob = (unsigned char *) malloc (sz);
     *blob_len = sz;
-    rewind(fl);
-    rd = fread(blob, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"%s\"\n", path);
-	return NULL;
-    }
-    fclose(fl);
+    rewind (fl);
+    rd = fread (blob, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"%s\"\n", path);
+	  return NULL;
+      }
+    fclose (fl);
     return blob;
 }
 
 static unsigned char *
-load_xml(const char *path, int *len)
+load_xml (const char *path, int *len)
 {
 /* loading an external XML */
     unsigned char *xml;
     int sz = 0;
     int rd;
-    FILE *fl = fopen(path, "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"%s\"\n", path);
-	return NULL;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz + 1);
+    FILE *fl = fopen (path, "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"%s\"\n", path);
+	  return NULL;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz + 1);
     *len = sz;
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"%s\"\n", path);
-	return NULL;
-    }
-    fclose(fl);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"%s\"\n", path);
+	  return NULL;
+      }
+    fclose (fl);
     xml[rd] = '\0';
     return xml;
 }
 
 static char *
-build_hex_blob(const unsigned char *blob, int blob_len)
+build_hex_blob (const unsigned char *blob, int blob_len)
 {
 /* building an HEX blob */
     int i;
     const unsigned char *p_in = blob;
-    char *hex = malloc((blob_len * 2) + 1);
+    char *hex = malloc ((blob_len * 2) + 1);
     char *p_out = hex;
     for (i = 0; i < blob_len; i++)
-    {
-         sprintf(p_out, "%02x", *p_in);
-         p_in++;
-         p_out += 2;
-    }
+      {
+	  sprintf (p_out, "%02x", *p_in);
+	  p_in++;
+	  p_out += 2;
+      }
     return hex;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -139,435 +140,604 @@ int main (int argc, char *argv[])
     unsigned char *xml;
     int len;
     char *sql;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-
-    ret = sqlite3_get_table (handle, "SELECT CreateStylingTables(1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error CreateStylingTables: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -3;
-    }
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n",
+		   ret, err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+
+    ret =
+	sqlite3_get_table (handle, "SELECT CreateStylingTables(1)", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error CreateStylingTables: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -4;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #0 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -5;
-    }
-    sqlite3_free_table(results);
-
-    blob = load_blob("empty.png", &blob_len);
-    if (blob == NULL) 
-        return -6;
-    hexBlob = build_hex_blob(blob, blob_len);
-    free(blob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -4;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #0 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -5;
+      }
+    sqlite3_free_table (results);
+
+    blob = load_blob ("empty.png", &blob_len);
+    if (blob == NULL)
+	return -6;
+    hexBlob = build_hex_blob (blob, blob_len);
+    free (blob);
     if (hexBlob == NULL)
-        return -7;
-    sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-A', x%Q)", hexBlob);
+	return -7;
+    sql =
+	sqlite3_mprintf ("SELECT RegisterExternalGraphic('url-A', x%Q)",
+			 hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -8;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -9;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #1 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -10;
-    }
-    sqlite3_free_table(results);
-
-    sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')", hexBlob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -9;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #1 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -10;
+      }
+    sqlite3_free_table (results);
+
+    sql =
+	sqlite3_mprintf
+	("SELECT RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')",
+	 hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    free(hexBlob);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -11;
-    }
+    free (hexBlob);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -12;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #2 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -13;
-    }
-    sqlite3_free_table(results);
-
-    xml = load_xml("thunderstorm_mild.svg", &len);
-    if (xml == NULL) 
-        return -14;
-    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); 
-    free(xml);
-    if (blob == NULL) {
-        fprintf (stderr, "this is not a well-formed XML !!!\n");
-        return -15;
-    }
-    hexBlob = build_hex_blob(blob, blob_len);
-    free(blob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -12;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #2 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -13;
+      }
+    sqlite3_free_table (results);
+
+    xml = load_xml ("thunderstorm_mild.svg", &len);
+    if (xml == NULL)
+	return -14;
+    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
+    free (xml);
+    if (blob == NULL)
+      {
+	  fprintf (stderr, "this is not a well-formed XML !!!\n");
+	  return -15;
+      }
+    hexBlob = build_hex_blob (blob, blob_len);
+    free (blob);
     if (hexBlob == NULL)
-        return -16;
-    sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')", hexBlob);
+	return -16;
+    sql =
+	sqlite3_mprintf
+	("SELECT RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')",
+	 hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -17;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -18;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #3 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -19;
-    }
-    sqlite3_free_table(results);
-
-    sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-B', x%Q)", hexBlob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -18;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #3 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -19;
+      }
+    sqlite3_free_table (results);
+
+    sql =
+	sqlite3_mprintf ("SELECT RegisterExternalGraphic('url-B', x%Q)",
+			 hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    free(hexBlob);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -20;
-    }
+    free (hexBlob);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -21;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #4 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -22;
-    }
-    sqlite3_free_table(results);
-
-    ret = sqlite3_exec (handle, "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error Create Table table1: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -23;
-    }
-    ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error AddGeometryColumn: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -24;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -21;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #4 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -22;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error Create Table table1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error AddGeometryColumn: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -25;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #5 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -26;
-    }
-    sqlite3_free_table(results);
-
-    xml = load_xml("stazioni_se.xml", &len);
-    if (xml == NULL) 
-        return -27;
-    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); 
-    free(xml);
-    if (blob == NULL) {
-        fprintf (stderr, "this is not a well-formed XML !!!\n");
-        return -28;
-    }
-    hexBlob = build_hex_blob(blob, blob_len);
-    free(blob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -25;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #5 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -26;
+      }
+    sqlite3_free_table (results);
+
+    xml = load_xml ("stazioni_se.xml", &len);
+    if (xml == NULL)
+	return -27;
+    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
+    free (xml);
+    if (blob == NULL)
+      {
+	  fprintf (stderr, "this is not a well-formed XML !!!\n");
+	  return -28;
+      }
+    hexBlob = build_hex_blob (blob, blob_len);
+    free (blob);
     if (hexBlob == NULL)
-        return -29;
-    sql = sqlite3_mprintf("SELECT RegisterVectorStyledLayer('table1', 'geom', x%Q)", hexBlob);
+	return -29;
+    sql =
+	sqlite3_mprintf
+	("SELECT RegisterVectorStyledLayer('table1', 'geom', x%Q)", hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterVectorStyledLayer #6: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -30;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterVectorStyledLayer #6: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -31;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #6 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -32;
-    }
-    sqlite3_free_table(results);
-    
-    sql = sqlite3_mprintf("SELECT RegisterVectorStyledLayer('table1', 'geom', 0, x%Q)", hexBlob);
-    free(hexBlob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -31;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #6 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -32;
+      }
+    sqlite3_free_table (results);
+
+    sql =
+	sqlite3_mprintf
+	("SELECT RegisterVectorStyledLayer('table1', 'geom', 0, x%Q)", hexBlob);
+    free (hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterVectorStyledLayer #7: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -33;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterVectorStyledLayer #7: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -34;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #7 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -35;
-    }
-    sqlite3_free_table(results);
-
-    xml = load_xml("raster_se.xml", &len);
-    if (xml == NULL) 
-        return -36;
-    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); 
-    free(xml);
-    if (blob == NULL) {
-        fprintf (stderr, "this is not a well-formed XML !!!\n");
-        return -37;
-    }
-    hexBlob = build_hex_blob(blob, blob_len);
-    free(blob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -34;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #7 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -35;
+      }
+    sqlite3_free_table (results);
+
+    xml = load_xml ("raster_se.xml", &len);
+    if (xml == NULL)
+	return -36;
+    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
+    free (xml);
+    if (blob == NULL)
+      {
+	  fprintf (stderr, "this is not a well-formed XML !!!\n");
+	  return -37;
+      }
+    hexBlob = build_hex_blob (blob, blob_len);
+    free (blob);
     if (hexBlob == NULL)
-        return -38;
-    sql = sqlite3_mprintf("SELECT RegisterRasterStyledLayer('srtm', x%Q)", hexBlob);
+	return -38;
+    sql =
+	sqlite3_mprintf ("SELECT RegisterRasterStyledLayer('srtm', x%Q)",
+			 hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterRasterStyledLayer #8: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -39;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterRasterStyledLayer #8: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -39;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -40;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #8 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -41;
-    }
-    sqlite3_free_table(results);
-    
-    sql = sqlite3_mprintf("SELECT RegisterRasterStyledLayer('srtm', 0, x%Q)", hexBlob);
-    free(hexBlob);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -40;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #8 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -41;
+      }
+    sqlite3_free_table (results);
+
+    sql =
+	sqlite3_mprintf ("SELECT RegisterRasterStyledLayer('srtm', 0, x%Q)",
+			 hexBlob);
+    free (hexBlob);
     ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterRasterStyledLayer #9: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -42;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterRasterStyledLayer #9: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -42;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -43;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #9 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -44;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'srtm', 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterStyledGroup #10: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -45;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -43;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #9 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -44;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RegisterStyledGroup('group', 'srtm')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterStyledGroup #10: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -46;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #10 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -47;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'table1', 'geom', 0)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterStyledGroup #11: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -48;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -46;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #10 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -47;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RegisterStyledGroup('group', 'table1', 'geom')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterStyledGroup #11: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -49;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #12 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -50;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'srtm', 0, 4)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterStyledGroup #13: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -51;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -49;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #12 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -50;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RegisterStyledGroup('group', 'srtm', 4)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterStyledGroup #13: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -51;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -52;
+      }
+    if (strcmp (results[1 * columns + 0], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected #13 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -53;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT RegisterStyledGroup('group', 'table1', 'geom', 1)",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterStyledGroup #14: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -52;
-    }
-    if (strcmp(results[1 * columns + 0], "0") != 0)
-    {
-	fprintf (stderr, "Unexpected #13 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -53;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'table1', 'geom', 0, 1)", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterStyledGroup #14: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -54;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -55;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #14 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -56;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT SetStyledGroupInfos('group', 'title', 'abstract')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error SetStyledGroupInfos #15: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -57;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -55;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #14 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -56;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (handle, "SELECT SetStyledGroupInfos('group', 'title', 'abstract')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterStyledGroup #15: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return -57;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -58;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #15 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -59;
+      }
+    sqlite3_free_table (results);
+
+    ret =
+	sqlite3_get_table (handle,
+			   "SELECT SetStyledGroupInfos('group-bis', 'title', 'abstract')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error SetStyledGroupInfos #16: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return 60;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -61;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #16 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -62;
+      }
+    sqlite3_free_table (results);
+
+    xml = load_xml ("sld_sample.xml", &len);
+    if (xml == NULL)
+	return -63;
+    gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
+    free (xml);
+    if (blob == NULL)
+      {
+	  fprintf (stderr, "this is not a well-formed XML !!!\n");
+	  return -64;
+      }
+    hexBlob = build_hex_blob (blob, blob_len);
+    free (blob);
+    if (hexBlob == NULL)
+	return -65;
+    sql = sqlite3_mprintf ("SELECT RegisterGroupStyle('group', x%Q)", hexBlob);
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterGroupStyle #1: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -66;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -58;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #15 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -59;
-    }
-    sqlite3_free_table(results);
-    
-    ret = sqlite3_get_table (handle, "SELECT SetStyledGroupInfos('group-bis', 'title', 'abstract')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-      fprintf (stderr, "Error RegisterStyledGroup #16: %s\n", err_msg);
-      sqlite3_free (err_msg);
-      return 60;
-    }
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -67;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #1 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -68;
+      }
+    sqlite3_free_table (results);
+
+    sql =
+	sqlite3_mprintf ("SELECT RegisterGroupStyle('group', 0, x%Q)", hexBlob);
+    free (hexBlob);
+    ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error RegisterGroupStyle #2: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -69;
+      }
     if ((rows != 1) || (columns != 1))
-    {
-	sqlite3_free_table(results);
-	fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
-	return -61;
-    }
-    if (strcmp(results[1 * columns + 0], "1") != 0)
-    {
-	fprintf (stderr, "Unexpected #16 result (got %s, expected 1)", results[1 * columns + 0]);
-	sqlite3_free_table(results);
-	return -62;
-    }
-    sqlite3_free_table(results);
+      {
+	  sqlite3_free_table (results);
+	  fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows,
+		   columns);
+	  return -70;
+      }
+    if (strcmp (results[1 * columns + 0], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected #2 result (got %s, expected 1)",
+		   results[1 * columns + 0]);
+	  sqlite3_free_table (results);
+	  return -71;
+      }
+    sqlite3_free_table (results);
 
 
 #endif
-    
+
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -57;
-    }
-        
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -57;
+      }
+
     spatialite_cleanup_ex (cache);
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-    xmlCleanupParser();
-#endif
-    
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_version.c b/test/check_version.c
index 885233e..567fdc7 100644
--- a/test/check_version.c
+++ b/test/check_version.c
@@ -50,16 +50,19 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    if (strcmp(spatialite_version(), VERSION) != 0) {
-	fprintf(stderr, "SpatiaLite version mismatch: %s and %s\n",
-		VERSION, spatialite_version());
-	return -1;
-    }
-    
+    if (strcmp (spatialite_version (), VERSION) != 0)
+      {
+	  fprintf (stderr, "SpatiaLite version mismatch: %s and %s\n",
+		   VERSION, spatialite_version ());
+	  return -1;
+      }
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtual_ovflw.c b/test/check_virtual_ovflw.c
index ade7b97..1222375 100644
--- a/test/check_virtual_ovflw.c
+++ b/test/check_virtual_ovflw.c
@@ -47,10 +47,12 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include <stdio.h>
 #include <string.h>
 
+#include "config.h"
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     sqlite3 *db_handle = NULL;
     int ret;
@@ -62,286 +64,389 @@ int main (int argc, char *argv[])
     char *suffix;
     char *table;
     char *sql;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(db_handle);
-	return -2;
-    }
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -2;
+      }
 
 /* setting up very long table and column names */
-    suffix = malloc(suffix_len);
-    memset(suffix, 'z', suffix_len);  
-    suffix[suffix_len-1] = '\0';
+    suffix = malloc (suffix_len);
+    memset (suffix, 'z', suffix_len);
+    suffix[suffix_len - 1] = '\0';
 
 #ifndef OMIT_FREEXL		/* only if FreeXL is supported */
-    table = sqlite3_mprintf("xltest_%s", suffix);
-    
-    sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualXL(\"testcase1.xls\");", table);
+    table = sqlite3_mprintf ("xltest_%s", suffix);
+
+    sql =
+	sqlite3_mprintf
+	("create VIRTUAL TABLE %s USING VirtualXL(\"testcase1.xls\");", table);
     ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    sql = sqlite3_mprintf("select col_2, col_4, col_5, col_7, rowid "
-                          "from %s WHERE col_2 = \"Canal Creek\";", table);
-    ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -4;
-    }
-    if ((rows != 2) || (columns != 5)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -5;
-    }
-    if (strcmp(results[0], "col_2") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -6;
-    }
-    if (strcmp(results[5], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]);
-	return  -7;
-    }
-    if (strncmp(results[6], "-27.86667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]);
-	return  -8;
-    }
-    if (strncmp(results[7], "151.51667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]);
-	return  -9;
-    }
-    if (strcmp(results[10], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]);
-	return  -10;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    sql = sqlite3_mprintf ("select col_2, col_4, col_5, col_7, rowid "
+			   "from %s WHERE col_2 = \"Canal Creek\";", table);
+    ret =
+	sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+    if ((rows != 2) || (columns != 5))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -5;
+      }
+    if (strcmp (results[0], "col_2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -6;
+      }
+    if (strcmp (results[5], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: name5() bad result: %s.\n",
+		   results[5]);
+	  return -7;
+      }
+    if (strncmp (results[6], "-27.86667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n",
+		   results[6]);
+	  return -8;
+      }
+    if (strncmp (results[7], "151.51667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n",
+		   results[7]);
+	  return -9;
+      }
+    if (strcmp (results[10], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: name10() bad result: %s.\n",
+		   results[10]);
+	  return -10;
+      }
     sqlite3_free_table (results);
 
-    sqlite3_free(table);
-#endif	/* end FreeXL conditional */
+    sqlite3_free (table);
+#endif /* end FreeXL conditional */
 
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
-    table = sqlite3_mprintf("shapetest_%s", suffix);
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
+    table = sqlite3_mprintf ("shapetest_%s", suffix);
 
-    sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualShape(\"shapetest1\", UTF-8, 4326);", table);
+    sql =
+	sqlite3_mprintf
+	("create VIRTUAL TABLE %s USING VirtualShape(\"shapetest1\", UTF-8, 4326);",
+	 table);
     ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -11;
-    }
-    sql = sqlite3_mprintf("SELECT RegisterVirtualGeometry(%Q)", table);
-    ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -12;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -13;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[1]);
-	return  -14;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
+    sql = sqlite3_mprintf ("SELECT RegisterVirtualGeometry(%Q)", table);
+    ret =
+	sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -13;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[1]);
+	  return -14;
+      }
     sqlite3_free_table (results);
 
-    sql = sqlite3_mprintf( "select testcase1, testcase2, AsText(Geometry) from %s where testcase2 < 20;", table);
-    ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -15;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -16;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -17;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -18;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -19;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -20;
-    }
+    sql =
+	sqlite3_mprintf
+	("select testcase1, testcase2, AsText(Geometry) from %s where testcase2 < 20;",
+	 table);
+    ret =
+	sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -15;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -16;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -17;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -18;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -19;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -20;
+      }
     sqlite3_free_table (results);
 
-    sql = sqlite3_mprintf("SELECT DropVirtualGeometry(%Q)", table);
-    ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -21;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -22;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -23;
-    }
+    sql = sqlite3_mprintf ("SELECT DropVirtualGeometry(%Q)", table);
+    ret =
+	sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -22;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -23;
+      }
     sqlite3_free_table (results);
 
-    sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualDBF(shapetest1.dbf, UTF-8);", table);
+    sql =
+	sqlite3_mprintf
+	("create VIRTUAL TABLE %s USING VirtualDBF(shapetest1.dbf, UTF-8);",
+	 table);
     ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -24;
-    }
-
-    sql = sqlite3_mprintf("select testcase1, testcase2 from %s where testcase2 < 20;", table);
-    ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -25;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -26;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -27;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -28;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -29;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
+
+    sql =
+	sqlite3_mprintf
+	("select testcase1, testcase2 from %s where testcase2 < 20;", table);
+    ret =
+	sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -26;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -27;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -28;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -29;
+      }
     sqlite3_free_table (results);
 
-    sql = sqlite3_mprintf("DROP TABLE %s;", table);
+    sql = sqlite3_mprintf ("DROP TABLE %s;", table);
     ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -30;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
 
-    sqlite3_free(table);
-#endif	/* end ICONV conditional */
+    sqlite3_free (table);
+#endif /* end ICONV conditional */
 
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
 
-    ret = system("cp sql_stmt_tests/testdb1.sqlite testdb1.sqlite");
+    ret = system ("cp sql_stmt_tests/testdb1.sqlite testdb1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy testdb1.sqlite database\n");
-        return -131;
-    }
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 ("testdb1.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open testdb1.sqlite db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -31;
-    }
+      {
+	  fprintf (stderr, "cannot copy testdb1.sqlite database\n");
+	  return -131;
+      }
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 ("testdb1.sqlite", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open testdb1.sqlite db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -31;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    table = sqlite3_mprintf("roads_net_%s", suffix);
-    
-    sql = sqlite3_mprintf("create VIRTUAL TABLE %s USING VirtualNetwork(\"roads_net_data\");", table);
+
+    table = sqlite3_mprintf ("roads_net_%s", suffix);
+
+    sql =
+	sqlite3_mprintf
+	("create VIRTUAL TABLE %s USING VirtualNetwork(\"roads_net_data\");",
+	 table);
     ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualNetwork error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -32;
-    }
-
-    sql = sqlite3_mprintf("SELECT NodeFrom, NodeTo FROM %s WHERE NodeTo = 29 AND NodeFrom = 32;", table);
-    ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -33;
-    }
-    if ((rows != 4) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -34;
-    }
-    if (strcmp(results[0], "NodeFrom") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -35;
-    }
-    if (strcmp(results[2], "32") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -36;
-    }
-    if (strcmp(results[3], "29") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -37;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualNetwork error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -32;
+      }
+
+    sql =
+	sqlite3_mprintf
+	("SELECT NodeFrom, NodeTo FROM %s WHERE NodeTo = 29 AND NodeFrom = 32;",
+	 table);
+    ret =
+	sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg);
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
+    if ((rows != 4) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -34;
+      }
+    if (strcmp (results[0], "NodeFrom") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -35;
+      }
+    if (strcmp (results[2], "32") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -36;
+      }
+    if (strcmp (results[3], "29") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -37;
+      }
     sqlite3_free_table (results);
 
-    sql = sqlite3_mprintf("DROP TABLE %s;", table);
+    sql = sqlite3_mprintf ("DROP TABLE %s;", table);
     ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg);
-    sqlite3_free(sql);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -38;
-    }
+    sqlite3_free (sql);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -38;
+      }
 
-    sqlite3_free(table);
+    sqlite3_free (table);
 
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-    ret = unlink("testdb1.sqlite");
+    ret = unlink ("testdb1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove testdb1 database\n");
-        return -39;
-    }
+      {
+	  fprintf (stderr, "cannot remove testdb1 database\n");
+	  return -39;
+      }
+
+    free (suffix);
 
-    free(suffix);    
-    
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualbbox.c b/test/check_virtualbbox.c
new file mode 100644
index 0000000..cf9d81b
--- /dev/null
+++ b/test/check_virtualbbox.c
@@ -0,0 +1,604 @@
+/*
+
+ check_virtualbbox.c -- SpatiaLite Test Case
+
+ Author: Sandro Furieri <a.furieri at lqt.it>
+
+ ------------------------------------------------------------------------------
+ 
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ 
+ The contents of this file are subject to the Mozilla Public License Version
+ 1.1 (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ 
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the SpatiaLite library
+
+The Initial Developer of the Original Code is Alessandro Furieri
+ 
+Portions created by the Initial Developer are Copyright (C) 2013
+the Initial Developer. All Rights Reserved.
+
+Contributor(s):
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+ 
+*/
+#define _GNU_SOURCE
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "config.h"
+
+#include "sqlite3.h"
+#include "spatialite.h"
+
+int
+main (int argc, char *argv[])
+{
+    sqlite3 *db_handle = NULL;
+    int ret;
+    char *err_msg = NULL;
+    char **results;
+    int rows;
+    int columns;
+    void *cache = spatialite_alloc_connection ();
+
+    if (argc > 1 || argv[0] == NULL)
+	argc = 1;		/* silencing stupid compiler warnings */
+
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+
+    spatialite_init_ex (db_handle, cache, 0);
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -2;
+      }
+
+/* creating the BoundingBox table */
+    ret = sqlite3_exec (db_handle, "CREATE TABLE BBox_Test (pk_uid INTEGER, "
+			"min_x DOUBLE, min_y DOUBLE, max_x DOUBLE, max_y DOUBLE, srid INTEGER, "
+			"name TEXT, count INTEGER, measure DOUBLE, odd BLOB)",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -3;
+      }
+
+/* inserting few rows into the BoundingBox table */
+    ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test "
+			"(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) "
+			"VALUES (1, 1, 2, 3, 4, 4326, 'alpha', 10, 10.1, zeroblob(4))",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -4;
+      }
+    ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test "
+			"(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) "
+			"VALUES (2, 2, 3, 4, 5, 4326, 'beta', 20, 20.2, zeroblob(4))",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -5;
+      }
+    ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test "
+			"(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) "
+			"VALUES (3, 3, 4, 5, 6, 3003, 'gamma', 30, 30.3, NULL)",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #3 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -6;
+      }
+    ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test "
+			"(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) "
+			"VALUES (4, 1, 2, NULL, 4, 4326, 'delta', 40, NULL, NULL)",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #4 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -7;
+      }
+    ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test "
+			"(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) "
+			"VALUES (5, 1, 2, 3, 4, NULL, 'epsilon', NULL, NULL, NULL)",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT #5 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -8;
+      }
+
+/* creating the VirtualBBox table #1 */
+    ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test1 USING "
+			"VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', "
+			"srid, 0, pk_uid, name, count, measure, odd)", NULL,
+			NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE VIRTUAL TABLE #1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -9;
+      }
+
+/* testing the VirtualBBox table #1 */
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT ROWID, pk_uid, name, count, measure, Length(odd), GeometryType(Geometry), Srid(Geometry) FROM test1",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 5) || (columns != 8))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -11;
+      }
+    if (strcasecmp (results[0], "ROWID") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -12;
+      }
+    if (strcasecmp (results[1], "pk_uid") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[1]);
+	  return -13;
+      }
+    if (strcasecmp (results[2], "name") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[2]);
+	  return -14;
+      }
+    if (strcasecmp (results[3], "count") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[3]);
+	  return -15;
+      }
+    if (strcasecmp (results[4], "measure") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[4]);
+	  return -16;
+      }
+    if (strcasecmp (results[5], "Length(odd)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[5]);
+	  return -17;
+      }
+    if (strcasecmp (results[6], "GeometryType(Geometry)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[6]);
+	  return -18;
+      }
+    if (strcasecmp (results[7], "Srid(Geometry)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[7]);
+	  return -19;
+      }
+    if (strcmp (results[8], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[8]);
+	  return -20;
+      }
+    if (strcmp (results[9], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[9]);
+	  return -21;
+      }
+    if (strcmp (results[10], "alpha") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[10]);
+	  return -22;
+      }
+    if (strcmp (results[11], "10") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[11]);
+	  return -23;
+      }
+    if (strcmp (results[12], "10.1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[12]);
+	  return -24;
+      }
+    if (strcmp (results[13], "4") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[13]);
+	  return -25;
+      }
+    if (strcmp (results[14], "POLYGON") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[14]);
+	  return -26;
+      }
+    if (strcmp (results[15], "4326") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n",
+		   results[15]);
+	  return -27;
+      }
+    if (strcmp (results[16], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[16]);
+	  return -28;
+      }
+    if (strcmp (results[17], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[17]);
+	  return -29;
+      }
+    if (strcmp (results[18], "beta") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[18]);
+	  return -30;
+      }
+    if (strcmp (results[19], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[19]);
+	  return -31;
+      }
+    if (strcmp (results[20], "20.2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[20]);
+	  return -32;
+      }
+    if (strcmp (results[21], "4") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[21]);
+	  return -33;
+      }
+    if (strcmp (results[22], "POLYGON") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[22]);
+	  return -34;
+      }
+    if (strcmp (results[23], "4326") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n",
+		   results[23]);
+	  return -35;
+      }
+    if (strcmp (results[24], "3") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[24]);
+	  return -36;
+      }
+    if (strcmp (results[25], "3") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[25]);
+	  return -37;
+      }
+    if (strcmp (results[26], "gamma") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[26]);
+	  return -38;
+      }
+    if (strcmp (results[27], "30") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[27]);
+	  return -39;
+      }
+    if (strcmp (results[28], "30.3") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[28]);
+	  return -40;
+      }
+    if (results[29] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[29]);
+	  return -41;
+      }
+    if (strcmp (results[30], "POLYGON") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[30]);
+	  return -42;
+      }
+    if (strcmp (results[31], "3003") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n",
+		   results[31]);
+	  return -43;
+      }
+    if (strcmp (results[32], "4") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[33]);
+	  return -44;
+      }
+    if (strcmp (results[33], "4") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[33]);
+	  return -45;
+      }
+    if (strcmp (results[34], "delta") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[34]);
+	  return -46;
+      }
+    if (strcmp (results[35], "40") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[35]);
+	  return -47;
+      }
+    if (results[36] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[36]);
+	  return -48;
+      }
+    if (results[37] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[37]);
+	  return -49;
+      }
+    if (results[38] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[38]);
+	  return -50;
+      }
+    if (results[39] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n",
+		   results[39]);
+	  return -51;
+      }
+    if (strcmp (results[40], "5") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[40]);
+	  return -52;
+      }
+    if (strcmp (results[41], "5") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[41]);
+	  return -53;
+      }
+    if (strcmp (results[42], "epsilon") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[42]);
+	  return -54;
+      }
+    if (results[43] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[43]);
+	  return -55;
+      }
+    if (results[44] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[44]);
+	  return -56;
+      }
+    if (results[45] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[45]);
+	  return -57;
+      }
+    if (strcmp (results[46], "POLYGON") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[46]);
+	  return -58;
+      }
+    if (strcmp (results[47], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n",
+		   results[47]);
+	  return -59;
+      }
+    sqlite3_free_table (results);
+
+/* dropping the VirtualBBox table #1 */
+    ret = sqlite3_exec (db_handle, "DROP TABLE test1", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE #1 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -60;
+      }
+
+/* creating the VirtualBBox table #2 */
+    ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test2 USING "
+			"VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', 3003, 0)",
+			NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE VIRTUAL TABLE #2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -61;
+      }
+
+/* testing the VirtualBBox table #2 */
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT DISTINCT GeometryType(Geometry), Srid(Geometry) FROM test2",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -62;
+      }
+    if ((rows != 2) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -63;
+      }
+    if (strcasecmp (results[2], "POLYGON") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: distinct-row-1 bad result: %s.\n",
+		   results[2]);
+	  return -64;
+      }
+    if (strcasecmp (results[3], "3003") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: distinct-row-1 bad result: %s.\n",
+		   results[3]);
+	  return -65;
+      }
+    if (results[4] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: distinct-row-2 bad result: %s.\n",
+		   results[4]);
+	  return -66;
+      }
+    if (results[5] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: distinct-row-2 bad result: %s.\n",
+		   results[5]);
+	  return -67;
+      }
+    sqlite3_free_table (results);
+
+/* dropping the VirtualBBox table #2 */
+    ret = sqlite3_exec (db_handle, "DROP TABLE test2", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE #2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -68;
+      }
+
+/* creating the VirtualBBox table #3 - failure */
+    ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING "
+			"VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', 3003)",
+			NULL, NULL, &err_msg);
+    if (ret == SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE VIRTUAL TABLE #3 unexpected result: %s\n",
+		   err_msg);
+	  sqlite3_close (db_handle);
+	  return -69;
+      }
+    sqlite3_free (err_msg);
+
+/* creating the VirtualBBox table #4 - failure */
+    ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING "
+			"VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'wrong', 3003, 0)",
+			NULL, NULL, &err_msg);
+    if (ret == SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE VIRTUAL TABLE #4 unexpected result: %s\n",
+		   err_msg);
+	  sqlite3_close (db_handle);
+	  return -70;
+      }
+    sqlite3_free (err_msg);
+
+/* creating the VirtualBBox table #46 - failure */
+    ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING "
+			"VirtualBBox('wrong', 'min_x', min_y, \"max_x\", 'max_y', 3003, 0)",
+			NULL, NULL, &err_msg);
+    if (ret == SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE VIRTUAL TABLE #5 unexpected result: %s\n",
+		   err_msg);
+	  sqlite3_close (db_handle);
+	  return -71;
+      }
+    sqlite3_free (err_msg);
+
+
+    sqlite3_close (db_handle);
+    spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
+
+    return 0;
+}
diff --git a/test/check_virtualtable1.c b/test/check_virtualtable1.c
index 7578e21..b92e282 100644
--- a/test/check_virtualtable1.c
+++ b/test/check_virtualtable1.c
@@ -56,9 +56,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "asprintf4win.h"
 #endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     int ret;
@@ -66,286 +67,429 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualText error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
-    asprintf(&sql_statement, "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -10;
-    }
-    if ((rows != 2) || (columns != 4)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -11;
-    }
-    if (strcmp(results[0], "COL003") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -12;
-    }
-    if (strcmp(results[4], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: name4() bad result: %s.\n", results[4]);
-	return  -13;
-    }
-    if (strncmp(results[5], "-27.86667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[5]);
-	return  -14;
-    }
-    if (strncmp(results[6], "151.51667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[6]);
-	return  -15;
-    }
-    if (strcmp(results[8], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: name8() bad result: %s.\n", results[8]);
-	return  -16;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualText error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    asprintf (&sql_statement,
+	      "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 2) || (columns != 4))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -11;
+      }
+    if (strcmp (results[0], "COL003") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -12;
+      }
+    if (strcmp (results[4], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: name4() bad result: %s.\n",
+		   results[4]);
+	  return -13;
+      }
+    if (strncmp (results[5], "-27.86667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n",
+		   results[5]);
+	  return -14;
+      }
+    if (strncmp (results[6], "151.51667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n",
+		   results[6]);
+	  return -15;
+      }
+    if (strcmp (results[8], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: name8() bad result: %s.\n",
+		   results[8]);
+	  return -16;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "BEGIN error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -21;
-    }
-
-    ret = sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_READONLY) {
-	fprintf (stderr, "UPDATE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -21;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "BEGIN error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_READONLY)
+      {
+	  fprintf (stderr, "UPDATE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
     sqlite3_free (err_msg);
 
     ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -22;
-    }
-    ret = sqlite3_get_table (db_handle, "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -23;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -24;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -24;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -25;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -26;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -26;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -27;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -28;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -28;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 = 2172517", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -29;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -30;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col002 FROM places WHERE col001 = 2172517",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -30;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -31;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -32;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -32;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -33;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -34;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -34;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 = 'Canbrae'", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -29;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -30;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col002 = 'Canbrae'",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -30;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE ROWNO = 5", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -31;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -32;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE ROWNO = 5",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -32;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -33;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -34;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -33;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -34;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -35;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -36;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -36;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 = 149.1", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -37;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -38;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col006 = 149.1",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -37;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -38;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -39;
-    }
-    if ((rows != 4) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -40;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -39;
+      }
+    if ((rows != 4) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -40;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -41;
-    }
-    if ((rows != 4) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -42;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -41;
+      }
+    if ((rows != 4) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -42;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012  = 23940.0", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -43;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -44;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col012  = 23940.0",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -43;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -44;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012  >= 20000.0 AND col012 < 24000.0", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -45;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -46;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col012  >= 20000.0 AND col012 < 24000.0",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -46;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012  > 20000.0 AND col012 <= 24000.0", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -45;
-    }
-    if ((rows != 2) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
-	return  -46;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT col001 FROM places WHERE col012  > 20000.0 AND col012 <= 24000.0",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
+    if ((rows != 2) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result2: %i/%i.\n",
+		   rows, columns);
+	  return -46;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (db_handle, "DROP TABLE places;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -47;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
 
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
+#endif /* end ICONV conditional */
 
-    
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualtable2.c b/test/check_virtualtable2.c
index b9702de..6d6f312 100644
--- a/test/check_virtualtable2.c
+++ b/test/check_virtualtable2.c
@@ -57,9 +57,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "asprintf4win.h"
 #endif
 
-int do_test(sqlite3 *db_handle)
+int
+do_test (sqlite3 * db_handle)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     char *sql_statement;
     int ret;
     char *err_msg = NULL;
@@ -67,770 +68,1143 @@ int do_test(sqlite3 *db_handle)
     int rows;
     int columns;
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shapetest1\", UTF-8, 4326);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -4;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -5;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest USING VirtualShape(\"shapetest1\", UTF-8, 4326);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT RegisterVirtualGeometry('shapetest')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -4;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -5;
+      }
     sqlite3_free_table (results);
 
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 < 20;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -6;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -7;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -8;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -9;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -10;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -11;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 < 20;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -7;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -8;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -9;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -10;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -11;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 <= 19;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -12;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -13;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -14;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -15;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -16;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -17;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 <= 19;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -13;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -14;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -15;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -16;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -17;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 = 20;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -18;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -19;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -20;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]);
-	return  -21;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[4]);
-	return  -22;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -23;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 = 20;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -18;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -19;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -20;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[3]);
+	  return -21;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n",
+		   results[4]);
+	  return -22;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -23;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 > 2;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -24;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -25;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -26;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[3]);
-	return  -27;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[4]);
-	return  -28;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -29;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 > 2;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -24;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -25;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -26;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n",
+		   results[3]);
+	  return -27;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n",
+		   results[4]);
+	  return -28;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -29;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 >= 20;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -30;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -31;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -32;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[3]);
-	return  -33;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[4]);
-	return  -33;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -34;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 >= 20;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -31;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -32;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n",
+		   results[3]);
+	  return -33;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n",
+		   results[4]);
+	  return -33;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -34;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 < \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -35;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -36;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -37;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]);
-	return  -38;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -39;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -40;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 < \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -35;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -36;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -37;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[3]);
+	  return -38;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -39;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -40;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 <= \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -41;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -42;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -43;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]);
-	return  -44;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -45;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -46;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 <= \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -41;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -42;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -43;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[3]);
+	  return -44;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -45;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -46;
+      }
     sqlite3_free_table (results);
 
-    
+
     ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "BEGIN error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -47;
-    }
-
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 > \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -48;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -49;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -50;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -51;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -52;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -53;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "BEGIN error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 > \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -49;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -50;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -51;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -52;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -53;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (db_handle, "DELETE FROM shapetest WHERE testcase2 = 2;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_READONLY) {
-	fprintf (stderr, "UPDATE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -54;
-    }
+    ret =
+	sqlite3_exec (db_handle, "DELETE FROM shapetest WHERE testcase2 = 2;",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_READONLY)
+      {
+	  fprintf (stderr, "UPDATE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
     sqlite3_free (err_msg);
-    
+
     ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -55;
-    }
-
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 >= \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -56;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -57;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -58;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -59;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -60;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -61;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 >= \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -56;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -57;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -58;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -59;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -60;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -61;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 = \"windward\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -62;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -63;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -64;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -65;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -66;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -67;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 = \"windward\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -62;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -63;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -64;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -65;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -66;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -67;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID = 1;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -68;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -69;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -70;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -71;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -72;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -73;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID = 1;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -68;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -69;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -70;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -71;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -72;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -73;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID < 2;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -74;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -75;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -76;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -77;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -78;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -79;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID < 2;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -74;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -75;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -76;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -77;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -78;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -79;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID <= 1;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -80;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -81;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -82;
-    }
-    if (strcmp(results[3], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]);
-	return  -83;
-    }
-    if (strcmp(results[4], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -84;
-    }
-    if (strcmp(results[5], "POINT(3480766.311245 4495355.740524)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -85;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID <= 1;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -80;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -81;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -82;
+      }
+    if (strcmp (results[3], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[3]);
+	  return -83;
+      }
+    if (strcmp (results[4], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -84;
+      }
+    if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -85;
+      }
     sqlite3_free_table (results);
-    
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID > 1;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -86;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -87;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -88;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]);
-	return  -89;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -90;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -91;
-    }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID > 1;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -86;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -87;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -88;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[3]);
+	  return -89;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -90;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -91;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID >= 2;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -92;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -93;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -94;
-    }
-    if (strcmp(results[3], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]);
-	return  -95;
-    }
-    if (strcmp(results[4], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]);
-	return  -96;
-    }
-    if (strcmp(results[5], "POINT(3482470.825574 4495691.054818)") != 0) {
-	fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]);
-	return  -97;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID >= 2;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -92;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -93;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -94;
+      }
+    if (strcmp (results[3], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[3]);
+	  return -95;
+      }
+    if (strcmp (results[4], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[4]);
+	  return -96;
+      }
+    if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n",
+		   results[5]);
+	  return -97;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select PKUID, testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 LIKE \"wind%%\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -98;
-    }
-    if ((rows != 1) || (columns != 4)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -99;
-    }
-    if (strcmp(results[0], "PKUID") != 0) {
-	fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]);
-	return  -100;
-    }
-    if (strcmp(results[1], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]);
-	return  -101;
-    }
-    if (strcmp(results[4], "1") != 0) {
-	fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[4]);
-	return  -102;
-    }
-    if (strcmp(results[5], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[5]);
-	return  -103;
-    }
+    asprintf (&sql_statement,
+	      "select PKUID, testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 LIKE \"wind%%\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -98;
+      }
+    if ((rows != 1) || (columns != 4))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -99;
+      }
+    if (strcmp (results[0], "PKUID") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header uid bad result: %s.\n",
+		   results[0]);
+	  return -100;
+      }
+    if (strcmp (results[1], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header bad result: %s.\n",
+		   results[1]);
+	  return -101;
+      }
+    if (strcmp (results[4], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n",
+		   results[4]);
+	  return -102;
+      }
+    if (strcmp (results[5], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[5]);
+	  return -103;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -104;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -105;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -106;
-    }
+    ret =
+	sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -104;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -105;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -106;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest2 USING VirtualShape(\"shp/merano-3d/roads\", CP1252, 25832);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -107;
-    }
-    ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -108;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -109;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -110;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest2 USING VirtualShape(\"shp/merano-3d/roads\", CP1252, 25832);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -107;
+      }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT RegisterVirtualGeometry('shapetest2')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -108;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -109;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -110;
+      }
     sqlite3_free_table (results);
-    ret = sqlite3_get_table (db_handle, "SELECT UpdateLayerStatistics('shapetest2')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "UpdateLayerStatistics error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -111;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "UpdateLayerStatistics Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -112;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "UpdateLayerStatistics Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -113;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT UpdateLayerStatistics('shapetest2')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "UpdateLayerStatistics error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -111;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "UpdateLayerStatistics Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -112;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "UpdateLayerStatistics Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -113;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -114;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -115;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -116;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT DropVirtualGeometry('shapetest2')", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -114;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -115;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -116;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest3 USING VirtualShape(\"shp/merano-3d/points\", CP1252, 25832);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -117;
-    }
-    ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -118;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -119;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -120;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest3 USING VirtualShape(\"shp/merano-3d/points\", CP1252, 25832);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -117;
+      }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT RegisterVirtualGeometry('shapetest3')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -118;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -119;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -120;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -121;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -122;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -123;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT DropVirtualGeometry('shapetest3')", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -121;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -122;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -123;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest4 USING VirtualShape(\"shp/merano-3d/polygons\", CP1252, 25832);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -124;
-    }
-    ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -125;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -126;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -127;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest4 USING VirtualShape(\"shp/merano-3d/polygons\", CP1252, 25832);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -124;
+      }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT RegisterVirtualGeometry('shapetest4')",
+			   &results, &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -125;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -126;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -127;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -128;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -129;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -130;
-    }
+    ret =
+	sqlite3_get_table (db_handle,
+			   "SELECT DropVirtualGeometry('shapetest4')", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -128;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -129;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "DropVirtualGeometry Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -130;
+      }
     sqlite3_free_table (results);
 
 /* final DB cleanup */
-    ret = sqlite3_exec (db_handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(db_handle);
-	return -131;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE FROM spatialite_history error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -131;
+      }
     ret = sqlite3_exec (db_handle, "VACUUM", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(db_handle);
-	return -132;
-    }
-#endif	/* end ICONV conditional */
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VACUUM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -132;
+      }
+#endif /* end ICONV conditional */
 
     return 0;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     sqlite3 *db_handle = NULL;
     int ret;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
 /* testing current style metadata layout >= v.4.0.0 */
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(db_handle);
-	return -2;
-    }
-	
-    ret = do_test(db_handle);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy style metadata layout\n");
-	return ret;
-    }
-    
+
+    ret =
+	sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (db_handle);
+	  return -2;
+      }
+
+    ret = do_test (db_handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout\n");
+	  return ret;
+      }
+
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
 
 /* testing legacy style metadata layout <= v.3.1.0 */
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    ret = system ("cp test-legacy-3.0.1.sqlite copy-virt2-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    cache = spatialite_alloc_connection();
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &db_handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    cache = spatialite_alloc_connection ();
+    ret =
+	sqlite3_open_v2 ("copy-virt2-legacy-3.0.1.sqlite", &db_handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
 
-    ret = do_test(db_handle);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy style metadata layout\n");
-	return ret;
-    }
-    
+    ret = do_test (db_handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout\n");
+	  return ret;
+      }
+
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    ret = unlink ("copy-virt2-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -20;
-    }
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -20;
+      }
+
+#endif /* end ICONV conditional */
 
-#endif	/* end ICONV conditional */
-    
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualtable3.c b/test/check_virtualtable3.c
index 985901d..cd2c5d9 100644
--- a/test/check_virtualtable3.c
+++ b/test/check_virtualtable3.c
@@ -56,9 +56,10 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "asprintf4win.h"
 #endif
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     sqlite3 *db_handle = NULL;
     char *sql_statement;
     int ret;
@@ -66,526 +67,776 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 < 20;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -4;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -5;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -6;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -7;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE dbftest USING VirtualDBF(shapetest1.dbf, UTF-8);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase2 < 20;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -4;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -5;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -6;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -7;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 <= 19;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -10;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -11;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -12;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -13;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -14;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase2 <= 19;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -11;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -12;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -13;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -14;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 = 20;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -16;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -17;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -18;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]);
-	return  -19;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[3]);
-	return  -20;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase2 = 20;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -16;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -17;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -18;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[2]);
+	  return -19;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n",
+		   results[3]);
+	  return -20;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 > 2;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -22;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -23;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -24;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[2]);
-	return  -25;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[3]);
-	return  -26;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase2 > 2;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -23;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -24;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n",
+		   results[2]);
+	  return -25;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n",
+		   results[3]);
+	  return -26;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 >= 20;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -28;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -29;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -30;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[2]);
-	return  -31;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[3]);
-	return  -32;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase2 >= 20;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -29;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -30;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n",
+		   results[2]);
+	  return -31;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n",
+		   results[3]);
+	  return -32;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 < \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -34;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -35;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -36;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]);
-	return  -37;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -38;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase1 < \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -35;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -36;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[2]);
+	  return -37;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -38;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 <= \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -40;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -41;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -42;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]);
-	return  -43;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -44;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase1 <= \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -40;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -41;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -42;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[2]);
+	  return -43;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -44;
+      }
     sqlite3_free_table (results);
-    
+
     ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "BEGIN error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -46;
-    }
-
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 > \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -48;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -49;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -50;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -51;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -52;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "BEGIN error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase1 > \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -49;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -50;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -51;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -52;
+      }
     sqlite3_free_table (results);
 
-    ret = sqlite3_exec (db_handle, "DELETE FROM dbftest WHERE testcase2 = 2;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_READONLY) {
-	fprintf (stderr, "UPDATE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -46;
-    }
+    ret =
+	sqlite3_exec (db_handle, "DELETE FROM dbftest WHERE testcase2 = 2;",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_READONLY)
+      {
+	  fprintf (stderr, "UPDATE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
     sqlite3_free (err_msg);
 
     ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -47;
-    }
-
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 >= \"p\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -54;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -55;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -56;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -57;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -58;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase1 >= \"p\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -55;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -56;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -57;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -58;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 = \"windward\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -54;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -55;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -56;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -57;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -58;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where testcase1 = \"windward\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -54;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -55;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -56;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -57;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -58;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID = 1;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -60;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -61;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -62;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -63;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -64;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where PKUID = 1;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -60;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -61;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -62;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -63;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -64;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID < 2;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -66;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -67;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -68;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -69;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -70;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where PKUID < 2;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -66;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -67;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -68;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -69;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -70;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID <= 1;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -72;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -73;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -74;
-    }
-    if (strcmp(results[2], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]);
-	return  -75;
-    }
-    if (strcmp(results[3], "2") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -76;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where PKUID <= 1;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -72;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -73;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -74;
+      }
+    if (strcmp (results[2], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[2]);
+	  return -75;
+      }
+    if (strcmp (results[3], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -76;
+      }
     sqlite3_free_table (results);
-    
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID > 1;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -78;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -79;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -80;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]);
-	return  -81;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -82;
-    }
+
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where PKUID > 1;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -78;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -79;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -80;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[2]);
+	  return -81;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -82;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select testcase1, testcase2 from dbftest where PKUID >= 2;");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -84;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -85;
-    }
-    if (strcmp(results[0], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -86;
-    }
-    if (strcmp(results[2], "orde lees") != 0) {
-	fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]);
-	return  -87;
-    }
-    if (strcmp(results[3], "20") != 0) {
-	fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]);
-	return  -88;
-    }
+    asprintf (&sql_statement,
+	      "select testcase1, testcase2 from dbftest where PKUID >= 2;");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -84;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -85;
+      }
+    if (strcmp (results[0], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -86;
+      }
+    if (strcmp (results[2], "orde lees") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n",
+		   results[2]);
+	  return -87;
+      }
+    if (strcmp (results[3], "20") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: integer() bad result: %s.\n",
+		   results[3]);
+	  return -88;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select PKUID, testcase1, testcase2 from dbftest where testcase1 LIKE \"wind%%\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -90;
-    }
-    if ((rows != 1) || (columns != 3)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -91;
-    }
-    if (strcmp(results[0], "PKUID") != 0) {
-	fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]);
-	return  -92;
-    }
-    if (strcmp(results[1], "testcase1") != 0) {
-	fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]);
-	return  -93;
-    }
-    if (strcmp(results[3], "1") != 0) {
-	fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[3]);
-	return  -93;
-    }
-    if (strcmp(results[4], "windward") != 0) {
-	fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[4]);
-	return  -94;
-    }
+    asprintf (&sql_statement,
+	      "select PKUID, testcase1, testcase2 from dbftest where testcase1 LIKE \"wind%%\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -90;
+      }
+    if ((rows != 1) || (columns != 3))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -91;
+      }
+    if (strcmp (results[0], "PKUID") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header uid bad result: %s.\n",
+		   results[0]);
+	  return -92;
+      }
+    if (strcmp (results[1], "testcase1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header bad result: %s.\n",
+		   results[1]);
+	  return -93;
+      }
+    if (strcmp (results[3], "1") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n",
+		   results[3]);
+	  return -93;
+      }
+    if (strcmp (results[4], "windward") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: windward bad result: %s.\n",
+		   results[4]);
+	  return -94;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -49;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -49;
+      }
 
     /* error cases */
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualDBF(\"shapetest1.dbf\");", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret);
-	return -95;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE toofewargs USING VirtualDBF(\"shapetest1.dbf\");",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret);
+	  return -95;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualDBF(\"shapetest1.dbf\", UTF-8, 1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret);
-	return -96;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE toomanyargs USING VirtualDBF(\"shapetest1.dbf\", UTF-8, 1);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret);
+	  return -96;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualDBF(\"not_a_file.dbf\", UTF-8);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -97;
-    }
-    ret = sqlite3_get_table (db_handle, "SELECT * from nosuchfile;", &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -98;
-    }
-    if ((rows != 0) || (columns != 0)) {
-	fprintf (stderr, "Unexpected error: select columns no suchfile: %i/%i.\n", rows, columns);
-	return  -99;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE nosuchfile USING VirtualDBF(\"not_a_file.dbf\", UTF-8);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -97;
+      }
+    ret =
+	sqlite3_get_table (db_handle, "SELECT * from nosuchfile;", &results,
+			   &rows, &columns, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -98;
+      }
+    if ((rows != 0) || (columns != 0))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns no suchfile: %i/%i.\n",
+		   rows, columns);
+	  return -99;
+      }
     sqlite3_free_table (results);
-    ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -100;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE onesidedquote USING VirtualDBF('shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret);
-	return -101;
-    }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -100;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE onesidedquote USING VirtualDBF('shapetest1.dbf, UTF-8);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret);
+	  return -101;
+      }
     sqlite3_free (err_msg);
 
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
-    
+#endif /* end ICONV conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualtable4.c b/test/check_virtualtable4.c
index 1eb2940..71340d2 100644
--- a/test/check_virtualtable4.c
+++ b/test/check_virtualtable4.c
@@ -64,45 +64,47 @@ struct test_step
 #define NUMSTEPS 36
 
 struct test_step steps[NUMSTEPS] = {
-    { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 > \"Canary Creek\";", 9 },
-    { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 < \"Canary Creek\";", 7 },
-    { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 >= \"Canary Creek\";", 10 },
-    { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 <= \"Canary Creek\";", 8 },
-    { "select col_2, col_4, col_5, col_7 from xltest WHERE col_2 = 3;", 0 }, 
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000;", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000;", 16 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000 AND col_14 > 0;", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895;", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895;", 16 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895;", 2 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000.0;", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000.0;", 16 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895.0;", 16 },
-    { "SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895.0;", 2 },
-    { "SELECT col_2, col_14 FROM xltest WHERE row_no = 4", 1 },
-    { "SELECT col_2, col_14 FROM xltest WHERE row_no < 4", 3 },
-    { "SELECT col_2, col_14 FROM xltest WHERE row_no <= 4", 4 },
-    { "SELECT col_2, col_14 FROM xltest WHERE row_no >= 4", 14 },
-    { "SELECT col_2, col_14 FROM xltest WHERE row_no > 4", 13 },
-    { "SELECT col_2, col_14 FROM xltest WHERE row_no = 4.00", 0 },
-    { "select col_2, col_4, col_5 from xltest where col_4 < -30.0;", 8 },
-    { "select col_2, col_4, col_5 from xltest where col_4 > -30.0;", 9 },
-    { "select col_2, col_4, col_5 from xltest where col_4 <= -30.0;", 8 },
-    { "select col_2, col_4, col_5 from xltest where col_4 >= -30.0;", 9 },
-    { "select col_2, col_4, col_5 from xltest where col_5 = 149.1;", 1 },
-    { "select col_2, col_4, col_5 from xltest where col_4 < -30;", 8 },
-    { "select col_2, col_4, col_5 from xltest where col_4 > -30;", 9 },
-    { "select col_2, col_4, col_5 from xltest where col_4 <= -30;", 8 },
-    { "select col_2, col_4, col_5 from xltest where col_4 >= -30;", 9 },
-    { "select col_2, col_4, col_5 from xltest where col_4 = -30;", 0 },
-    { "SELECT row_no, col_4, col_5 from xltest", 17 },
-    { "select rowid, col_4, col_5 from xltest where col_4 = -26.0;", 1 },
-    { "select rowid, col_4, col_5 from xltest where col_4 = -26;", 1 },
+    {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 > \"Canary Creek\";", 9},
+    {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 < \"Canary Creek\";", 7},
+    {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 >= \"Canary Creek\";", 10},
+    {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 <= \"Canary Creek\";", 8},
+    {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 = 3;", 0},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000;", 1},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000;", 16},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000 AND col_14 > 0;",
+     1},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895;", 1},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895;", 16},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895;", 2},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000.0;", 1},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000.0;", 16},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895.0;", 16},
+    {"SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895.0;", 2},
+    {"SELECT col_2, col_14 FROM xltest WHERE row_no = 4", 1},
+    {"SELECT col_2, col_14 FROM xltest WHERE row_no < 4", 3},
+    {"SELECT col_2, col_14 FROM xltest WHERE row_no <= 4", 4},
+    {"SELECT col_2, col_14 FROM xltest WHERE row_no >= 4", 14},
+    {"SELECT col_2, col_14 FROM xltest WHERE row_no > 4", 13},
+    {"SELECT col_2, col_14 FROM xltest WHERE row_no = 4.00", 0},
+    {"select col_2, col_4, col_5 from xltest where col_4 < -30.0;", 8},
+    {"select col_2, col_4, col_5 from xltest where col_4 > -30.0;", 9},
+    {"select col_2, col_4, col_5 from xltest where col_4 <= -30.0;", 8},
+    {"select col_2, col_4, col_5 from xltest where col_4 >= -30.0;", 9},
+    {"select col_2, col_4, col_5 from xltest where col_5 = 149.1;", 1},
+    {"select col_2, col_4, col_5 from xltest where col_4 < -30;", 8},
+    {"select col_2, col_4, col_5 from xltest where col_4 > -30;", 9},
+    {"select col_2, col_4, col_5 from xltest where col_4 <= -30;", 8},
+    {"select col_2, col_4, col_5 from xltest where col_4 >= -30;", 9},
+    {"select col_2, col_4, col_5 from xltest where col_4 = -30;", 0},
+    {"SELECT row_no, col_4, col_5 from xltest", 17},
+    {"select rowid, col_4, col_5 from xltest where col_4 = -26.0;", 1},
+    {"select rowid, col_4, col_5 from xltest where col_4 = -26;", 1},
 };
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
 #ifndef OMIT_FREEXL		/* only if FreeXL is supported */
     sqlite3 *db_handle = NULL;
@@ -113,242 +115,347 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE xltest USING VirtualXL(\"testcase1.xls\");", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-
-    asprintf(&sql_statement, "select col_2, col_4, col_5, col_7, rowid from xltest WHERE col_2 = \"Canal Creek\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -10;
-    }
-    if ((rows != 2) || (columns != 5)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -11;
-    }
-    if (strcmp(results[0], "col_2") != 0) {
-	fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
-	return  -12;
-    }
-    if (strcmp(results[5], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]);
-	return  -13;
-    }
-    if (strncmp(results[6], "-27.86667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]);
-	return  -14;
-    }
-    if (strncmp(results[7], "151.51667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]);
-	return  -15;
-    }
-    if (strcmp(results[10], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]);
-	return  -16;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE xltest USING VirtualXL(\"testcase1.xls\");",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    asprintf (&sql_statement,
+	      "select col_2, col_4, col_5, col_7, rowid from xltest WHERE col_2 = \"Canal Creek\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -10;
+      }
+    if ((rows != 2) || (columns != 5))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -11;
+      }
+    if (strcmp (results[0], "col_2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
+		   results[0]);
+	  return -12;
+      }
+    if (strcmp (results[5], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: name5() bad result: %s.\n",
+		   results[5]);
+	  return -13;
+      }
+    if (strncmp (results[6], "-27.86667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n",
+		   results[6]);
+	  return -14;
+      }
+    if (strncmp (results[7], "151.51667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n",
+		   results[7]);
+	  return -15;
+      }
+    if (strcmp (results[10], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: name10() bad result: %s.\n",
+		   results[10]);
+	  return -16;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "BEGIN error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -21;
-    }
-
-    ret = sqlite3_exec (db_handle, "DELETE FROM xltest WHERE col_14 > 100000;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_READONLY) {
-	fprintf (stderr, "UPDATE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -21;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "BEGIN error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DELETE FROM xltest WHERE col_14 > 100000;",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_READONLY)
+      {
+	  fprintf (stderr, "UPDATE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -21;
+      }
     sqlite3_free (err_msg);
 
     ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -22;
-    }
- 
-    for (i = 0; i < NUMSTEPS; ++i) {
-	ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "Error: %s\n", err_msg);
-	    sqlite3_free (err_msg);
-	    return -23;
-	}
-	if (rows != steps[i].num_rows) {
-	    fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows);
-	    return  -24;
-	}
-	sqlite3_free_table (results);
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -22;
+      }
+
+    for (i = 0; i < NUMSTEPS; ++i)
+      {
+	  ret =
+	      sqlite3_get_table (db_handle, steps[i].sql, &results, &rows,
+				 &columns, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "Error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		return -23;
+	    }
+	  if (rows != steps[i].num_rows)
+	    {
+		fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i,
+			 rows);
+		return -24;
+	    }
+	  sqlite3_free_table (results);
+      }
+
     ret = sqlite3_exec (db_handle, "DROP TABLE xltest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -25;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchworksheet USING VirtualXL(\"testcase1.xls\", 3);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -26;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE nosuchworksheet;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -27;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualXL(\"not_a_file.xls\", 3);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -28;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -29;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE sheet2 USING VirtualXL(\"testcase1.xls\", 1, 1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -30;
-    }
-    asprintf(&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE place = \"Canal Creek\";");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -31;
-    }
-    if ((rows != 4) || (columns != 5)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -32;
-    }
-    if (strcmp(results[0], "row_no") != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]);
-	return  -33;
-    }
-    if (strcmp(results[6], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]);
-	return  -34;
-    }
-    if (strncmp(results[7], "-27.86667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]);
-	return  -35;
-    }
-    if (strncmp(results[8], "151.51667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]);
-	return  -36;
-    }
-    if (strcmp(results[11], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result place2: %s.\n", results[11]);
-	return  -37;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -25;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE nosuchworksheet USING VirtualXL(\"testcase1.xls\", 3);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -26;
+      }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE nosuchworksheet;", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -27;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE nosuchfile USING VirtualXL(\"not_a_file.xls\", 3);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -28;
+      }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -29;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE sheet2 USING VirtualXL(\"testcase1.xls\", 1, 1);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
+    asprintf (&sql_statement,
+	      "select row_no, place, lat, lon, rowid from sheet2 WHERE place = \"Canal Creek\";");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
+    if ((rows != 4) || (columns != 5))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -32;
+      }
+    if (strcmp (results[0], "row_no") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n",
+		   results[0]);
+	  return -33;
+      }
+    if (strcmp (results[6], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n",
+		   results[6]);
+	  return -34;
+      }
+    if (strncmp (results[7], "-27.86667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n",
+		   results[7]);
+	  return -35;
+      }
+    if (strncmp (results[8], "151.51667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n",
+		   results[8]);
+	  return -36;
+      }
+    if (strcmp (results[11], "Canal Creek") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: sheet2() bad result place2: %s.\n",
+		   results[11]);
+	  return -37;
+      }
     sqlite3_free_table (results);
 
-    asprintf(&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE row_no = 16");
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    free(sql_statement);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -38;
-    }
-    if ((rows != 1) || (columns != 5)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -39;
-    }
-    if (strcmp(results[0], "row_no") != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]);
-	return  -40;
-    }
-    if (strcmp(results[6], "Canal Creek") != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]);
-	return  -41;
-    }
-    if (strncmp(results[7], "-27.86667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]);
-	return  -42;
-    }
-    if (strncmp(results[8], "151.51667", 9) != 0) {
-	fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]);
-	return  -43;
-    }
+    asprintf (&sql_statement,
+	      "select row_no, place, lat, lon, rowid from sheet2 WHERE row_no = 16");
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    free (sql_statement);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -38;
+      }
+    if ((rows != 1) || (columns != 5))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -39;
+      }
+    if (strcmp (results[0], "row_no") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n",
+		   results[0]);
+	  return -40;
+      }
+    if (strcmp (results[6], "Canal Creek") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n",
+		   results[6]);
+	  return -41;
+      }
+    if (strncmp (results[7], "-27.86667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n",
+		   results[7]);
+	  return -42;
+      }
+    if (strncmp (results[8], "151.51667", 9) != 0)
+      {
+	  fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n",
+		   results[8]);
+	  return -43;
+      }
     sqlite3_free_table (results);
 
     ret = sqlite3_exec (db_handle, "DROP TABLE sheet2;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -44;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noquote USING VirtualXL(testcase1.xls);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -45;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -44;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE noquote USING VirtualXL(testcase1.xls);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
     ret = sqlite3_exec (db_handle, "DROP TABLE noquote;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -46;
-    }
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noheader USING VirtualXL(\"testcase1.xls\", 0, 0);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualXL error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -47;
-    }
-    ret = sqlite3_exec (db_handle, "DROP TABLE noheader;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -48;
-    }
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nofile USING VirtualXL();", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf (stderr, "VirtualXL unexpected result: %i\n", ret);
-	return -49;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -46;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE noheader USING VirtualXL(\"testcase1.xls\", 0, 0);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualXL error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -47;
+      }
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE noheader;", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE nofile USING VirtualXL();", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "VirtualXL unexpected result: %i\n", ret);
+	  return -49;
+      }
     sqlite3_free (err_msg);
 
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-#endif	/* end FreeXL conditional */
-    
+#endif /* end FreeXL conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualtable5.c b/test/check_virtualtable5.c
index 3ed0a5c..055f5c2 100644
--- a/test/check_virtualtable5.c
+++ b/test/check_virtualtable5.c
@@ -58,40 +58,41 @@ struct test_step
 };
 
 struct test_step steps[] = {
-    { "select DATUM from dbftest WHERE DATUM = 2450514.5;", 18 },
-    { "select DATUM from dbftest WHERE DATUM < 2450514.5;", 0 },
-    { "select DATUM from dbftest WHERE DATUM > 2450514.5;", 0 },
-    { "select DATUM from dbftest WHERE DATUM >= 2450514.5;", 18 },
-    { "select DATUM from dbftest WHERE DATUM <= 2450514.5;", 18 },
-    { "select DATUM from dbftest WHERE DATUM = 2450514.5;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE = 0.0;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE = 1.0;", 0 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE != 0.0;", 0 },
-    { "select Length, HOEHE from dbftest WHERE Length > 0.0;", 18 },
-    { "select Length, HOEHE from dbftest WHERE Length >= 0.0;", 18 },
-    { "select Length, HOEHE from dbftest WHERE Length <= 0.0;", 0 },
-    { "select Length, HOEHE from dbftest WHERE Length > 1.0;", 0 },
-    { "select Length, HOEHE from dbftest WHERE Length > 0.1;", 10 },
-    { "select Length, HOEHE from dbftest WHERE Length < 0.1;", 8 },
-    { "select Length, HOEHE from dbftest WHERE Length >= 0.1;", 10 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE = 0;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE >= 0;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE <= 0;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE > 0;", 0 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE < 0;", 0 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE = 1;", 0 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE <= 1;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE >= 1;", 0 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE < 1;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE > -1;", 18 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE < -1;", 0 },
-    { "select Length, HOEHE from dbftest WHERE HOEHE <= -1;", 0 },
-    { NULL, 0 }
+    {"select DATUM from dbftest WHERE DATUM = 2450514.5;", 18},
+    {"select DATUM from dbftest WHERE DATUM < 2450514.5;", 0},
+    {"select DATUM from dbftest WHERE DATUM > 2450514.5;", 0},
+    {"select DATUM from dbftest WHERE DATUM >= 2450514.5;", 18},
+    {"select DATUM from dbftest WHERE DATUM <= 2450514.5;", 18},
+    {"select DATUM from dbftest WHERE DATUM = 2450514.5;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE = 0.0;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE = 1.0;", 0},
+    {"select Length, HOEHE from dbftest WHERE HOEHE != 0.0;", 0},
+    {"select Length, HOEHE from dbftest WHERE Length > 0.0;", 18},
+    {"select Length, HOEHE from dbftest WHERE Length >= 0.0;", 18},
+    {"select Length, HOEHE from dbftest WHERE Length <= 0.0;", 0},
+    {"select Length, HOEHE from dbftest WHERE Length > 1.0;", 0},
+    {"select Length, HOEHE from dbftest WHERE Length > 0.1;", 10},
+    {"select Length, HOEHE from dbftest WHERE Length < 0.1;", 8},
+    {"select Length, HOEHE from dbftest WHERE Length >= 0.1;", 10},
+    {"select Length, HOEHE from dbftest WHERE HOEHE = 0;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE >= 0;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE <= 0;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE > 0;", 0},
+    {"select Length, HOEHE from dbftest WHERE HOEHE < 0;", 0},
+    {"select Length, HOEHE from dbftest WHERE HOEHE = 1;", 0},
+    {"select Length, HOEHE from dbftest WHERE HOEHE <= 1;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE >= 1;", 0},
+    {"select Length, HOEHE from dbftest WHERE HOEHE < 1;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE > -1;", 18},
+    {"select Length, HOEHE from dbftest WHERE HOEHE < -1;", 0},
+    {"select Length, HOEHE from dbftest WHERE HOEHE <= -1;", 0},
+    {NULL, 0}
 };
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     sqlite3 *db_handle = NULL;
     int ret;
     char *err_msg = NULL;
@@ -99,80 +100,106 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(\"shp/merano-3d/roads.dbf\", 'CP1252');", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-    
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE dbftest USING VirtualDBF(\"shp/merano-3d/roads.dbf\", 'CP1252');",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
     ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', \"CP1252\");", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -4;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', \"CP1252\");",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+
     ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -5;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', CP1252);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -6;
-    }
-    
-    for (i = 0; steps[i].sql; ++i) {
-	ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "Error: %s\n", err_msg);
-	    sqlite3_free (err_msg);
-	    return -7;
-	}
-	if (rows != steps[i].num_rows) {
-	    fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows);
-	    return  -8;
-	}
-	sqlite3_free_table (results);
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', CP1252);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualDBF error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
+    for (i = 0; steps[i].sql; ++i)
+      {
+	  ret =
+	      sqlite3_get_table (db_handle, steps[i].sql, &results, &rows,
+				 &columns, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "Error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		return -7;
+	    }
+	  if (rows != steps[i].num_rows)
+	    {
+		fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i,
+			 rows);
+		return -8;
+	    }
+	  sqlite3_free_table (results);
+      }
 
     ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -9;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
 
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
-    
+#endif /* end ICONV conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualtable6.c b/test/check_virtualtable6.c
index 2f10478..f6b107a 100644
--- a/test/check_virtualtable6.c
+++ b/test/check_virtualtable6.c
@@ -58,41 +58,42 @@ struct test_step
 };
 
 struct test_step steps[] = {
-    { "select DATUM, Geometry from shapetest WHERE DATUM = 2450514.5;", 18 },
-    { "select DATUM from shapetest WHERE DATUM < 2450514.5;", 0 },
-    { "select DATUM from shapetest WHERE DATUM > 2450514.5;", 0 },
-    { "select DATUM from shapetest WHERE DATUM >= 2450514.5;", 18 },
-    { "select DATUM from shapetest WHERE DATUM <= 2450514.5;", 18 },
-    { "select DATUM from shapetest WHERE DATUM = 2450514.5;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE = 0.0;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE = 1.0;", 0 },
-    { "select Length, HOEHE, Geometry from shapetest WHERE HOEHE != 0.0;", 0 },
-    { "select Length, HOEHE from shapetest WHERE Length > 0.0;", 18 },
-    { "select Length, HOEHE from shapetest WHERE Length >= 0.0;", 18 },
-    { "select Length, HOEHE from shapetest WHERE Length <= 0.0;", 0 },
-    { "select Length, HOEHE from shapetest WHERE Length > 1.0;", 0 },
-    { "select Length, HOEHE from shapetest WHERE Length > 0.1;", 10 },
-    { "select Length, HOEHE from shapetest WHERE Length < 0.1;", 8 },
-    { "select Length, HOEHE from shapetest WHERE Length >= 0.1;", 10 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE = 0;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE >= 0;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE <= 0;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE > 0;", 0 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE < 0;", 0 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE = 1;", 0 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE <= 1;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE >= 1;", 0 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE < 1;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE > -1;", 18 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE < -1;", 0 },
-    { "select Length, HOEHE from shapetest WHERE HOEHE <= -1;", 0 },
-    { "select * from shapetest LIMIT 5 OFFSET 2;", 5 },
-    { NULL, 0 }
+    {"select DATUM, Geometry from shapetest WHERE DATUM = 2450514.5;", 18},
+    {"select DATUM from shapetest WHERE DATUM < 2450514.5;", 0},
+    {"select DATUM from shapetest WHERE DATUM > 2450514.5;", 0},
+    {"select DATUM from shapetest WHERE DATUM >= 2450514.5;", 18},
+    {"select DATUM from shapetest WHERE DATUM <= 2450514.5;", 18},
+    {"select DATUM from shapetest WHERE DATUM = 2450514.5;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE = 0.0;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE = 1.0;", 0},
+    {"select Length, HOEHE, Geometry from shapetest WHERE HOEHE != 0.0;", 0},
+    {"select Length, HOEHE from shapetest WHERE Length > 0.0;", 18},
+    {"select Length, HOEHE from shapetest WHERE Length >= 0.0;", 18},
+    {"select Length, HOEHE from shapetest WHERE Length <= 0.0;", 0},
+    {"select Length, HOEHE from shapetest WHERE Length > 1.0;", 0},
+    {"select Length, HOEHE from shapetest WHERE Length > 0.1;", 10},
+    {"select Length, HOEHE from shapetest WHERE Length < 0.1;", 8},
+    {"select Length, HOEHE from shapetest WHERE Length >= 0.1;", 10},
+    {"select Length, HOEHE from shapetest WHERE HOEHE = 0;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE >= 0;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE <= 0;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE > 0;", 0},
+    {"select Length, HOEHE from shapetest WHERE HOEHE < 0;", 0},
+    {"select Length, HOEHE from shapetest WHERE HOEHE = 1;", 0},
+    {"select Length, HOEHE from shapetest WHERE HOEHE <= 1;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE >= 1;", 0},
+    {"select Length, HOEHE from shapetest WHERE HOEHE < 1;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE > -1;", 18},
+    {"select Length, HOEHE from shapetest WHERE HOEHE < -1;", 0},
+    {"select Length, HOEHE from shapetest WHERE HOEHE <= -1;", 0},
+    {"select * from shapetest LIMIT 5 OFFSET 2;", 5},
+    {NULL, 0}
 };
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     sqlite3 *db_handle = NULL;
     int ret;
     char *err_msg = NULL;
@@ -100,122 +101,172 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
 
     spatialite_init_ex (db_handle, cache, 0);
-    
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', CP1252, 25832);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
-
-    ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -3;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shp/merano-3d/roads\", 'CP1252', -1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -4;
-    }
-    
-    ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -5;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE unquoted USING VirtualShape(shapetest1, UTF8, -1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -6;
-    }
-    
-    ret = sqlite3_exec (db_handle, "DROP TABLE unquoted;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -7;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', \"CP1252\", 25832);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -8;
-    }
-
-    for (i = 0; steps[i].sql; ++i) {
-	ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "Error: %s\n", err_msg);
-	    sqlite3_free (err_msg);
-	    return -9;
-	}
-	if (rows != steps[i].num_rows) {
-	    fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows);
-	    return  -10;
-	}
-	sqlite3_free_table (results);
-    }
-
-    ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -11;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualShape(nosuchfile, UTF8, -1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VirtualShape error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -12;
-    }
-    
-    ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -13;
-    }
-
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualShape(\"shapetest1\", UTF8);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf (stderr, "VirtualShape unexpected result: %i\n", ret);
-	return -14;
-    }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', CP1252, 25832);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -3;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest USING VirtualShape(\"shp/merano-3d/roads\", 'CP1252', -1);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -4;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -5;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE unquoted USING VirtualShape(shapetest1, UTF8, -1);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -6;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE unquoted;", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -7;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', \"CP1252\", 25832);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -8;
+      }
+
+    for (i = 0; steps[i].sql; ++i)
+      {
+	  ret =
+	      sqlite3_get_table (db_handle, steps[i].sql, &results, &rows,
+				 &columns, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "Error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		return -9;
+	    }
+	  if (rows != steps[i].num_rows)
+	    {
+		fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i,
+			 rows);
+		return -10;
+	    }
+	  sqlite3_free_table (results);
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE nosuchfile USING VirtualShape(nosuchfile, UTF8, -1);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VirtualShape error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+
+    ret =
+	sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -13;
+      }
+
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE toofewargs USING VirtualShape(\"shapetest1\", UTF8);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "VirtualShape unexpected result: %i\n", ret);
+	  return -14;
+      }
     sqlite3_free (err_msg);
 
-    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualShape(\"shapetest1\", UTF8, 4386, 1);", NULL, NULL, &err_msg);
-    if (ret != SQLITE_ERROR) {
-	fprintf (stderr, "VirtualShape unexpected result: %i\n", ret);
-	return -15;
-    }
+    ret =
+	sqlite3_exec (db_handle,
+		      "create VIRTUAL TABLE toomanyargs USING VirtualShape(\"shapetest1\", UTF8, 4386, 1);",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_ERROR)
+      {
+	  fprintf (stderr, "VirtualShape unexpected result: %i\n", ret);
+	  return -15;
+      }
     sqlite3_free (err_msg);
-    
+
     sqlite3_close (db_handle);
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
-    
+#endif /* end ICONV conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_virtualxpath.c b/test/check_virtualxpath.c
index 3c9268a..6ecc990 100644
--- a/test/check_virtualxpath.c
+++ b/test/check_virtualxpath.c
@@ -51,14 +51,11 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-#include <libxml/parser.h>
-#endif
-
 static int
-load_xml (void *cache, sqlite3 *db_handle, sqlite3_stmt *stmt, const char *path)
+load_xml (void *cache, sqlite3 * db_handle, sqlite3_stmt * stmt,
+	  const char *path)
 {
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */  
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
 /* loading an XMLDocument into the DB */
     FILE *fl;
     int sz = 0;
@@ -69,48 +66,52 @@ load_xml (void *cache, sqlite3 *db_handle, sqlite3_stmt *stmt, const char *path)
     int ret;
 
 /* loading the XMLDocument */
-    fl = fopen(path, "rb");
-    if (!fl) {
-	fprintf (stderr, "cannot open \"%s\"\n", path);
-	return 0;
-    }
-    if (fseek(fl, 0, SEEK_END) == 0)
-        sz = ftell(fl);
-    xml = malloc(sz);
-    rewind(fl);
-    rd = fread(xml, 1, sz, fl);
-    if (rd != sz) {
-	fprintf (stderr, "read error \"%s\"\n", path);
-	return 0;
-    }
-    fclose(fl);
+    fl = fopen (path, "rb");
+    if (!fl)
+      {
+	  fprintf (stderr, "cannot open \"%s\"\n", path);
+	  return 0;
+      }
+    if (fseek (fl, 0, SEEK_END) == 0)
+	sz = ftell (fl);
+    xml = malloc (sz);
+    rewind (fl);
+    rd = fread (xml, 1, sz, fl);
+    if (rd != sz)
+      {
+	  fprintf (stderr, "read error \"%s\"\n", path);
+	  return 0;
+      }
+    fclose (fl);
 
 /* parsing the XMLDocument */
-    gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); 
-    if (p_result == NULL) {
-        fprintf (stderr, "\"%s\": not a well-formed XML !!!\n", path);
-        return 0;
-    }
-    free(xml);
+    gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL);
+    if (p_result == NULL)
+      {
+	  fprintf (stderr, "\"%s\": not a well-formed XML !!!\n", path);
+	  return 0;
+      }
+    free (xml);
 
 /* inserting into the DB */
-    sqlite3_reset(stmt);
-    sqlite3_clear_bindings(stmt);
-    sqlite3_bind_blob(stmt, 1, p_result, len, free);
-    sqlite3_bind_text(stmt, 2, path, strlen(path), SQLITE_STATIC);
-    ret = sqlite3_step(stmt);
+    sqlite3_reset (stmt);
+    sqlite3_clear_bindings (stmt);
+    sqlite3_bind_blob (stmt, 1, p_result, len, free);
+    sqlite3_bind_text (stmt, 2, path, strlen (path), SQLITE_STATIC);
+    ret = sqlite3_step (stmt);
     if (ret == SQLITE_DONE || ret == SQLITE_ROW)
-        return 1;
-    fprintf (stderr, "INSERT error: %s\n", sqlite3_errmsg(db_handle));
+	return 1;
+    fprintf (stderr, "INSERT error: %s\n", sqlite3_errmsg (db_handle));
     return 0;
 #else
-    return -1; /* no support */
+    return -1;			/* no support */
 #endif
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
     sqlite3 *db_handle = NULL;
     sqlite3_stmt *stmt;
     char *sql_statement;
@@ -119,367 +120,514 @@ int main (int argc, char *argv[])
     char **results;
     int rows;
     int columns;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
-	sqlite3_close (db_handle);
-	db_handle = NULL;
-	return -1;
-    }  
-    spatialite_init_ex (db_handle, cache, 0);  
-    
+    ret =
+	sqlite3_open_v2 (":memory:", &db_handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (db_handle));
+	  sqlite3_close (db_handle);
+	  db_handle = NULL;
+	  return -1;
+      }
+    spatialite_init_ex (db_handle, cache, 0);
+
 /* creating the base XML table */
     sql_statement = "CREATE TABLE test (id INTEGER PRIMARY "
-                    "KEY AUTOINCREMENT, xml BLOB, name TEXT)";
+	"KEY AUTOINCREMENT, xml BLOB, name TEXT)";
     ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateTable error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -2;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateTable error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -2;
+      }
 
 /* loading the XMLDocuments into the DB */
     sql_statement = "INSERT INTO test (id, xml, name) VALUES (NULL, ?, ?)";
-    ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL);
+    ret =
+	sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement),
+			    &stmt, NULL);
     if (ret != SQLITE_OK)
-    {
-	  fprintf (stderr, "PrepareStatement: error \"%s\"\n", sqlite3_errmsg (db_handle));
+      {
+	  fprintf (stderr, "PrepareStatement: error \"%s\"\n",
+		   sqlite3_errmsg (db_handle));
 	  return -3;
-    }
-    if (!load_xml(cache, db_handle, stmt, "books.xml")) {
-        fprintf (stderr, "Unable to load \"books.xml\"");
-        return -4;
-    }
-    if (!load_xml(cache, db_handle, stmt, "opera.xml")) {
-        fprintf (stderr, "Unable to load \"opera.xml\"");
-        return -5;
-    }
-    if (!load_xml(cache, db_handle, stmt, "movies.xml")) {
-        fprintf (stderr, "Unable to load \"movies.xml\"");
-        return -6;
-    }
-    if (!load_xml(cache, db_handle, stmt, "books.xml")) {
-        fprintf (stderr, "Unable to re-load yet again \"books.xml\"");
-        return -7;
-    }
-    if (!load_xml(cache, db_handle, stmt, "inspire-data-example.xml")) {
-        fprintf (stderr, "Unable to load \"books-bad.xml\"");
-        return -8;
-    }
+      }
+    if (!load_xml (cache, db_handle, stmt, "books.xml"))
+      {
+	  fprintf (stderr, "Unable to load \"books.xml\"");
+	  return -4;
+      }
+    if (!load_xml (cache, db_handle, stmt, "opera.xml"))
+      {
+	  fprintf (stderr, "Unable to load \"opera.xml\"");
+	  return -5;
+      }
+    if (!load_xml (cache, db_handle, stmt, "movies.xml"))
+      {
+	  fprintf (stderr, "Unable to load \"movies.xml\"");
+	  return -6;
+      }
+    if (!load_xml (cache, db_handle, stmt, "books.xml"))
+      {
+	  fprintf (stderr, "Unable to re-load yet again \"books.xml\"");
+	  return -7;
+      }
+    if (!load_xml (cache, db_handle, stmt, "inspire-data-example.xml"))
+      {
+	  fprintf (stderr, "Unable to load \"books-bad.xml\"");
+	  return -8;
+      }
     ret = sqlite3_finalize (stmt);
 
 /* checking for parse errors */
     sql_statement = "SELECT XB_GetLastParseError()";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -9;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -10;
-    }
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -9;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -10;
+      }
     sqlite3_free_table (results);
 
 /* validating the XMLDocuments */
     sql_statement = "UPDATE test SET xml = XB_SchemaValidate(xml, "
-                    "XB_GetInternalSchemaURI(XB_GetPayload(xml))) "
-                    "WHERE XB_GetInternalSchemaURI(XB_GetPayload(xml)) IS NOT NULL "
-                    "AND name <> 'inspire-data-example.xml'";
+	"XB_GetInternalSchemaURI(XB_GetPayload(xml))) "
+	"WHERE XB_GetInternalSchemaURI(XB_GetPayload(xml)) IS NOT NULL "
+	"AND name <> 'inspire-data-example.xml'";
     ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "SchemaValidation error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -11;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "SchemaValidation error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -11;
+      }
 
 /* checking for validation errors */
     sql_statement = "SELECT XB_GetLastValidateError()";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -12;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -13;
-    }
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -12;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -13;
+      }
     sqlite3_free_table (results);
 
 /* check #1: validity */
     sql_statement = "SELECT Count(*) FROM test WHERE XB_IsValid(xml) = 1";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -14;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -15;
-    }
-    if (strcmp(results[1], "5") != 0) {
-	fprintf (stderr, "Unexpected error: XB_IsValid() bad result: %s.\n", results[1]);
-	return  -16;
-    }
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -14;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -15;
+      }
+    if (strcmp (results[1], "5") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XB_IsValid() bad result: %s.\n",
+		   results[1]);
+	  return -16;
+      }
     sqlite3_free_table (results);
 
 /* check #2: validated */
-    sql_statement = "SELECT Count(*) FROM test WHERE XB_IsSchemaValidated(xml) = 1";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -17;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -18;
-    }
-    if (strcmp(results[1], "4") != 0) {
-	fprintf (stderr, "Unexpected error: XB_IsSchemaValidated() bad result: %s.\n", results[1]);
-	return  -19;
-    }
+    sql_statement =
+	"SELECT Count(*) FROM test WHERE XB_IsSchemaValidated(xml) = 1";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -17;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -18;
+      }
+    if (strcmp (results[1], "4") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: XB_IsSchemaValidated() bad result: %s.\n",
+		   results[1]);
+	  return -19;
+      }
     sqlite3_free_table (results);
 
 /* freeing the Schema cache */
     sql_statement = "SELECT XB_CacheFlush()";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -20;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -21;
-    }
-    if (strcmp(results[1], "1") != 0) {
-	fprintf (stderr, "Unexpected error: XB_CacheFlush() bad result: %s.\n", results[1]);
-	return  -22;
-    }
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -20;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -21;
+      }
+    if (strcmp (results[1], "1") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: XB_CacheFlush() bad result: %s.\n",
+		   results[1]);
+	  return -22;
+      }
     sqlite3_free_table (results);
 
 /* check #3: validated */
-    sql_statement = "SELECT XB_GetFileId(xml), XB_GetParentId(xml), XB_GetTitle(xml), "
-                    "XB_GetAbstract(xml), ST_Srid(XB_GetGeometry(xml)) "
-                    "FROM test WHERE XB_IsIsoMetadata(xml) = 1";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -23;
-    }
-    if ((rows != 1) || (columns != 5)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -24;
-    }
-    if (strcmp(results[5], "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) {
-	fprintf (stderr, "Unexpected error: XB_GetFileId() bad result: %s.\n", results[5]);
-	return  -25;
-    }
-    if (strcmp(results[6], "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) {
-	fprintf (stderr, "Unexpected error: XB_GetParentId() bad result: %s.\n", results[6]);
-	return  -26;
-    }
-    if (strcmp(results[7], "Image2000 Product 1 (nl2) Multispectral") != 0) {
-	fprintf (stderr, "Unexpected error: XB_GetTitle() bad result: %s.\n", results[7]);
-	return  -27;
-    }
-    if (strcmp(results[8], "IMAGE2000 product 1 individual orthorectified scenes.") != 0) {
-	fprintf (stderr, "Unexpected error: XB_GetAbstract() bad result: %s.\n", results[8]);
-	return  -28;
-    }
-    if (strcmp(results[9], "4326") != 0) {
-	fprintf (stderr, "Unexpected error: ST_Srid(XB_Geometry()) bad result: %s.\n", results[9]);
-	return  -29;
-    }
+    sql_statement =
+	"SELECT XB_GetFileId(xml), XB_GetParentId(xml), XB_GetTitle(xml), "
+	"XB_GetAbstract(xml), ST_Srid(XB_GetGeometry(xml)) "
+	"FROM test WHERE XB_IsIsoMetadata(xml) = 1";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -23;
+      }
+    if ((rows != 1) || (columns != 5))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -24;
+      }
+    if (strcmp (results[5], "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XB_GetFileId() bad result: %s.\n",
+		   results[5]);
+	  return -25;
+      }
+    if (strcmp (results[6], "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: XB_GetParentId() bad result: %s.\n",
+		   results[6]);
+	  return -26;
+      }
+    if (strcmp (results[7], "Image2000 Product 1 (nl2) Multispectral") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XB_GetTitle() bad result: %s.\n",
+		   results[7]);
+	  return -27;
+      }
+    if (strcmp
+	(results[8],
+	 "IMAGE2000 product 1 individual orthorectified scenes.") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: XB_GetAbstract() bad result: %s.\n",
+		   results[8]);
+	  return -28;
+      }
+    if (strcmp (results[9], "4326") != 0)
+      {
+	  fprintf (stderr,
+		   "Unexpected error: ST_Srid(XB_Geometry()) bad result: %s.\n",
+		   results[9]);
+	  return -29;
+      }
     sqlite3_free_table (results);
 
 /* creating the VirtualXPath table */
-    sql_statement = "CREATE VIRTUAL TABLE test_xp USING VirtualXPath ('test', 'xml')";
+    sql_statement =
+	"CREATE VIRTUAL TABLE test_xp USING VirtualXPath ('test', 'xml')";
     ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CreateTable error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -30;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CreateTable error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -30;
+      }
 
 /* test XPAth expression #1 */
     sql_statement = "SELECT Count(*) FROM test_xp WHERE xpath_expr = '/*'";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -31;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -32;
-    }
-    if (strcmp(results[1], "5") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #1 bad result: %s.\n", results[1]);
-	return  -33;
-    }
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -31;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -32;
+      }
+    if (strcmp (results[1], "5") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #1 bad result: %s.\n",
+		   results[1]);
+	  return -33;
+      }
     sqlite3_free_table (results);
 
 /* test XPAth expression #2 */
     sql_statement = "SELECT DISTINCT a.value, b.name FROM test_xp AS a "
-                    "JOIN test AS b ON (b.id = a.pkid) "
-                    "WHERE a.xpath_expr = '//author[@lastName=\"Conrad\"]/title/text()'";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -34;
-    }
-    if ((rows != 3) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -35;
-    }
-    if (strcmp(results[0], "value") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[0]);
-	return  -36;
-    }
-    if (strcmp(results[1], "name") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[1]);
-	return  -37;
-    }
-    if (strcmp(results[2], "Lord Jim") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[2]);
-	return  -38;
-    }
-    if (strcmp(results[3], "books.xml") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[3]);
-	return  -39;
-    }
-    if (strcmp(results[4], "The Secret Agent") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[4]);
-	return  -40;
-    }
-    if (strcmp(results[6], "Heart of Darkness") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[6]);
-	return  -41;
-    }
+	"JOIN test AS b ON (b.id = a.pkid) "
+	"WHERE a.xpath_expr = '//author[@lastName=\"Conrad\"]/title/text()'";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -34;
+      }
+    if ((rows != 3) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -35;
+      }
+    if (strcmp (results[0], "value") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n",
+		   results[0]);
+	  return -36;
+      }
+    if (strcmp (results[1], "name") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n",
+		   results[1]);
+	  return -37;
+      }
+    if (strcmp (results[2], "Lord Jim") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n",
+		   results[2]);
+	  return -38;
+      }
+    if (strcmp (results[3], "books.xml") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n",
+		   results[3]);
+	  return -39;
+      }
+    if (strcmp (results[4], "The Secret Agent") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n",
+		   results[4]);
+	  return -40;
+      }
+    if (strcmp (results[6], "Heart of Darkness") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n",
+		   results[6]);
+	  return -41;
+      }
     sqlite3_free_table (results);
 
 /* test XPAth expression #3 */
     sql_statement = "SELECT value FROM test_xp WHERE xpath_expr = "
-                    "'//dflt:title[text()=\"Pulp Fiction\"]/../@lastName'";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -42;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -43;
-    }
-    if (strcmp(results[1], "Tarantino") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #3 bad result: %s.\n", results[1]);
-	return  -44;
-    }
+	"'//dflt:title[text()=\"Pulp Fiction\"]/../@lastName'";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -42;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -43;
+      }
+    if (strcmp (results[1], "Tarantino") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #3 bad result: %s.\n",
+		   results[1]);
+	  return -44;
+      }
     sqlite3_free_table (results);
 
 /* test XPAth expression #4 */
-    sql_statement = "SELECT node FROM test_xp WHERE pkid = 2 AND xpath_expr = '/*'";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -45;
-    }
-    if ((rows != 1) || (columns != 1)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -46;
-    }
-    if (strcmp(results[1], "op:Opera") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #4 bad result: %s.\n", results[1]);
-	return  -47;
-    }
+    sql_statement =
+	"SELECT node FROM test_xp WHERE pkid = 2 AND xpath_expr = '/*'";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -45;
+      }
+    if ((rows != 1) || (columns != 1))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -46;
+      }
+    if (strcmp (results[1], "op:Opera") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #4 bad result: %s.\n",
+		   results[1]);
+	  return -47;
+      }
     sqlite3_free_table (results);
 
 /* test XPAth expression #5 */
     sql_statement = "SELECT ROWID, pkid, sub, parent, attribute FROM test_xp "
-                    "WHERE pkid > 1 AND pkid < 3 AND xpath_expr = '/*'";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -48;
-    }
-    if ((rows != 1) || (columns != 5)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -49;
-    }
-    if (strcmp(results[5], "2") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[5]);
-	return  -50;
-    }
-    if (strcmp(results[6], "2") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[6]);
-	return  -51;
-    }
-    if (strcmp(results[7], "0") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[7]);
-	return  -52;
-    }
-    if (results[8] != NULL) {
-	fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[8]);
-	return  -53;
-    }
-    if (results[9] != NULL) {
-	fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[9]);
-	return  -54;
-    }
+	"WHERE pkid > 1 AND pkid < 3 AND xpath_expr = '/*'";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -48;
+      }
+    if ((rows != 1) || (columns != 5))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -49;
+      }
+    if (strcmp (results[5], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n",
+		   results[5]);
+	  return -50;
+      }
+    if (strcmp (results[6], "2") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n",
+		   results[6]);
+	  return -51;
+      }
+    if (strcmp (results[7], "0") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n",
+		   results[7]);
+	  return -52;
+      }
+    if (results[8] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n",
+		   results[8]);
+	  return -53;
+      }
+    if (results[9] != NULL)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n",
+		   results[9]);
+	  return -54;
+      }
     sqlite3_free_table (results);
 
 /* test XPAth expression #6 */
     sql_statement = "SELECT parent, attribute FROM test_xp "
-                    "WHERE pkid >= 1 AND pkid <= 3 AND "
-                    "xpath_expr = '//op:author[@lastName=\"Rossini\"]/@firstName'";
-    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -55;
-    }
-    if ((rows != 1) || (columns != 2)) {
-	fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
-	return  -56;
-    }
-    if (strcmp(results[2], "op:Opera") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", results[2]);
-	return  -57;
-    }
-    if (strcmp(results[3], "firstName") != 0) {
-	fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", results[3]);
-	return  -58;
-    }
+	"WHERE pkid >= 1 AND pkid <= 3 AND "
+	"xpath_expr = '//op:author[@lastName=\"Rossini\"]/@firstName'";
+    ret =
+	sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
+			   &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -55;
+      }
+    if ((rows != 1) || (columns != 2))
+      {
+	  fprintf (stderr,
+		   "Unexpected error: select columns bad result: %i/%i.\n",
+		   rows, columns);
+	  return -56;
+      }
+    if (strcmp (results[2], "op:Opera") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n",
+		   results[2]);
+	  return -57;
+      }
+    if (strcmp (results[3], "firstName") != 0)
+      {
+	  fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n",
+		   results[3]);
+	  return -58;
+      }
     sqlite3_free_table (results);
 
 /* dropping the VirtualXPathL table */
     sql_statement = "DROP TABLE test_xp";
     ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "Drop VirtualXPath Table error: %s\n", err_msg);
-	sqlite3_free (err_msg);
-	return -59;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "Drop VirtualXPath Table error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  return -59;
+      }
 
     sqlite3_close (db_handle);
-    spatialite_cleanup_ex(cache);
+    spatialite_cleanup_ex (cache);
 
-    xmlCleanupParser();
+#endif /* end LIBXML2 conditional */
 
-#endif	/* end LIBXML2 conditional */    
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/check_wfsin.c b/test/check_wfsin.c
index 45fbdfd..8ca90ed 100644
--- a/test/check_wfsin.c
+++ b/test/check_wfsin.c
@@ -51,11 +51,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "spatialite.h"
 #include "spatialite/gg_wfs.h"
 
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-#include <libxml/parser.h>
-#endif
-
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
     int ret;
     sqlite3 *handle;
@@ -72,550 +69,758 @@ int main (int argc, char *argv[])
     int type;
     int dims;
     int nillable;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-#ifdef ENABLE_LIBXML2	/* only if LIBXML2 is supported */
-    ret = load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs1", "objectid", 1, &row_count, &err_msg, NULL, NULL);
-    if (!ret) {
-        fprintf (stderr, "load_from_wfs() error for test.wfs (1): %s\n", err_msg);
-	free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 3) {
-	fprintf (stderr, "unexpected row count for test_wfs: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4; 
-    }
-
-    ret = load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs2", NULL, 0, &row_count, &err_msg, NULL, NULL);
-    if (!ret) {
-        fprintf (stderr, "load_from_wfs() error for test.wfs (2): %s\n", err_msg);
-	free(err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 3) {
-	fprintf (stderr, "unexpected row count for test_wfs: %i\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+#ifdef ENABLE_LIBXML2		/* only if LIBXML2 is supported */
+    ret =
+	load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs1",
+		       "objectid", 1, &row_count, &err_msg, NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_from_wfs() error for test.wfs (1): %s\n",
+		   err_msg);
+	  free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 3)
+      {
+	  fprintf (stderr, "unexpected row count for test_wfs: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs2",
+		       NULL, 0, &row_count, &err_msg, NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_from_wfs() error for test.wfs (2): %s\n",
+		   err_msg);
+	  free (err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 3)
+      {
+	  fprintf (stderr, "unexpected row count for test_wfs: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
 
     catalog = create_wfs_catalog ("./getcapabilities-1.0.0.wfs", &err_msg);
-    if (catalog == NULL) {
-        fprintf (stderr, "create_wfs_catalog() error for getcapabilities-1.0.0.wfs: %s\n", err_msg);
-	free(err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
+    if (catalog == NULL)
+      {
+	  fprintf (stderr,
+		   "create_wfs_catalog() error for getcapabilities-1.0.0.wfs: %s\n",
+		   err_msg);
+	  free (err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
 
     count = get_wfs_catalog_count (catalog);
-    if (count != 49) {
-	fprintf(stderr, "get_wfs_catalog_count() 1.0.0 error: got %d, expected 49\n", count);
-	sqlite3_close(handle);
-	return -8;
-    }
-
-    lyr = get_wfs_catalog_item(catalog, 2);
-    if (lyr == NULL) {
-	fprintf(stderr, "get_wfs_catalog_item() 1.0.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -9;
-    }
-    
-    str = (char *)get_wfs_item_name(lyr);
-    if (str == NULL) {
-	fprintf(stderr, "get_wfs_item_name() 1.0.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -10;
-    }
-    if (strcmp(str, "tiger:tiger_roads") != 0) {
-	fprintf(stderr, "get_wfs_item_name() 1.0.0 error: got \"%s\", expected \"tiger:tiger_roads\"\n", str);
-	sqlite3_close(handle);
-	return -11;
-    }
-    
-    str = (char *)get_wfs_item_title(lyr);
-    if (str == NULL) {
-	fprintf(stderr, "get_wfs_item_title() 1.0.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -12;
-    }
-    if (strcmp(str, "Manhattan (NY) roads") != 0) {
-	fprintf(stderr, "get_wfs_item_title() 1.0.0 error: got \"%s\", expected \"Manhattan (NY) roads\"\n", str);
-	sqlite3_close(handle);
-	return -13;
-    }
-    
-    str = (char *)get_wfs_item_abstract(lyr);
-    if (str == NULL) {
-	fprintf(stderr, "get_wfs_item_abstract() error (NULL)\n");
-	sqlite3_close(handle);
-	return -14;
-    }
-    if (strcmp(str, "Highly simplified road layout of Manhattan in New York..") != 0) {
-	fprintf(stderr, "get_wfs_item_abstract() 1.0.0 error: got \"%s\", expected \"Highly simplified road layout of Manhattan in New York..\"\n", str);
-	sqlite3_close(handle);
-	return -15;
-    }
+    if (count != 49)
+      {
+	  fprintf (stderr,
+		   "get_wfs_catalog_count() 1.0.0 error: got %d, expected 49\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -8;
+      }
+
+    lyr = get_wfs_catalog_item (catalog, 2);
+    if (lyr == NULL)
+      {
+	  fprintf (stderr, "get_wfs_catalog_item() 1.0.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -9;
+      }
+
+    str = (char *) get_wfs_item_name (lyr);
+    if (str == NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_name() 1.0.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -10;
+      }
+    if (strcmp (str, "tiger:tiger_roads") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_item_name() 1.0.0 error: got \"%s\", expected \"tiger:tiger_roads\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -11;
+      }
+
+    str = (char *) get_wfs_item_title (lyr);
+    if (str == NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_title() 1.0.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -12;
+      }
+    if (strcmp (str, "Manhattan (NY) roads") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_item_title() 1.0.0 error: got \"%s\", expected \"Manhattan (NY) roads\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+
+    str = (char *) get_wfs_item_abstract (lyr);
+    if (str == NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_abstract() error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    if (strcmp (str, "Highly simplified road layout of Manhattan in New York..")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_item_abstract() 1.0.0 error: got \"%s\", expected \"Highly simplified road layout of Manhattan in New York..\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -15;
+      }
 
     count = get_wfs_layer_srid_count (lyr);
-    if (count != 1) {
-	fprintf(stderr, "get_wfs_layer_srid_count() 1.0.0 error: got %d, expected 1\n", count);
-	sqlite3_close(handle);
-	return -16;
-    }
+    if (count != 1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid_count() 1.0.0 error: got %d, expected 1\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -16;
+      }
 
     srid = get_wfs_layer_srid (lyr, 0);
-    if (srid != 4326) {
-	fprintf(stderr, "get_wfs_layer_srid() 1.0.0 error: got %d, expected 4326\n", srid);
-	sqlite3_close(handle);
-	return -17;
-    }
+    if (srid != 4326)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid() 1.0.0 error: got %d, expected 4326\n",
+		   srid);
+	  sqlite3_close (handle);
+	  return -17;
+      }
 
     count = get_wfs_keyword_count (lyr);
-    if (count != 3) {
-	fprintf(stderr, "get_wfs_keyword_count() 1.0.0 error: got %d, expected 3\n", count);
-	sqlite3_close(handle);
-	return -18;
-    }
-
-    str = (char *)get_wfs_keyword (lyr, 2);
-    if (strcmp(str, "roads") != 0) {
-	fprintf(stderr, "get_wfs_keyword() 1.0.0 error: got \"%s\", expected \"roads\"\n", str);
-	sqlite3_close(handle);
-	return -19;
-    }
-
-    str = (char *)get_wfs_base_request_url (catalog);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) {
-	fprintf(stderr, "get_wfs_base_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", str);
-	sqlite3_close(handle);
-	return -20;
-    }
-
-    str = (char *)get_wfs_request_url (catalog, "sf:roads", "1.0.0", 26713, -1);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713") != 0) {
-	fprintf(stderr, "get_wfs_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713\"\n", str);
-	sqlite3_close(handle);
-	return -21;
-    }
-    free(str);
-
-    str = (char *)get_wfs_describe_url (catalog, "sf:roads", "1.0.0");
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads") != 0) {
-	fprintf(stderr, "get_wfs_describe_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str);
-	sqlite3_close(handle);
-	return -22;
-    }
-    free(str);
-    destroy_wfs_catalog(catalog);
+    if (count != 3)
+      {
+	  fprintf (stderr,
+		   "get_wfs_keyword_count() 1.0.0 error: got %d, expected 3\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -18;
+      }
+
+    str = (char *) get_wfs_keyword (lyr, 2);
+    if (strcmp (str, "roads") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_keyword() 1.0.0 error: got \"%s\", expected \"roads\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -19;
+      }
+
+    str = (char *) get_wfs_base_request_url (catalog);
+    if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_base_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -20;
+      }
+
+    str =
+	(char *) get_wfs_request_url (catalog, "sf:roads", "1.0.0", 26713, -1);
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -21;
+      }
+    free (str);
+
+    str = (char *) get_wfs_describe_url (catalog, "sf:roads", "1.0.0");
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_describe_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -22;
+      }
+    free (str);
+    destroy_wfs_catalog (catalog);
 
     catalog = create_wfs_catalog ("./getcapabilities-1.1.0.wfs", &err_msg);
-    if (catalog == NULL) {
-        fprintf (stderr, "create_wfs_catalog() error for getcapabilities-1.1.0.wfs: %s\n", err_msg);
-	free(err_msg);
-	sqlite3_close(handle);
-	return -23;
-    }
+    if (catalog == NULL)
+      {
+	  fprintf (stderr,
+		   "create_wfs_catalog() error for getcapabilities-1.1.0.wfs: %s\n",
+		   err_msg);
+	  free (err_msg);
+	  sqlite3_close (handle);
+	  return -23;
+      }
 
     count = get_wfs_catalog_count (catalog);
-    if (count != 49) {
-	fprintf(stderr, "get_wfs_catalog_count() 1.1.0 error: got %d, expected 49\n", count);
-	sqlite3_close(handle);
-	return -24;
-    }
-
-    lyr = get_wfs_catalog_item(catalog, 3);
-    if (lyr == NULL) {
-	fprintf(stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -25;
-    }
-    
-    str = (char *)get_wfs_item_name(lyr);
-    if (str == NULL) {
-	fprintf(stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -26;
-    }
-    if (strcmp(str, "sf:archsites") != 0) {
-	fprintf(stderr, "get_wfs_item_name() 1.1.0 error: got \"%s\", expected \"sf:archsites\"\n", str);
-	sqlite3_close(handle);
-	return -27;
-    }
-    
-    str = (char *)get_wfs_item_title(lyr);
-    if (str == NULL) {
-	fprintf(stderr, "get_wfs_item_title() error (NULL)\n");
-	sqlite3_close(handle);
-	return -28;
-    }
-    if (strcmp(str, "Spearfish archeological sites") != 0) {
-	fprintf(stderr, "get_wfs_item_title() 1.1.0 error: got \"%s\", expected \"Spearfish archeological sites\"\n", str);
-	sqlite3_close(handle);
-	return -29;
-    }
-    
-    str = (char *)get_wfs_item_abstract(lyr);
-    if (str == NULL) {
-	fprintf(stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -30;
-    }
-    if (strcmp(str, "Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA") != 0) {
-	fprintf(stderr, "get_wfs_item_abstract() 1.1.0 error: got \"%s\", expected \"Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA\"\n", str);
-	sqlite3_close(handle);
-	return -31;
-    }
+    if (count != 49)
+      {
+	  fprintf (stderr,
+		   "get_wfs_catalog_count() 1.1.0 error: got %d, expected 49\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -24;
+      }
+
+    lyr = get_wfs_catalog_item (catalog, 3);
+    if (lyr == NULL)
+      {
+	  fprintf (stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -25;
+      }
+
+    str = (char *) get_wfs_item_name (lyr);
+    if (str == NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -26;
+      }
+    if (strcmp (str, "sf:archsites") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_item_name() 1.1.0 error: got \"%s\", expected \"sf:archsites\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -27;
+      }
+
+    str = (char *) get_wfs_item_title (lyr);
+    if (str == NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_title() error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -28;
+      }
+    if (strcmp (str, "Spearfish archeological sites") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_item_title() 1.1.0 error: got \"%s\", expected \"Spearfish archeological sites\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -29;
+      }
+
+    str = (char *) get_wfs_item_abstract (lyr);
+    if (str == NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -30;
+      }
+    if (strcmp
+	(str,
+	 "Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_item_abstract() 1.1.0 error: got \"%s\", expected \"Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -31;
+      }
 
     count = get_wfs_layer_srid_count (lyr);
-    if (count != 1) {
-	fprintf(stderr, "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected 1\n", count);
-	sqlite3_close(handle);
-	return -32;
-    }
+    if (count != 1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected 1\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -32;
+      }
 
     srid = get_wfs_layer_srid (lyr, 0);
-    if (srid != 26713) {
-	fprintf(stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected 26713\n", srid);
-	sqlite3_close(handle);
-	return -33;
-    }
+    if (srid != 26713)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid() 1.1.0 error: got %d, expected 26713\n",
+		   srid);
+	  sqlite3_close (handle);
+	  return -33;
+      }
 
     srid = get_wfs_layer_srid (lyr, 10);
-    if (srid != -1) {
-	fprintf(stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", srid);
-	sqlite3_close(handle);
-	return -34;
-    }
+    if (srid != -1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n",
+		   srid);
+	  sqlite3_close (handle);
+	  return -34;
+      }
 
     count = get_wfs_keyword_count (lyr);
-    if (count != 4) {
-	fprintf(stderr, "get_wfs_keyword_count() 1.1.0 error: got %d, expected 4\n", count);
-	sqlite3_close(handle);
-	return -35;
-    }
-
-    str = (char *)get_wfs_keyword (lyr, 1);
-    if (strcmp(str, "spearfish") != 0) {
-	fprintf(stderr, "get_wfs_keyword() 1.1.0 error: got \"%s\", expected \"spearfish\"\n", str);
-	sqlite3_close(handle);
-	return -36;
-    }
-
-    str = (char *)get_wfs_keyword (lyr, 100);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n");
-	sqlite3_close(handle);
-	return -37;
-    }
-
-    str = (char *)get_wfs_base_request_url (catalog);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) {
-	fprintf(stderr, "get_wfs_base_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", str);
-	sqlite3_close(handle);
-	return -38;
-    }
+    if (count != 4)
+      {
+	  fprintf (stderr,
+		   "get_wfs_keyword_count() 1.1.0 error: got %d, expected 4\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -35;
+      }
+
+    str = (char *) get_wfs_keyword (lyr, 1);
+    if (strcmp (str, "spearfish") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_keyword() 1.1.0 error: got \"%s\", expected \"spearfish\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -36;
+      }
+
+    str = (char *) get_wfs_keyword (lyr, 100);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -37;
+      }
+
+    str = (char *) get_wfs_base_request_url (catalog);
+    if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_base_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -38;
+      }
 
     str = get_wfs_request_url (catalog, "sf:roads", "1.1.0", 26713, 100);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100") != 0) {
-	fprintf(stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100\"\n", str);
-	sqlite3_close(handle);
-	return -39;
-    }
-    free(str);
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -39;
+      }
+    free (str);
 
     str = get_wfs_request_url (catalog, NULL, "1.1.0", 26713, -1);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_request_url() 1.1.0 error: expected NULL\n");
-	sqlite3_close(handle);
-	return -40;
-    }
-    free(str);
+    if (str != NULL)
+      {
+	  fprintf (stderr,
+		   "get_wfs_request_url() 1.1.0 error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -40;
+      }
+    free (str);
 
     str = get_wfs_request_url (catalog, "sf:roads", NULL, -1, 100);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") != 0) {
-	fprintf(stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", str);
-	sqlite3_close(handle);
-	return -41;
-    }
-    free(str);
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -41;
+      }
+    free (str);
 
     str = get_wfs_request_url (catalog, "sf:roads", NULL, 1234, 100);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") != 0) {
-	fprintf(stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", str);
-	sqlite3_close(handle);
-	return -42;
-    }
-    free(str);
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -42;
+      }
+    free (str);
 
     str = get_wfs_describe_url (catalog, "sf:roads", "1.1.0");
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") != 0) {
-	fprintf(stderr, "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str);
-	sqlite3_close(handle);
-	return -43;
-    }
-    free(str);
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -43;
+      }
+    free (str);
 
     str = get_wfs_describe_url (catalog, NULL, "1.1.0");
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_describe_url() 1.1.0 error: : expected NULL\n");
-	sqlite3_close(handle);
-	return -44;
-    }
-    free(str);
+    if (str != NULL)
+      {
+	  fprintf (stderr,
+		   "get_wfs_describe_url() 1.1.0 error: : expected NULL\n");
+	  sqlite3_close (handle);
+	  return -44;
+      }
+    free (str);
 
     str = get_wfs_describe_url (catalog, "sf:roads", NULL);
-    if (strcmp(str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") != 0) {
-	fprintf(stderr, "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str);
-	sqlite3_close(handle);
-	return -45;
-    }
-    free(str);
-    destroy_wfs_catalog(catalog);
-
-    lyr = get_wfs_catalog_item(NULL, 3);
-    if (lyr != NULL) {
-	fprintf(stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -46;
-    }
-    
-    str = (char *)get_wfs_item_name(NULL);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -47;
-    }
-    
-    str = (char *)get_wfs_item_title(NULL);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_item_title() error (NULL)\n");
-	sqlite3_close(handle);
-	return -48;
-    }
-    
-    str = (char *)get_wfs_item_abstract(NULL);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n");
-	sqlite3_close(handle);
-	return -49;
-    }
+    if (strcmp
+	(str,
+	 "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads")
+	!= 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n",
+		   str);
+	  sqlite3_close (handle);
+	  return -45;
+      }
+    free (str);
+    destroy_wfs_catalog (catalog);
+
+    lyr = get_wfs_catalog_item (NULL, 3);
+    if (lyr != NULL)
+      {
+	  fprintf (stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -46;
+      }
+
+    str = (char *) get_wfs_item_name (NULL);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -47;
+      }
+
+    str = (char *) get_wfs_item_title (NULL);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_title() error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -48;
+      }
+
+    str = (char *) get_wfs_item_abstract (NULL);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -49;
+      }
 
     count = get_wfs_layer_srid_count (NULL);
-    if (count != -1) {
-	fprintf(stderr, "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected -1\n", count);
-	sqlite3_close(handle);
-	return -50;
-    }
+    if (count != -1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected -1\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -50;
+      }
 
     srid = get_wfs_layer_srid (NULL, 0);
-    if (srid != -1) {
-	fprintf(stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", srid);
-	sqlite3_close(handle);
-	return -51;
-    }
+    if (srid != -1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n",
+		   srid);
+	  sqlite3_close (handle);
+	  return -51;
+      }
 
     count = get_wfs_keyword_count (NULL);
-    if (count != -1) {
-	fprintf(stderr, "get_wfs_keyword_count() 1.1.0 error: got %d, expected -1\n", count);
-	sqlite3_close(handle);
-	return -52;
-    }
-
-    str = (char *)get_wfs_keyword (NULL, 1);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n");
-	sqlite3_close(handle);
-	return -53;
-    }
-
-    str = (char *)get_wfs_keyword (NULL, 100);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n");
-	sqlite3_close(handle);
-	return -54;
-    }
-
-    str = (char *)get_wfs_base_request_url (NULL);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_base_request_url() error: expected NULL\n");
-	sqlite3_close(handle);
-	return -55;
-    }
-
-    str = (char *)get_wfs_base_describe_url (NULL);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_base_describe_url() error: expected NULL\n");
-	sqlite3_close(handle);
-	return -56;
-    }
-
-    str = (char *)get_wfs_request_url (NULL, "sf:roads", "1.1.0", 26713, -1);
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_request_url() error: expected NULL\n");
-	sqlite3_close(handle);
-	return -57;
-    }
-
-    str = (char *)get_wfs_describe_url (NULL, "sf:roads", "1.1.0");
-    if (str != NULL) {
-	fprintf(stderr, "get_wfs_describe_url() error: expected NULL\n");
-	sqlite3_close(handle);
-	return -58;
-    }
-    destroy_wfs_catalog(NULL);
-
-    schema = create_wfs_schema ("./describefeaturetype.wfs", "sf:roads", &err_msg);
-    if (schema == NULL) {
-        fprintf (stderr, "create_wfs_schema() error for describefeaturetype.wfs: %s\n", err_msg);
-	free(err_msg);
-	sqlite3_close(handle);
-	return -59;
-    }
+    if (count != -1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_keyword_count() 1.1.0 error: got %d, expected -1\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -52;
+      }
+
+    str = (char *) get_wfs_keyword (NULL, 1);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -53;
+      }
+
+    str = (char *) get_wfs_keyword (NULL, 100);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -54;
+      }
+
+    str = (char *) get_wfs_base_request_url (NULL);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_base_request_url() error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -55;
+      }
+
+    str = (char *) get_wfs_base_describe_url (NULL);
+    if (str != NULL)
+      {
+	  fprintf (stderr,
+		   "get_wfs_base_describe_url() error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -56;
+      }
+
+    str = (char *) get_wfs_request_url (NULL, "sf:roads", "1.1.0", 26713, -1);
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_request_url() error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -57;
+      }
+
+    str = (char *) get_wfs_describe_url (NULL, "sf:roads", "1.1.0");
+    if (str != NULL)
+      {
+	  fprintf (stderr, "get_wfs_describe_url() error: expected NULL\n");
+	  sqlite3_close (handle);
+	  return -58;
+      }
+    destroy_wfs_catalog (NULL);
+
+    schema =
+	create_wfs_schema ("./describefeaturetype.wfs", "sf:roads", &err_msg);
+    if (schema == NULL)
+      {
+	  fprintf (stderr,
+		   "create_wfs_schema() error for describefeaturetype.wfs: %s\n",
+		   err_msg);
+	  free (err_msg);
+	  sqlite3_close (handle);
+	  return -59;
+      }
 
     count = get_wfs_schema_column_count (schema);
-    if (count != 8) {
-	fprintf(stderr, "get_wfs_schema_column_count() error: got %d, expected 8\n", count);
-	sqlite3_close(handle);
-	return -60;
-    }
-
-    column = get_wfs_schema_column(schema, 5);
-    if (column == NULL) {
-	fprintf(stderr, "get_wfs_schema_column() error (NULL)\n");
-	sqlite3_close(handle);
-	return -61;
-    }
-
-    if (get_wfs_schema_column_info(column, &name, &type, &nillable) == 0) {
-	fprintf(stderr, "get_wfs_schema_column_info() error\n");
-	sqlite3_close(handle);
-	return -62;
-    }
-
-    if (strcmp(name, "codcom") != 0) {
-	fprintf(stderr, "get_wfs_schema_column_info() NAME error: got \"%s\", expected \"codcom\"\n", name);
-	sqlite3_close(handle);
-	return -63;
-    }
-
-    if (type != SQLITE_TEXT) {
-	fprintf(stderr, "get_wfs_schema_column_info() TYPE error: got %d, expected %d\n", type, SQLITE_TEXT);
-	sqlite3_close(handle);
-	return -64;
-    }
-
-    if (nillable == 0) {
-	fprintf(stderr, "get_wfs_schema_column_info() NILLABLE error: got %d, expected 1\n", nillable);
-	sqlite3_close(handle);
-	return -65;
-    }
-
-    if (get_wfs_schema_geometry_info(schema, &name, &type, &srid, &dims, &nillable) == 0) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() error\n");
-	sqlite3_close(handle);
-	return -66;
-    }
-
-    if (strcmp(name, "geometry") != 0) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() NAME error: got \"%s\", expected \"geometry\"\n", name);
-	sqlite3_close(handle);
-	return -67;
-    }
-
-    if (type != GAIA_MULTIPOLYGON) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() TYPE error: got %d, expected %d\n", type, GAIA_MULTIPOLYGON);
-	sqlite3_close(handle);
-	return -68;
-    }
-
-    if (srid != -1) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() TYPE error: got %d, expected -1\n", srid);
-	sqlite3_close(handle);
-	return -69;
-    }
-
-    if (dims != 2) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() DIMS error: got %d, expected 2\n", dims);
-	sqlite3_close(handle);
-	return -70;
-    }
-
-    if (nillable == 0) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() NILLABLE error: got %d, expected 1\n", nillable);
-	sqlite3_close(handle);
-	return -71;
-    }
+    if (count != 8)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column_count() error: got %d, expected 8\n",
+		   count);
+	  sqlite3_close (handle);
+	  return -60;
+      }
+
+    column = get_wfs_schema_column (schema, 5);
+    if (column == NULL)
+      {
+	  fprintf (stderr, "get_wfs_schema_column() error (NULL)\n");
+	  sqlite3_close (handle);
+	  return -61;
+      }
+
+    if (get_wfs_schema_column_info (column, &name, &type, &nillable) == 0)
+      {
+	  fprintf (stderr, "get_wfs_schema_column_info() error\n");
+	  sqlite3_close (handle);
+	  return -62;
+      }
+
+    if (strcmp (name, "codcom") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column_info() NAME error: got \"%s\", expected \"codcom\"\n",
+		   name);
+	  sqlite3_close (handle);
+	  return -63;
+      }
+
+    if (type != SQLITE_TEXT)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column_info() TYPE error: got %d, expected %d\n",
+		   type, SQLITE_TEXT);
+	  sqlite3_close (handle);
+	  return -64;
+      }
+
+    if (nillable == 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column_info() NILLABLE error: got %d, expected 1\n",
+		   nillable);
+	  sqlite3_close (handle);
+	  return -65;
+      }
+
+    if (get_wfs_schema_geometry_info
+	(schema, &name, &type, &srid, &dims, &nillable) == 0)
+      {
+	  fprintf (stderr, "get_wfs_schema_geometry_info() error\n");
+	  sqlite3_close (handle);
+	  return -66;
+      }
+
+    if (strcmp (name, "geometry") != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_geometry_info() NAME error: got \"%s\", expected \"geometry\"\n",
+		   name);
+	  sqlite3_close (handle);
+	  return -67;
+      }
+
+    if (type != GAIA_MULTIPOLYGON)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_geometry_info() TYPE error: got %d, expected %d\n",
+		   type, GAIA_MULTIPOLYGON);
+	  sqlite3_close (handle);
+	  return -68;
+      }
+
+    if (srid != -1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_geometry_info() TYPE error: got %d, expected -1\n",
+		   srid);
+	  sqlite3_close (handle);
+	  return -69;
+      }
+
+    if (dims != 2)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_geometry_info() DIMS error: got %d, expected 2\n",
+		   dims);
+	  sqlite3_close (handle);
+	  return -70;
+      }
+
+    if (nillable == 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_geometry_info() NILLABLE error: got %d, expected 1\n",
+		   nillable);
+	  sqlite3_close (handle);
+	  return -71;
+      }
     destroy_wfs_schema (schema);
 
     schema = create_wfs_schema (NULL, NULL, &err_msg);
-    if (schema != NULL) {
-        fprintf (stderr, "create_wfs_schema() unexpected result for NULL\n");
-	free(err_msg);
-	sqlite3_close(handle);
-	return -72;
-    }
+    if (schema != NULL)
+      {
+	  fprintf (stderr, "create_wfs_schema() unexpected result for NULL\n");
+	  free (err_msg);
+	  sqlite3_close (handle);
+	  return -72;
+      }
 
     count = get_wfs_schema_column_count (NULL);
-    if (count != -1) {
-	fprintf(stderr, "get_wfs_schema_column_count() unexpected result for NULL\n");
-	sqlite3_close(handle);
-	return -73;
-    }
-
-    column = get_wfs_schema_column(NULL, 5);
-    if (column != NULL) {
-	fprintf(stderr, "get_wfs_schema_column() unexpected result for NULL\n");
-	sqlite3_close(handle);
-	return -74;
-    }
-
-    if (get_wfs_schema_column_info(NULL, &name, &type, &nillable) != 0) {
-	fprintf(stderr, "get_wfs_schema_column_info() unexpected result for NULL\n");
-	sqlite3_close(handle);
-	return -75;
-    }
-
-    if (get_wfs_schema_geometry_info(NULL, &name, &type, &srid, &dims, &nillable) != 0) {
-	fprintf(stderr, "get_wfs_schema_geometry_info() unexpected result for NULL\n");
-	sqlite3_close(handle);
-	return -76;
-    }
+    if (count != -1)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column_count() unexpected result for NULL\n");
+	  sqlite3_close (handle);
+	  return -73;
+      }
+
+    column = get_wfs_schema_column (NULL, 5);
+    if (column != NULL)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column() unexpected result for NULL\n");
+	  sqlite3_close (handle);
+	  return -74;
+      }
+
+    if (get_wfs_schema_column_info (NULL, &name, &type, &nillable) != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_column_info() unexpected result for NULL\n");
+	  sqlite3_close (handle);
+	  return -75;
+      }
+
+    if (get_wfs_schema_geometry_info
+	(NULL, &name, &type, &srid, &dims, &nillable) != 0)
+      {
+	  fprintf (stderr,
+		   "get_wfs_schema_geometry_info() unexpected result for NULL\n");
+	  sqlite3_close (handle);
+	  return -76;
+      }
     destroy_wfs_schema (NULL);
 
-    xmlCleanupParser();
-
-#endif	/* end LIBXML2 conditional */
+#endif /* end LIBXML2 conditional */
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -77;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -77;
+      }
+
     spatialite_cleanup_ex (cache);
+    spatialite_shutdown ();
 
     return 0;
 }
diff --git a/test/check_xls_load.c b/test/check_xls_load.c
index e594f88..d1cad77 100644
--- a/test/check_xls_load.c
+++ b/test/check_xls_load.c
@@ -50,7 +50,8 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
 #ifndef OMIT_FREEXL		/* only if FreeXL is supported */
     int ret;
@@ -58,78 +59,101 @@ int main (int argc, char *argv[])
     char *err_msg = NULL;
     unsigned int row_count;
     int rcnt;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory db: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-
-    ret = load_XL (handle, "./testcase1.xls", "test1", 0, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_XL() error: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 17) {
-	fprintf (stderr, "load_XL() unexpected row count: %u\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_XL (handle, "./testcase1.xls", "test2", 1, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_XL() error sheet 2: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 19) {
-	fprintf (stderr, "load_XL() unexpected row count sheet 2: %u\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	load_XL (handle, "./testcase1.xls", "test1", 0, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_XL() error: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 17)
+      {
+	  fprintf (stderr, "load_XL() unexpected row count: %u\n", row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_XL (handle, "./testcase1.xls", "test2", 1, 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_XL() error sheet 2: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 19)
+      {
+	  fprintf (stderr, "load_XL() unexpected row count sheet 2: %u\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
 
     check_duplicated_rows (handle, "test1", &rcnt);
-    if (rcnt != 0) {
-	fprintf (stderr, "check_duplicated_rows() unexpected duplicate count: %d\n", rcnt);
-	sqlite3_close(handle);
-	return -8;
-    }
+    if (rcnt != 0)
+      {
+	  fprintf (stderr,
+		   "check_duplicated_rows() unexpected duplicate count: %d\n",
+		   rcnt);
+	  sqlite3_close (handle);
+	  return -8;
+      }
 
     check_duplicated_rows (handle, "test2", &rcnt);
-    if (rcnt != 2) {
-	fprintf (stderr, "check_duplicated_rows() unexpected duplicate count sheet 2: %d\n", rcnt);
-	sqlite3_close(handle);
-	return -10;
-    }
+    if (rcnt != 2)
+      {
+	  fprintf (stderr,
+		   "check_duplicated_rows() unexpected duplicate count sheet 2: %d\n",
+		   rcnt);
+	  sqlite3_close (handle);
+	  return -10;
+      }
 
     remove_duplicated_rows (handle, "test1");
 
     remove_duplicated_rows (handle, "test2");
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -11;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -11;
+      }
+
     spatialite_cleanup_ex (cache);
-#endif	/* end FreeXL conditional */
+#endif /* end FreeXL conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/fnmatch_impl4win.h b/test/fnmatch_impl4win.h
index 31184d6..56bfa70 100644
--- a/test/fnmatch_impl4win.h
+++ b/test/fnmatch_impl4win.h
@@ -48,146 +48,151 @@ static char sccsid[] = "@(#)fnmatch.c   8.2 (Berkeley) 4/16/94";
 
 #define EOS     '\0'
 
-static const char *rangematch(const char *, char, int);
+static const char *rangematch (const char *, char, int);
 
-int fnmatch(const char *pattern, const char *string, int flags)
+int
+fnmatch (const char *pattern, const char *string, int flags)
 {
-        const char *stringstart;
-        char c, test;
-
-        for (stringstart = string;;)
-                switch (c = *pattern++) {
-                case EOS:
-                        if ((flags & FNM_LEADING_DIR) && *string == '/')
-                                return (0);
-                        return (*string == EOS ? 0 : FNM_NOMATCH);
-                case '?':
-                        if (*string == EOS)
-                                return (FNM_NOMATCH);
-                        if (*string == '/' && (flags & FNM_PATHNAME))
-                                return (FNM_NOMATCH);
-                        if (*string == '.' && (flags & FNM_PERIOD) &&
-                            (string == stringstart ||
-                            ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
-                                return (FNM_NOMATCH);
-                        ++string;
-                        break;
-                case '*':
-                        c = *pattern;
-                        /* Collapse multiple stars. */
-                        while (c == '*')
-                                c = *++pattern;
-
-                        if (*string == '.' && (flags & FNM_PERIOD) &&
-                            (string == stringstart ||
-                            ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
-                                return (FNM_NOMATCH);
-
-                        /* Optimize for pattern with * at end or before /. */
-                        if (c == EOS)
-                                if (flags & FNM_PATHNAME)
-                                        return ((flags & FNM_LEADING_DIR) ||
-                                            strchr(string, '/') == NULL ?
-                                            0 : FNM_NOMATCH);
-                                else
-                                        return (0);
-                        else if (c == '/' && flags & FNM_PATHNAME) {
-                                if ((string = strchr(string, '/')) == NULL)
-                                        return (FNM_NOMATCH);
-                                break;
-                        }
-
-                        /* General case, use recursion. */
-                        while ((test = *string) != EOS) {
-                                if (!fnmatch(pattern, string, flags & ~FNM_PERIOD))
-                                        return (0);
-                                if (test == '/' && flags & FNM_PATHNAME)
-                                        break;
-                                ++string;
-                        }
-                        return (FNM_NOMATCH);
-                case '[':
-                        if (*string == EOS)
-                                return (FNM_NOMATCH);
-                        if (*string == '/' && flags & FNM_PATHNAME)
-                                return (FNM_NOMATCH);
-                        if ((pattern =
-                            rangematch(pattern, *string, flags)) == NULL)
-                                return (FNM_NOMATCH);
-                        ++string;
-                        break;
-                case '\\':
-                        if (!(flags & FNM_NOESCAPE)) {
-                                if ((c = *pattern++) == EOS) {
-                                        c = '\\';
-                                        --pattern;
-                                }
-                        }
-                        /* FALLTHROUGH */
-                default:
-                        if (c == *string)
-                                ;
-                        else if ((flags & FNM_CASEFOLD) &&
-                                 (tolower((unsigned char)c) ==
-                                  tolower((unsigned char)*string)))
-                                ;
-                        else if ((flags & FNM_PREFIX_DIRS) && *string == EOS &&
-                             (c == '/' && string != stringstart ||
-                             string == stringstart+1 && *stringstart == '/') )
-                                return (0);
-                        else
-                                return (FNM_NOMATCH);
-                        string++;
-                        break;
-                }
-        /* NOTREACHED */
+    const char *stringstart;
+    char c, test;
+
+    for (stringstart = string;;)
+	switch (c = *pattern++)
+	  {
+	  case EOS:
+	      if ((flags & FNM_LEADING_DIR) && *string == '/')
+		  return (0);
+	      return (*string == EOS ? 0 : FNM_NOMATCH);
+	  case '?':
+	      if (*string == EOS)
+		  return (FNM_NOMATCH);
+	      if (*string == '/' && (flags & FNM_PATHNAME))
+		  return (FNM_NOMATCH);
+	      if (*string == '.' && (flags & FNM_PERIOD) &&
+		  (string == stringstart ||
+		   ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
+		  return (FNM_NOMATCH);
+	      ++string;
+	      break;
+	  case '*':
+	      c = *pattern;
+	      /* Collapse multiple stars. */
+	      while (c == '*')
+		  c = *++pattern;
+
+	      if (*string == '.' && (flags & FNM_PERIOD) &&
+		  (string == stringstart ||
+		   ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
+		  return (FNM_NOMATCH);
+
+	      /* Optimize for pattern with * at end or before /. */
+	      if (c == EOS)
+		  if (flags & FNM_PATHNAME)
+		      return ((flags & FNM_LEADING_DIR) ||
+			      strchr (string, '/') == NULL ? 0 : FNM_NOMATCH);
+		  else
+		      return (0);
+	      else if (c == '/' && flags & FNM_PATHNAME)
+		{
+		    if ((string = strchr (string, '/')) == NULL)
+			return (FNM_NOMATCH);
+		    break;
+		}
+
+	      /* General case, use recursion. */
+	      while ((test = *string) != EOS)
+		{
+		    if (!fnmatch (pattern, string, flags & ~FNM_PERIOD))
+			return (0);
+		    if (test == '/' && flags & FNM_PATHNAME)
+			break;
+		    ++string;
+		}
+	      return (FNM_NOMATCH);
+	  case '[':
+	      if (*string == EOS)
+		  return (FNM_NOMATCH);
+	      if (*string == '/' && flags & FNM_PATHNAME)
+		  return (FNM_NOMATCH);
+	      if ((pattern = rangematch (pattern, *string, flags)) == NULL)
+		  return (FNM_NOMATCH);
+	      ++string;
+	      break;
+	  case '\\':
+	      if (!(flags & FNM_NOESCAPE))
+		{
+		    if ((c = *pattern++) == EOS)
+		      {
+			  c = '\\';
+			  --pattern;
+		      }
+		}
+	      /* FALLTHROUGH */
+	  default:
+	      if (c == *string)
+		  ;
+	      else if ((flags & FNM_CASEFOLD) &&
+		       (tolower ((unsigned char) c) ==
+			tolower ((unsigned char) *string)))
+		  ;
+	      else if ((flags & FNM_PREFIX_DIRS) && *string == EOS &&
+		       (c == '/' && string != stringstart ||
+			string == stringstart + 1 && *stringstart == '/'))
+		  return (0);
+	      else
+		  return (FNM_NOMATCH);
+	      string++;
+	      break;
+	  }
+    /* NOTREACHED */
 }
 
 static const char *
-rangematch(const char *pattern, char test, int flags)
+rangematch (const char *pattern, char test, int flags)
 {
-        int negate, ok;
-        char c, c2;
-
-        /*
-         * A bracket expression starting with an unquoted circumflex
-         * character produces unspecified results (IEEE 1003.2-1992,
-         * 3.13.2).  This implementation treats it like '!', for
-         * consistency with the regular expression syntax.
-         * J.T. Conklin (conklin at ngai.kaleida.com)
-         */
-        if ( (negate = (*pattern == '!' || *pattern == '^')) )
-                ++pattern;
-
-        if (flags & FNM_CASEFOLD)
-                test = tolower((unsigned char)test);
-
-        for (ok = 0; (c = *pattern++) != ']';) {
-                if (c == '\\' && !(flags & FNM_NOESCAPE))
-                        c = *pattern++;
-                if (c == EOS)
-                        return (NULL);
-
-                if (flags & FNM_CASEFOLD)
-                        c = tolower((unsigned char)c);
-
-                if (*pattern == '-'
-                    && (c2 = *(pattern+1)) != EOS && c2 != ']') {
-                        pattern += 2;
-                        if (c2 == '\\' && !(flags & FNM_NOESCAPE))
-                                c2 = *pattern++;
-                        if (c2 == EOS)
-                                return (NULL);
-
-                        if (flags & FNM_CASEFOLD)
-                                c2 = tolower((unsigned char)c2);
-
-                        if ((unsigned char)c <= (unsigned char)test &&
-                            (unsigned char)test <= (unsigned char)c2)
-                                ok = 1;
-                } else if (c == test)
-                        ok = 1;
-        }
-        return (ok == negate ? NULL : pattern);
+    int negate, ok;
+    char c, c2;
+
+    /*
+     * A bracket expression starting with an unquoted circumflex
+     * character produces unspecified results (IEEE 1003.2-1992,
+     * 3.13.2).  This implementation treats it like '!', for
+     * consistency with the regular expression syntax.
+     * J.T. Conklin (conklin at ngai.kaleida.com)
+     */
+    if ((negate = (*pattern == '!' || *pattern == '^')))
+	++pattern;
+
+    if (flags & FNM_CASEFOLD)
+	test = tolower ((unsigned char) test);
+
+    for (ok = 0; (c = *pattern++) != ']';)
+      {
+	  if (c == '\\' && !(flags & FNM_NOESCAPE))
+	      c = *pattern++;
+	  if (c == EOS)
+	      return (NULL);
+
+	  if (flags & FNM_CASEFOLD)
+	      c = tolower ((unsigned char) c);
+
+	  if (*pattern == '-' && (c2 = *(pattern + 1)) != EOS && c2 != ']')
+	    {
+		pattern += 2;
+		if (c2 == '\\' && !(flags & FNM_NOESCAPE))
+		    c2 = *pattern++;
+		if (c2 == EOS)
+		    return (NULL);
+
+		if (flags & FNM_CASEFOLD)
+		    c2 = tolower ((unsigned char) c2);
+
+		if ((unsigned char) c <= (unsigned char) test &&
+		    (unsigned char) test <= (unsigned char) c2)
+		    ok = 1;
+	    }
+	  else if (c == test)
+	      ok = 1;
+      }
+    return (ok == negate ? NULL : pattern);
 }
-
diff --git a/test/gpkg_test.gpkg b/test/gpkg_test.gpkg
new file mode 100644
index 0000000..78a04af
Binary files /dev/null and b/test/gpkg_test.gpkg differ
diff --git a/test/gpkg_test.sqlite b/test/gpkg_test.sqlite
new file mode 100644
index 0000000..f06aa5c
Binary files /dev/null and b/test/gpkg_test.sqlite differ
diff --git a/test/raster_se.xml b/test/raster_se.xml
index 32c3e86..bdb85d9 100644
--- a/test/raster_se.xml
+++ b/test/raster_se.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
+  <Name>SLD raster - basic test</Name>
   <NamedLayer>
     <Name>raster - basic test</Name>
     <UserStyle>
diff --git a/test/shape_3d.c b/test/shape_3d.c
index 1179ac8..efc8bf5 100644
--- a/test/shape_3d.c
+++ b/test/shape_3d.c
@@ -51,140 +51,192 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-void cleanup_shapefile(const char *filename)
+void
+cleanup_shapefile (const char *filename)
 {
     char nam[1000];
-    
-    if (!filename) {
-	return;
-    }
-    
-    snprintf(nam, 1000, "%s.dbf", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.prj", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shp", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shx", filename);
-    unlink(nam);
+
+    if (!filename)
+      {
+	  return;
+      }
+
+    snprintf (nam, 1000, "%s.dbf", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.prj", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shp", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shx", filename);
+    unlink (nam);
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
-    char *dumpname = __FILE__"dump";
+    char *dumpname = __FILE__ "dump";
     char *err_msg = NULL;
     int row_count;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = load_shapefile (handle, "./shp/merano-3d/points", "points", "CP1252", 25832, 
-			  "col1", 0, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/merano-3d/points: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 20) {
-	fprintf (stderr, "unexpected row count for shp/merano-3d/points: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_shapefile (handle, "./shp/merano-3d/polygons", "polygons", "CP1252", 25832, 
-			  "col1", 0, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/merano-3d/polygons: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 10) {
-	fprintf (stderr, "unexpected row count for shp/merano-3d/polygons: %i\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
-
-    ret = load_shapefile (handle, "./shp/merano-3d/roads", "roads", "CP1252", 25832, 
-			  "col1", 0, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/merano-3d/roads: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (row_count != 18) {
-	fprintf (stderr, "unexpected row count for shp/merano-3d/roads: %i\n", row_count);
-	sqlite3_close(handle);
-	return -8;
-    }
-
-    ret = dump_shapefile (handle, "roads", "col1", dumpname, "CP1252", "LINESTRING", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for 3d roads: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -9;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 18) {
-	fprintf (stderr, "unexpected row count for 3d roads: %i\n", row_count);
-	sqlite3_close(handle);
-	return -10;
-    }
-
-    ret = dump_shapefile (handle, "polygons", "col1", dumpname, "CP1252", "POLYGON", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for 3d polygons: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -11;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 10) {
-	fprintf (stderr, "unexpected row count for 3d polygons: %i\n", row_count);
-	sqlite3_close(handle);
-	return -12;
-    }
-
-    ret = dump_shapefile (handle, "points", "col1", dumpname, "CP1252", "POINT", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for 3d points: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -13;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 20) {
-	fprintf (stderr, "unexpected row count for 3d points: %i\n", row_count);
-	sqlite3_close(handle);
-	return -14;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/merano-3d/points", "points", "CP1252",
+			25832, "col1", 0, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/merano-3d/points: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 20)
+      {
+	  fprintf (stderr,
+		   "unexpected row count for shp/merano-3d/points: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/merano-3d/polygons", "polygons",
+			"CP1252", 25832, "col1", 0, 0, 1, 0, &row_count,
+			err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/merano-3d/polygons: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 10)
+      {
+	  fprintf (stderr,
+		   "unexpected row count for shp/merano-3d/polygons: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/merano-3d/roads", "roads", "CP1252",
+			25832, "col1", 0, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/merano-3d/roads: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (row_count != 18)
+      {
+	  fprintf (stderr, "unexpected row count for shp/merano-3d/roads: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -8;
+      }
+
+    ret =
+	dump_shapefile (handle, "roads", "col1", dumpname, "CP1252",
+			"LINESTRING", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for 3d roads: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -9;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 18)
+      {
+	  fprintf (stderr, "unexpected row count for 3d roads: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+
+    ret =
+	dump_shapefile (handle, "polygons", "col1", dumpname, "CP1252",
+			"POLYGON", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for 3d polygons: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -11;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 10)
+      {
+	  fprintf (stderr, "unexpected row count for 3d polygons: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -12;
+      }
+
+    ret =
+	dump_shapefile (handle, "points", "col1", dumpname, "CP1252", "POINT",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for 3d points: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 20)
+      {
+	  fprintf (stderr, "unexpected row count for 3d points: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -14;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -15;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -15;
+      }
+
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
-    
+#endif /* end ICONV conditional */
+
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/shape_cp1252.c b/test/shape_cp1252.c
index 3e9e93b..a65efb8 100644
--- a/test/shape_cp1252.c
+++ b/test/shape_cp1252.c
@@ -51,91 +51,127 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
-    char *dbfname = __FILE__"test.dbf";
+    char *dbfname = __FILE__ "test.dbf";
     char *err_msg = NULL;
     int row_count;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = load_shapefile (handle, "./shp/new-caledonia/points", "points", "CP1252", 4326, 
-			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/new-caledonia/points: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 10) {
-	fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_shapefile (handle, "./shp/new-caledonia/railways", "railways", "CP1252", 4326, 
-			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/new-caledonia/railways: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 13) {
-	fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
-
-    ret = load_shapefile (handle, "./shp/new-caledonia/buildings", "buildings", "CP1252", 4326, 
-			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/new-caledonia/buildings: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (row_count != 10) {
-	fprintf (stderr, "unexpected row count for shp/new-caledonia/buildings: %i\n", row_count);
-	sqlite3_close(handle);
-	return -8;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/new-caledonia/points", "points",
+			"CP1252", 4326, "col1", 1, 0, 1, 0, &row_count,
+			err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/new-caledonia/points: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 10)
+      {
+	  fprintf (stderr,
+		   "unexpected row count for shp/new-caledonia/points: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/new-caledonia/railways", "railways",
+			"CP1252", 4326, "col1", 1, 0, 1, 0, &row_count,
+			err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/new-caledonia/railways: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 13)
+      {
+	  fprintf (stderr,
+		   "unexpected row count for shp/new-caledonia/points: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/new-caledonia/buildings", "buildings",
+			"CP1252", 4326, "col1", 1, 0, 1, 0, &row_count,
+			err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/new-caledonia/buildings: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (row_count != 10)
+      {
+	  fprintf (stderr,
+		   "unexpected row count for shp/new-caledonia/buildings: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -8;
+      }
 
     ret = dump_dbf (handle, "points", dbfname, "CP1252", err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -9;
-    }
-    unlink(dbfname);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg);
+	  sqlite3_close (handle);
+	  return -9;
+      }
+    unlink (dbfname);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -9;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -9;
+      }
+
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/shape_primitives.c b/test/shape_primitives.c
index ece75ff..4d418d2 100644
--- a/test/shape_primitives.c
+++ b/test/shape_primitives.c
@@ -52,697 +52,1046 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-void cleanup_shapefile(const char *filename)
+void
+cleanup_shapefile (const char *filename)
 {
     char nam[1000];
-    
-    if (!filename) {
-	return;
-    }
-    
-    snprintf(nam, 1000, "%s.dbf", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.prj", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shp", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shx", filename);
-    unlink(nam);
+
+    if (!filename)
+      {
+	  return;
+      }
+
+    snprintf (nam, 1000, "%s.dbf", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.prj", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shp", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shx", filename);
+    unlink (nam);
 }
 
-int do_test(sqlite3 *handle)
+int
+do_test (sqlite3 * handle)
 {
 /* testing some DB */
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
-    char *dumpname = __FILE__"dump";
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
+    char *dumpname = __FILE__ "dump";
     char *err_msg = NULL;
     int row_count;
     int ret;
     gaiaVectorLayersListPtr list;
-	
-    ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POINT XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -4;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    
-    ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "POINT", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -6;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7; /* dupe */
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomM', 4326, 'POINT', 'XYM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POINT XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -8;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomM) VALUES ('Point 2', 'Some pointM', GeomFromText('POINTM(136 -33 26.7)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POINT XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -9;
-    }
-    
-    ret = dump_shapefile (handle, "Point_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POINT XYM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -10;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXY', 4326, 'POINT', 'XY', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POINT XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -11;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXY) VALUES ('Point 3', 'Some point', GeomFromText('POINT(136 -33)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POINT XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -12;
-    }
-    
-    ret = dump_shapefile (handle, "Point_Test", "geomXY", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POINT XY: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -13;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXYZM', 4326, 'POINT', 'XYZM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POINT XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -14;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXYZM) VALUES ('Point 4', 'Some pointXYZM', GeomFromText('POINT(136 -33 424 233.2)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POINT XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -15;
-    }
-    
-    ret = dump_shapefile (handle, "Point_Test", "geomXYZM", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POINT XYZM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -16;
-    }
-    cleanup_shapefile(dumpname);
-    
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE Point_Test (Name TEXT, Description TEXT)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POINT XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+
+    ret =
+	dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8",
+			"POINT", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8",
+			"MULTIPOINT", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "", 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;		/* dupe */
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Point_Test', 'geomM', 4326, 'POINT', 'XYM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POINT XYM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -8;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Point_Test (Name, Description, geomM) VALUES ('Point 2', 'Some pointM', GeomFromText('POINTM(136 -33 26.7)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POINT XYM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -9;
+      }
+
+    ret =
+	dump_shapefile (handle, "Point_Test", "geomM", dumpname, "UTF-8", "", 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POINT XYM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Point_Test', 'geomXY', 4326, 'POINT', 'XY', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POINT XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -11;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Point_Test (Name, Description, geomXY) VALUES ('Point 3', 'Some point', GeomFromText('POINT(136 -33)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POINT XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -12;
+      }
+
+    ret =
+	dump_shapefile (handle, "Point_Test", "geomXY", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POINT XY: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Point_Test', 'geomXYZM', 4326, 'POINT', 'XYZM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POINT XYZM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Point_Test (Name, Description, geomXYZM) VALUES ('Point 4', 'Some pointXYZM', GeomFromText('POINT(136 -33 424 233.2)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POINT XYZM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
+
+    ret =
+	dump_shapefile (handle, "Point_Test", "geomXYZM", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POINT XYZM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
+    cleanup_shapefile (dumpname);
+
     ret = sqlite3_exec (handle, "DROP TABLE Point_Test", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE Point_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -20;
-    }
-    
-    ret = sqlite3_exec (handle, "CREATE TABLE MPoint_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE MPoint_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -21;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geom', 4326, 'MULTIPOINT', 'XY', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn MPOINT XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -22;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geom) VALUES ('Point 1', 'Some point', GeomFromText('MULTIPOINT(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT MPOINT XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -23;
-    }
-    
-    ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -24;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -25;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomZ', 4326, 'MULTIPOINT', 'XYZ', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn MPOINT XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -26;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some pointZ', GeomFromText('MULTIPOINTZ(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT MPOINT XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -27;
-    }
-    
-    ret = dump_shapefile (handle, "MPoint_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for MPOINT XYZ: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -28;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomM', 4326, 'MULTIPOINT', 'XYM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn MPOINT XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -29;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomM) VALUES ('Point 3', 'Some pointM', GeomFromText('MULTIPOINTM(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT MPOINT XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -30;
-    }
-    
-    ret = dump_shapefile (handle, "MPoint_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for MPOINT XYM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -31;
-    }
-    cleanup_shapefile(dumpname);
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomMZ', 4326, 'MULTIPOINT', 'XYZM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn MPOINT XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -32;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomMZ) VALUES ('Point 4', 'Some pointMZ', GeomFromText('MULTIPOINTMZ(136 -33 1 4.2, 47 2 2.3 1, -20, 12 3 -2)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT MPOINT XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -33;
-    }
-    
-    ret = dump_shapefile (handle, "MPoint_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for MPOINT XYZM %s\n", err_msg);
-	sqlite3_close(handle);
-	return -34;
-    }
-    cleanup_shapefile(dumpname);
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE Point_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -20;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE MPoint_Test (Name TEXT, Description TEXT)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE MPoint_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -21;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('MPoint_Test', 'geom', 4326, 'MULTIPOINT', 'XY', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn MPOINT XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -22;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO MPoint_Test (Name, Description, geom) VALUES ('Point 1', 'Some point', GeomFromText('MULTIPOINT(136 -33, 47 2, -20, 12)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT MPOINT XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -23;
+      }
+
+    ret =
+	dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8",
+			"MULTIPOINT", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -24;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "", 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -25;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('MPoint_Test', 'geomZ', 4326, 'MULTIPOINT', 'XYZ', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn MPOINT XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -26;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO MPoint_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some pointZ', GeomFromText('MULTIPOINTZ(136 -33 1, 47 2 2, -20, 12 3)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT MPOINT XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -27;
+      }
+
+    ret =
+	dump_shapefile (handle, "MPoint_Test", "geomZ", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for MPOINT XYZ: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -28;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('MPoint_Test', 'geomM', 4326, 'MULTIPOINT', 'XYM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn MPOINT XYM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -29;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO MPoint_Test (Name, Description, geomM) VALUES ('Point 3', 'Some pointM', GeomFromText('MULTIPOINTM(136 -33 1, 47 2 2, -20, 12 3)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT MPOINT XYM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -30;
+      }
+
+    ret =
+	dump_shapefile (handle, "MPoint_Test", "geomM", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for MPOINT XYM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -31;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('MPoint_Test', 'geomMZ', 4326, 'MULTIPOINT', 'XYZM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn MPOINT XYZM error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -32;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO MPoint_Test (Name, Description, geomMZ) VALUES ('Point 4', 'Some pointMZ', GeomFromText('MULTIPOINTMZ(136 -33 1 4.2, 47 2 2.3 1, -20, 12 3 -2)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT MPOINT XYZM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -33;
+      }
+
+    ret =
+	dump_shapefile (handle, "MPoint_Test", "geomMZ", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for MPOINT XYZM %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -34;
+      }
+    cleanup_shapefile (dumpname);
+
     ret = sqlite3_exec (handle, "DROP TABLE MPoint_Test", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE MPoint_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -35;
-    }
-    
-    ret = sqlite3_exec (handle, "CREATE TABLE Linestring_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE Linestring_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -36;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geom', 4326, 'LINESTRING', 'XY', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn LINESTRING XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -37;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geom) VALUES ('Point 1', 'Some linestring', GeomFromText('LINESTRING(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT LINESTRING XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -38;
-    }
-    
-    ret = dump_shapefile (handle, "Linestring_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for LINESTRING XY: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -39;
-    }
-    cleanup_shapefile(dumpname);
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomZ', 4326, 'LINESTRING', 'XYZ', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn LINESTRING XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -40;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some linestringZ', GeomFromText('LINESTRINGZ(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT LINESTRING XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -41;
-    }
-    
-    ret = dump_shapefile (handle, "Linestring_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for LINESTRING XYZ: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -42;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomM', 4326, 'LINESTRING', 'XYM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn LINESTRING XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -43;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomM) VALUES ('Point 3', 'Some linestringM', GeomFromText('LINESTRINGM(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT LINESTRING XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -44;
-    }
-    
-    ret = dump_shapefile (handle, "Linestring_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for LINESTRING XYM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -45;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomMZ', 4326, 'LINESTRING', 'XYZM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn LINESTRING XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -46;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomMZ) VALUES ('Point 3', 'Some linestringZM', GeomFromText('LINESTRINGZM(136 -33 3 4.2, 47 2 3.8 1, -20 12 10.1 321)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT LINESTRING XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -47;
-    }
-    
-    ret = dump_shapefile (handle, "Linestring_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for LINESTRING XYZM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -48;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "DROP TABLE Linestring_Test", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE Linestring_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -49;
-    }
-    
-    ret = sqlite3_exec (handle, "CREATE TABLE Polygon_Test (Name TEXT, Description TEXT, thing1 INTEGER, thing2 REAL, thing3 DOUBLE, thing4 BLOB)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "CREATE TABLE Polygon_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -50;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geom', 4326, 'POLYGON', 'XY', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POLYGON XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -51;
-    }
-    /* TODO: try dumping an empty table */ 
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geom) VALUES ('Polygon 1', 'Some polygon', 2, 4.25, 343.343, zeroblob(40), GeomFromText('POLYGON((136 -33, 47 2, -20 -1, 136 -33),(10 -2, -20 -0.4, 40 0.1, 10 -2))', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POLYGON XY error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -54;
-    }
-    
-    ret = dump_shapefile (handle, "Polygon_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POLYGON XY: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -55;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZ', 4326, 'POLYGON', 'XYZ', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POLYGON XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -56;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geomZ) VALUES ('Polygon 2', 'Some polygonZ', 12, 14.25, 1343.343, zeroblob(140), GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, 40 0.1 1.6, -20 -0.4 1, 10 -2 4)', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POLYGON XYZ error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -57;
-    }
-    ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZ) VALUES ('Polygon 2', 'wrong direction', GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POLYGON XYZ 2 error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -57; /* dupe */
-    }
-    
-    ret = dump_shapefile (handle, "Polygon_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POLYGON XYZ: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -58;
-    }
-    cleanup_shapefile(dumpname);
-
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomM', 4326, 'POLYGON', 'XYM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POLYGON XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -59;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomM) VALUES ('Polygon 3', 'Some polygonM', GeomFromText('POLYGONM((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POLYGON XYM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -60;
-    }
-    
-    ret = dump_shapefile (handle, "Polygon_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POLYGON XYM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -61;
-    }
-    cleanup_shapefile(dumpname);
-    
-    ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZM', 4326, 'POLYGON', 'XYZM', 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "AddGeometryColumn POLYGON XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -62;
-    }
-    
-    ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZM) VALUES ('Polygon 4', 'Some polygonZM', GeomFromText('POLYGONZM((136 -33 4 4, 47 2 4.2 4.4, -20 -1 1 1, 136 -33 4 4),(10 -2 4 1, -20 -0.4 1 1, 40 0.1 1.6 1, 10 -2 4 1))', 4326))", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "INSERT POLYGON XYZM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -63;
-    }
-    
-    ret = dump_shapefile (handle, "Polygon_Test", "geomZM", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for POLYGON XYZM: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -64;
-    }
-    cleanup_shapefile(dumpname);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE MPoint_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -35;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE Linestring_Test (Name TEXT, Description TEXT)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE Linestring_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -36;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Linestring_Test', 'geom', 4326, 'LINESTRING', 'XY', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn LINESTRING XY error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -37;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Linestring_Test (Name, Description, geom) VALUES ('Point 1', 'Some linestring', GeomFromText('LINESTRING(136 -33, 47 2, -20, 12)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT LINESTRING XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -38;
+      }
+
+    ret =
+	dump_shapefile (handle, "Linestring_Test", "geom", dumpname, "UTF-8",
+			"", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for LINESTRING XY: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -39;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Linestring_Test', 'geomZ', 4326, 'LINESTRING', 'XYZ', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn LINESTRING XYZ error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -40;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Linestring_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some linestringZ', GeomFromText('LINESTRINGZ(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT LINESTRING XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -41;
+      }
+
+    ret =
+	dump_shapefile (handle, "Linestring_Test", "geomZ", dumpname, "UTF-8",
+			"", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for LINESTRING XYZ: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -42;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Linestring_Test', 'geomM', 4326, 'LINESTRING', 'XYM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn LINESTRING XYM error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -43;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Linestring_Test (Name, Description, geomM) VALUES ('Point 3', 'Some linestringM', GeomFromText('LINESTRINGM(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT LINESTRING XYM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -44;
+      }
+
+    ret =
+	dump_shapefile (handle, "Linestring_Test", "geomM", dumpname, "UTF-8",
+			"", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for LINESTRING XYM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -45;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Linestring_Test', 'geomMZ', 4326, 'LINESTRING', 'XYZM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn LINESTRING XYZM error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -46;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Linestring_Test (Name, Description, geomMZ) VALUES ('Point 3', 'Some linestringZM', GeomFromText('LINESTRINGZM(136 -33 3 4.2, 47 2 3.8 1, -20 12 10.1 321)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT LINESTRING XYZM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -47;
+      }
+
+    ret =
+	dump_shapefile (handle, "Linestring_Test", "geomMZ", dumpname, "UTF-8",
+			"", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for LINESTRING XYZM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -48;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle, "DROP TABLE Linestring_Test", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE Linestring_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -49;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "CREATE TABLE Polygon_Test (Name TEXT, Description TEXT, thing1 INTEGER, thing2 REAL, thing3 DOUBLE, thing4 BLOB)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "CREATE TABLE Polygon_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -50;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Polygon_Test', 'geom', 4326, 'POLYGON', 'XY', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POLYGON XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -51;
+      }
+    /* TODO: try dumping an empty table */
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geom) VALUES ('Polygon 1', 'Some polygon', 2, 4.25, 343.343, zeroblob(40), GeomFromText('POLYGON((136 -33, 47 2, -20 -1, 136 -33),(10 -2, -20 -0.4, 40 0.1, 10 -2))', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POLYGON XY error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -54;
+      }
+
+    ret =
+	dump_shapefile (handle, "Polygon_Test", "geom", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POLYGON XY: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -55;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Polygon_Test', 'geomZ', 4326, 'POLYGON', 'XYZ', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POLYGON XYZ error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -56;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geomZ) VALUES ('Polygon 2', 'Some polygonZ', 12, 14.25, 1343.343, zeroblob(140), GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, 40 0.1 1.6, -20 -0.4 1, 10 -2 4)', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POLYGON XYZ error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -57;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Polygon_Test (Name, Description, geomZ) VALUES ('Polygon 2', 'wrong direction', GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POLYGON XYZ 2 error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -57;		/* dupe */
+      }
+
+    ret =
+	dump_shapefile (handle, "Polygon_Test", "geomZ", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POLYGON XYZ: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -58;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Polygon_Test', 'geomM', 4326, 'POLYGON', 'XYM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POLYGON XYM error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -59;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Polygon_Test (Name, Description, geomM) VALUES ('Polygon 3', 'Some polygonM', GeomFromText('POLYGONM((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POLYGON XYM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -60;
+      }
+
+    ret =
+	dump_shapefile (handle, "Polygon_Test", "geomM", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POLYGON XYM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -61;
+      }
+    cleanup_shapefile (dumpname);
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT AddGeometryColumn('Polygon_Test', 'geomZM', 4326, 'POLYGON', 'XYZM', 0)",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "AddGeometryColumn POLYGON XYZM error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -62;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "INSERT INTO Polygon_Test (Name, Description, geomZM) VALUES ('Polygon 4', 'Some polygonZM', GeomFromText('POLYGONZM((136 -33 4 4, 47 2 4.2 4.4, -20 -1 1 1, 136 -33 4 4),(10 -2 4 1, -20 -0.4 1 1, 40 0.1 1.6 1, 10 -2 4 1))', 4326))",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "INSERT POLYGON XYZM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -63;
+      }
+
+    ret =
+	dump_shapefile (handle, "Polygon_Test", "geomZM", dumpname, "UTF-8", "",
+			1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for POLYGON XYZM: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -64;
+      }
+    cleanup_shapefile (dumpname);
 
 /* testing VectorLayersList (several flavors) */
-    list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_FAST);
+    list =
+	gaiaGetVectorLayersList (handle, NULL, NULL,
+				 GAIA_VECTORS_LIST_OPTIMISTIC);
+    gaiaFreeVectorLayersList (list);
+    list =
+	gaiaGetVectorLayersList (handle, NULL, NULL,
+				 GAIA_VECTORS_LIST_PESSIMISTIC);
     gaiaFreeVectorLayersList (list);
-    list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC);
+    list =
+	gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM",
+				 GAIA_VECTORS_LIST_OPTIMISTIC);
     gaiaFreeVectorLayersList (list);
-    list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_FAST);
+    gaiaStatisticsInvalidate (handle, NULL, NULL);
+    list =
+	gaiaGetVectorLayersList (handle, NULL, NULL,
+				 GAIA_VECTORS_LIST_PESSIMISTIC);
     gaiaFreeVectorLayersList (list);
-    list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_OPTIMISTIC);
+    gaiaStatisticsInvalidate (handle, "Polygon_Test", NULL);
+    list =
+	gaiaGetVectorLayersList (handle, NULL, NULL,
+				 GAIA_VECTORS_LIST_PESSIMISTIC);
     gaiaFreeVectorLayersList (list);
-    
-    ret = sqlite3_exec (handle, "DROP TABLE Polygon_Test", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DROP TABLE Polygon_Test error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -65;
-    }
-	
+    gaiaStatisticsInvalidate (handle, "Polygon_Test", "geomZM");
+    list =
+	gaiaGetVectorLayersList (handle, NULL, NULL,
+				 GAIA_VECTORS_LIST_PESSIMISTIC);
+    gaiaFreeVectorLayersList (list);
+    gaiaStatisticsInvalidate (handle, "Palygon_Tost", "ZMgeom");
+
+    ret =
+	sqlite3_exec (handle, "DROP TABLE Polygon_Test", NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DROP TABLE Polygon_Test error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -65;
+      }
+
 /* final DB cleanup */
-    ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -66;
-    }
-    ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -66;
-    }
+    ret =
+	sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -66;
+      }
+    ret =
+	sqlite3_exec (handle,
+		      "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL",
+		      NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DELETE FROM spatialite_history error: %s\n",
+		   err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -66;
+      }
     ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -66;
-    }
-#endif	/* end ICONV conditional */
-	
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "VACUUM error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -66;
+      }
+#endif /* end ICONV conditional */
+
 /* ok, succesfull termination */
-	return 0;
+    return 0;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
 #ifdef ENABLE_LWGEOM		/* only if LWGEOM is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
 /* testing current style metadata layout >= v.4.0.0 */
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-	
-    ret = do_test(handle);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing current style metadata layout\n");
-	return ret;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret = do_test (handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing current style metadata layout\n");
+	  return ret;
+      }
 
     spatialite_cleanup_ex (cache);
-    sqlite3_close(handle);
-	
+    sqlite3_close (handle);
+
 /* testing legacy style metadata layout <= v.3.1.0 */
-    cache = spatialite_alloc_connection();
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    cache = spatialite_alloc_connection ();
+    ret =
+	system
+	("cp test-legacy-3.0.1.sqlite copy-primitives-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-primitives-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-	
-    ret = do_test(handle);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy style metadata layout\n");
-	return ret;
-    }
+
+    ret = do_test (handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout\n");
+	  return ret;
+      }
 
     spatialite_cleanup_ex (cache);
-    sqlite3_close(handle);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    sqlite3_close (handle);
+    ret = unlink ("copy-primitives-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -1;
-    }
-	
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -1;
+      }
+
 /* testing invalid geometries [check/repair] */
-    cache = spatialite_alloc_connection();
-    ret = system("cp test-invalid.sqlite copy-invalid.sqlite");
+    cache = spatialite_alloc_connection ();
+    ret = system ("cp test-invalid.sqlite copy-invalid.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy invalid-geoms database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open invalid-geoms database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot copy invalid-geoms database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE,
+			 NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open invalid-geoms database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = check_all_geometry_columns (handle, "./report", NULL, NULL);
-    if (!ret) {
-        fprintf (stderr, "check_all_geometry_columns() error\n");
-	sqlite3_close(handle);
-	return -61;
-    }
-
-    ret = sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); 
-    if (!ret) {
-        fprintf (stderr, "sanitize_all_geometry_columns() error\n");
-	sqlite3_close(handle);
-	return -62;
-    }
+
+    ret = check_all_geometry_columns_r (cache, handle, "./report", NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "check_all_geometry_columns() error\n");
+	  sqlite3_close (handle);
+	  return -61;
+      }
+
+    ret =
+	sanitize_all_geometry_columns_r (cache, handle, "tmp_", "./report",
+					 NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "sanitize_all_geometry_columns() error\n");
+	  sqlite3_close (handle);
+	  return -62;
+      }
 
     spatialite_cleanup_ex (cache);
-    sqlite3_close(handle);
-    ret = unlink("copy-invalid.sqlite");
+    sqlite3_close (handle);
+    ret = unlink ("copy-invalid.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove invalid-geoms database\n");
-        return -1;
-    }
-	
+      {
+	  fprintf (stderr, "cannot remove invalid-geoms database\n");
+	  return -1;
+      }
+
+/* testing invalid geometries [check/repair] - legacy mode */
+    spatialite_init (0);
+    ret = system ("cp test-invalid.sqlite copy-invalid.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot copy invalid-geoms database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE,
+			 NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open invalid-geoms database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
+
+    ret = check_all_geometry_columns (handle, "./report", NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "check_all_geometry_columns() error\n");
+	  sqlite3_close (handle);
+	  return -91;
+      }
+
+    ret =
+	sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL);
+    if (!ret)
+      {
+	  fprintf (stderr, "sanitize_all_geometry_columns() error\n");
+	  sqlite3_close (handle);
+	  return -92;
+      }
+
+    spatialite_cleanup ();
+    sqlite3_close (handle);
+    ret = unlink ("copy-invalid.sqlite");
+    if (ret != 0)
+      {
+	  fprintf (stderr, "cannot remove invalid-geoms database\n");
+	  return -1;
+      }
+
 /* testing legacy style metadata layout (v.2.3.1) */
-    cache = spatialite_alloc_connection();
-    ret = system("cp test-legacy-2.3.1.sqlite copy-legacy-2.3.1.sqlite");
+    cache = spatialite_alloc_connection ();
+    ret = system ("cp test-legacy-2.3.1.sqlite copy-legacy-2.3.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.2.3.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-2.3.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.2.3.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot copy legacy v.2.3.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-legacy-2.3.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.2.3.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-	
-    ret = do_test(handle);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy (2.3.1) style metadata layout\n");
-	return ret;
-    }
+
+    ret = do_test (handle);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy (2.3.1) style metadata layout\n");
+	  return ret;
+      }
 
     spatialite_cleanup_ex (cache);
-    sqlite3_close(handle);
-    ret = unlink("copy-legacy-2.3.1.sqlite");
+    sqlite3_close (handle);
+    ret = unlink ("copy-legacy-2.3.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.2.3.1 database\n");
-        return -1;
-    }
-    
+      {
+	  fprintf (stderr, "cannot remove legacy v.2.3.1 database\n");
+	  return -1;
+      }
+
 #endif /* end LWGEOM conditionals */
-#endif	/* end ICONV conditional */
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/shape_utf8_1.c b/test/shape_utf8_1.c
index ebe9cd6..b5a7697 100644
--- a/test/shape_utf8_1.c
+++ b/test/shape_utf8_1.c
@@ -52,310 +52,421 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-void cleanup_shapefile(const char *filename)
+void
+cleanup_shapefile (const char *filename)
 {
     char nam[1000];
-    
-    if (!filename) {
-	return;
-    }
-    
-    snprintf(nam, 1000, "%s.dbf", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.prj", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shp", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shx", filename);
-    unlink(nam);
+
+    if (!filename)
+      {
+	  return;
+      }
+
+    snprintf (nam, 1000, "%s.dbf", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.prj", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shp", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shx", filename);
+    unlink (nam);
 }
 
-int do_test(sqlite3 *handle, int legacy)
+int
+do_test (sqlite3 * handle, int legacy)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
-    char *dumpname = __FILE__"dump";
+    char *dumpname = __FILE__ "dump";
     char *err_msg = NULL;
     int row_count;
-	
-    ret = load_shapefile (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, 
-			  NULL, 1, 0, 1, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/gaza/barrier: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 5) {
-	fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_shapefile (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, 
-			  "col1", 1, 0, 0, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/gaza/aeroway: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 1) {
-	fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
-
-    ret = load_shapefile (handle, "./shp/gaza/route", "route", "UTF-8", 4326, 
+
+    ret =
+	load_shapefile (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326,
+			NULL, 1, 0, 1, 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error for shp/gaza/barrier: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 5)
+      {
+	  fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326,
+			"col1", 1, 0, 0, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error for shp/gaza/aeroway: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 1)
+      {
+	  fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+
+    ret = load_shapefile (handle, "./shp/gaza/route", "route", "UTF-8", 4326,
 			  NULL, 1, 0, 1, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/gaza/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count);
-	sqlite3_close(handle);
-	return -8;
-    }
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error for shp/gaza/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -8;
+      }
 
     if (legacy)
-    {
-        sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL);
-        sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL);
-    }
+      {
+	  sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL,
+			NULL);
+	  sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL,
+			NULL, NULL);
+      }
     else
-    {
-        sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL);
-        sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL);
-    }
-
-    ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -9;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count);
-	sqlite3_close(handle);
-	return -10;
-    }
-
-    ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -13;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count);
-	sqlite3_close(handle);
-	return -14;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -15;
-    }
+      {
+	  sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL,
+			NULL, NULL);
+	  sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics",
+			NULL, NULL, NULL);
+      }
+
+    ret =
+	dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -9;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+
+    ret =
+	dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8",
+			"LINESTRING", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr,
+		   "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
 
     if (legacy)
-	ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta',  'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg);
+	ret =
+	    sqlite3_exec (handle,
+			  "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta',  'gamma', 'LINESTRING', 'XY', 4326, 0)",
+			  NULL, NULL, &err_msg);
     else
-	ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'),  Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "GeometryColumns route error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -16;
-    }
+	ret =
+	    sqlite3_exec (handle,
+			  "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'),  Lower('Gamma'), 2, 2, 4326, 0)",
+			  NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "GeometryColumns route error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
 
     if (legacy)
-    {
-        sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL);
-        ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route',  'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg);
-    }
+      {
+	  sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL,
+			NULL);
+	  ret =
+	      sqlite3_exec (handle,
+			    "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route',  'Geometry', 'ROWID', 'beta', 'gamma')",
+			    NULL, NULL, &err_msg);
+      }
     else
-    {
-        sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL);
-        ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'),  Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('gamma'), 1)", NULL, NULL, &err_msg);
-    }
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -17;
-    }
-
-    ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg);
-	sqlite3_close(handle);
-	return -17;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count);
-	sqlite3_close(handle);
-	return -18;
-    }
-	
+      {
+	  sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL,
+			NULL, NULL);
+	  ret =
+	      sqlite3_exec (handle,
+			    "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'),  Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('gamma'), 1)",
+			    NULL, NULL, &err_msg);
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+
+    ret =
+	dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr,
+		   "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -18;
+      }
+
     if (legacy)
-    {
-    /* final DB cleanup */
-	ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -19;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -20;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE route error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -21;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -22;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -23;
-	}
-	ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -24;
-	}
-	ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -25;
-	}
-	ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -26;
-	}
-	ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -27;
-	}
-    }
-#endif	/* end ICONV conditional */
+      {
+	  /* final DB cleanup */
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -19;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -20;
+	    }
+	  ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE route error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -21;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL,
+			    &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -22;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL,
+			    NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -23;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL,
+			    &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DELETE FROM geometry_columns error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -24;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL,
+			    NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr,
+			 "DELETE FROM views_geometry_columns error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -25;
+	    }
+	  ret =
+	      sqlite3_exec (handle,
+			    "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL",
+			    NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DELETE FROM spatialite_history error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -26;
+	    }
+	  ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "VACUUM error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -27;
+	    }
+      }
+#endif /* end ICONV conditional */
 
 /* ok, succesfull termination */
-	return 0;
-    
+    return 0;
+
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
 /* testing current style metadata layout >= v.4.0.0 */
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = do_test(handle, 0);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing current style metadata layout\n");
-	return ret;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret = do_test (handle, 0);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing current style metadata layout\n");
+	  return ret;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -19;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -19;
+      }
     spatialite_cleanup_ex (cache);
 
 /* testing legacy style metadata layout <= v.3.1.0 */
-    cache = spatialite_alloc_connection();
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    cache = spatialite_alloc_connection ();
+    ret =
+	system ("cp test-legacy-3.0.1.sqlite copy-utf8_1-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-utf8_1-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-	
-    ret = do_test(handle, 1);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy style metadata layout\n");
-	return ret;
-    }
+
+    ret = do_test (handle, 1);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout\n");
+	  return ret;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -19;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -19;
+      }
     spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    ret = unlink ("copy-utf8_1-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -20;
-    }
-	
-#endif	/* end ICONV conditional */
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -20;
+      }
+
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/shape_utf8_1ex.c b/test/shape_utf8_1ex.c
index f9327d6..0e51e96 100644
--- a/test/shape_utf8_1ex.c
+++ b/test/shape_utf8_1ex.c
@@ -52,310 +52,427 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-void cleanup_shapefile(const char *filename)
+void
+cleanup_shapefile (const char *filename)
 {
     char nam[1000];
-    
-    if (!filename) {
-	return;
-    }
-    
-    snprintf(nam, 1000, "%s.dbf", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.prj", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shp", filename);
-    unlink(nam);
-    snprintf(nam, 1000, "%s.shx", filename);
-    unlink(nam);
+
+    if (!filename)
+      {
+	  return;
+      }
+
+    snprintf (nam, 1000, "%s.dbf", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.prj", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shp", filename);
+    unlink (nam);
+    snprintf (nam, 1000, "%s.shx", filename);
+    unlink (nam);
 }
 
-int do_test(sqlite3 *handle, int legacy)
+int
+do_test (sqlite3 * handle, int legacy)
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
-    char *dumpname = __FILE__"dump";
+    char *dumpname = __FILE__ "dump";
     char *err_msg = NULL;
     int row_count;
-	
-    ret = load_shapefile_ex (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, 
-			     NULL, NULL, "POINT", 1, 0, 1, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile_ex() error for shp/gaza/barrier: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 5) {
-	fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_shapefile_ex (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, 
-			     "col1", NULL, "LINESTRING", 1, 0, 0, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile_ex() error for shp/gaza/aeroway: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 1) {
-	fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
-
-    ret = load_shapefile_ex (handle, "./shp/gaza/route", "route", "UTF-8", 4326, 
-			     NULL, NULL, "MULTILINESTRING", 1, 0, 1, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile_ex() error for shp/gaza/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count);
-	sqlite3_close(handle);
-	return -8;
-    }
+
+    ret =
+	load_shapefile_ex (handle, "./shp/gaza/barrier", "barrier", "UTF-8",
+			   4326, NULL, NULL, "POINT", 1, 0, 1, 1, &row_count,
+			   err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile_ex() error for shp/gaza/barrier: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 5)
+      {
+	  fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_shapefile_ex (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8",
+			   4326, "col1", NULL, "LINESTRING", 1, 0, 0, 0,
+			   &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile_ex() error for shp/gaza/aeroway: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 1)
+      {
+	  fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+
+    ret = load_shapefile_ex (handle, "./shp/gaza/route", "route", "UTF-8", 4326,
+			     NULL, NULL, "MULTILINESTRING", 1, 0, 1, 1,
+			     &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile_ex() error for shp/gaza/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -8;
+      }
 
     if (legacy)
-    {
-        sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL);
-        sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL);
-    }
+      {
+	  sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL,
+			NULL);
+	  sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL,
+			NULL, NULL);
+      }
     else
-    {
-        sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL);
-        sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL);
-    }
-
-    ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -9;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count);
-	sqlite3_close(handle);
-	return -10;
-    }
-
-    ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -13;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count);
-	sqlite3_close(handle);
-	return -14;
-    }
-
-    ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -15;
-    }
+      {
+	  sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL,
+			NULL, NULL);
+	  sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics",
+			NULL, NULL, NULL);
+      }
+
+    ret =
+	dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -9;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -10;
+      }
+
+    ret =
+	dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8",
+			"LINESTRING", 1, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr,
+		   "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+
+    ret =
+	sqlite3_exec (handle,
+		      "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL,
+		      NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
 
     if (legacy)
-	ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta',  'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg);
+	ret =
+	    sqlite3_exec (handle,
+			  "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta',  'gamma', 'LINESTRING', 'XY', 4326, 0)",
+			  NULL, NULL, &err_msg);
     else
-	ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'),  Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "GeometryColumns route error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -16;
-    }
+	ret =
+	    sqlite3_exec (handle,
+			  "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'),  Lower('Gamma'), 2, 2, 4326, 0)",
+			  NULL, NULL, &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "GeometryColumns route error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
 
     if (legacy)
-    {
-        sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL);
-        ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route',  'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg);
-    }
+      {
+	  sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL,
+			NULL);
+	  ret =
+	      sqlite3_exec (handle,
+			    "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route',  'Geometry', 'ROWID', 'beta', 'gamma')",
+			    NULL, NULL, &err_msg);
+      }
     else
-    {
-        sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL);
-        ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'),  Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('Gamma'), 1)", NULL, NULL, &err_msg);
-    }
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -17;
-    }
-
-    ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg);
-	sqlite3_close(handle);
-	return -17;
-    }
-    cleanup_shapefile(dumpname);
-    if (row_count != 2) {
-	fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count);
-	sqlite3_close(handle);
-	return -18;
-    }
-	
+      {
+	  sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL,
+			NULL, NULL);
+	  ret =
+	      sqlite3_exec (handle,
+			    "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'),  Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('Gamma'), 1)",
+			    NULL, NULL, &err_msg);
+      }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+
+    ret =
+	dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1,
+			&row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -17;
+      }
+    cleanup_shapefile (dumpname);
+    if (row_count != 2)
+      {
+	  fprintf (stderr,
+		   "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -18;
+      }
+
     if (legacy)
-    {
-    /* final DB cleanup */
-	ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -19;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -20;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE route error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -21;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -22;
-	}
-	ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -23;
-	}
-	ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -24;
-	}
-	ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -25;
-	}
-	ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -26;
-	}
-	ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
-	if (ret != SQLITE_OK) {
-	    fprintf (stderr, "VACUUM error: %s\n", err_msg);
-	    sqlite3_free(err_msg);
-	    sqlite3_close(handle);
-	    return -27;
-	}
-    }
-#endif	/* end ICONV conditional */
+      {
+	  /* final DB cleanup */
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -19;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -20;
+	    }
+	  ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE route error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -21;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL,
+			    &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -22;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL,
+			    NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -23;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL,
+			    &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DELETE FROM geometry_columns error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -24;
+	    }
+	  ret =
+	      sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL,
+			    NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr,
+			 "DELETE FROM views_geometry_columns error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -25;
+	    }
+	  ret =
+	      sqlite3_exec (handle,
+			    "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL",
+			    NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "DELETE FROM spatialite_history error: %s\n",
+			 err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -26;
+	    }
+	  ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg);
+	  if (ret != SQLITE_OK)
+	    {
+		fprintf (stderr, "VACUUM error: %s\n", err_msg);
+		sqlite3_free (err_msg);
+		sqlite3_close (handle);
+		return -27;
+	    }
+      }
+#endif /* end ICONV conditional */
 
 /* ok, succesfull termination */
-	return 0;
-    
+    return 0;
+
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
     char *err_msg = NULL;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
 /* testing current style metadata layout >= v.4.0.0 */
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = do_test(handle, 0);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing current style metadata layout\n");
-	return ret;
-    }
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret = do_test (handle, 0);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing current style metadata layout\n");
+	  return ret;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -19;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -19;
+      }
     spatialite_cleanup_ex (cache);
 
 /* testing legacy style metadata layout <= v.3.1.0 */
-    cache = spatialite_alloc_connection();
-    ret = system("cp test-legacy-3.0.1.sqlite copy-legacy-3.0.1.sqlite");
+    cache = spatialite_alloc_connection ();
+    ret =
+	system
+	("cp test-legacy-3.0.1.sqlite copy-utf8_1ex-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot copy legacy v.3.0.1 database\n");
-        return -1;
-    }
-    ret = sqlite3_open_v2 ("copy-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+      {
+	  fprintf (stderr, "cannot copy legacy v.3.0.1 database\n");
+	  return -1;
+      }
+    ret =
+	sqlite3_open_v2 ("copy-utf8_1ex-legacy-3.0.1.sqlite", &handle,
+			 SQLITE_OPEN_READWRITE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
 
-    ret = do_test(handle, 1);
-    if (ret != 0) {
-	fprintf(stderr, "error while testing legacy style metadata layout\n");
-	return ret;
-    }
+    ret = do_test (handle, 1);
+    if (ret != 0)
+      {
+	  fprintf (stderr,
+		   "error while testing legacy style metadata layout\n");
+	  return ret;
+      }
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -19;
-    }
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -19;
+      }
     spatialite_cleanup_ex (cache);
-    ret = unlink("copy-legacy-3.0.1.sqlite");
+    ret = unlink ("copy-utf8_1ex-legacy-3.0.1.sqlite");
     if (ret != 0)
-    {
-        fprintf(stderr, "cannot remove legacy v.3.0.1 database\n");
-        return -20;
-    }
-	
-#endif	/* end ICONV conditional */
+      {
+	  fprintf (stderr, "cannot remove legacy v.3.0.1 database\n");
+	  return -20;
+      }
+
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/shape_utf8_2.c b/test/shape_utf8_2.c
index 98ea9ba..a6042c7 100644
--- a/test/shape_utf8_2.c
+++ b/test/shape_utf8_2.c
@@ -52,143 +52,184 @@ the terms of any one of the MPL, the GPL or the LGPL.
 #include "sqlite3.h"
 #include "spatialite.h"
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-#ifndef OMIT_ICONV	/* only if ICONV is supported */
+#ifndef OMIT_ICONV		/* only if ICONV is supported */
     int ret;
     sqlite3 *handle;
-    char *kmlname = __FILE__"test.kml";
-    char *geojsonname = __FILE__"test.geojson"; 
+    char *kmlname = __FILE__ "test.kml";
+    char *geojsonname = __FILE__ "test.geojson";
     char *err_msg = NULL;
     int row_count;
-    void *cache = spatialite_alloc_connection();
+    void *cache = spatialite_alloc_connection ();
 
     if (argc > 1 || argv[0] == NULL)
 	argc = 1;		/* silencing stupid compiler warnings */
 
-    ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
-    if (ret != SQLITE_OK) {
-	fprintf(stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle));
-	sqlite3_close(handle);
-	return -1;
-    }
+    ret =
+	sqlite3_open_v2 (":memory:", &handle,
+			 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "cannot open in-memory database: %s\n",
+		   sqlite3_errmsg (handle));
+	  sqlite3_close (handle);
+	  return -1;
+      }
 
     spatialite_init_ex (handle, cache, 0);
-    
-    ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg);
-    if (ret != SQLITE_OK) {
-	fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
-	sqlite3_free(err_msg);
-	sqlite3_close(handle);
-	return -2;
-    }
-    
-    ret = load_shapefile (handle, "./shp/taiwan/hystoric", "hystoric", "UTF-8", 4326, 
-			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/taiwan/hystoric: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -3;
-    }
-    if (row_count != 15) {
-	fprintf (stderr, "unexpected row count for shp/taiwan/hystoric: %i\n", row_count);
-	sqlite3_close(handle);
-	return -4;
-    }
-
-    ret = load_shapefile (handle, "./shp/taiwan/leisure", "leisure", "UTF-8", 4326, 
-			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/taiwan/leisure: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -5;
-    }
-    if (row_count != 5) {
-	fprintf (stderr, "unexpected row count for shp/taiwan/leisure: %i\n", row_count);
-	sqlite3_close(handle);
-	return -6;
-    }
-
-    ret = load_shapefile (handle, "./shp/taiwan/route", "route", "UTF-8", 4326, 
+
+    ret =
+	sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL,
+		      &err_msg);
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg);
+	  sqlite3_free (err_msg);
+	  sqlite3_close (handle);
+	  return -2;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/taiwan/hystoric", "hystoric", "UTF-8",
+			4326, "col1", 1, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/taiwan/hystoric: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -3;
+      }
+    if (row_count != 15)
+      {
+	  fprintf (stderr, "unexpected row count for shp/taiwan/hystoric: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -4;
+      }
+
+    ret =
+	load_shapefile (handle, "./shp/taiwan/leisure", "leisure", "UTF-8",
+			4326, "col1", 1, 0, 1, 0, &row_count, err_msg);
+    if (!ret)
+      {
+	  fprintf (stderr,
+		   "load_shapefile() error for shp/taiwan/leisure: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -5;
+      }
+    if (row_count != 5)
+      {
+	  fprintf (stderr, "unexpected row count for shp/taiwan/leisure: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -6;
+      }
+
+    ret = load_shapefile (handle, "./shp/taiwan/route", "route", "UTF-8", 4326,
 			  "col1", 1, 0, 1, 0, &row_count, err_msg);
-    if (!ret) {
-        fprintf (stderr, "load_shapefile() error for shp/taiwan/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -7;
-    }
-    if (row_count != 4) {
-	fprintf (stderr, "unexpected row count for shp/taiwan/route: %i\n", row_count);
-	sqlite3_close(handle);
-	return -8;
-    }
-
-#ifndef OMIT_PROJ	/* only if PROJ is supported */
-    if (is_kml_constant (handle, "route", "name")) {
-	fprintf(stderr, "unexpected result for is_kml_constant (1)\n");
-	return -9;
-    }
-    if (! is_kml_constant (handle, "route", "foo")) {
-	fprintf(stderr, "unexpected result for is_kml_constant (2)\n");
-	return -10;
-    }
-    
+    if (!ret)
+      {
+	  fprintf (stderr, "load_shapefile() error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -7;
+      }
+    if (row_count != 4)
+      {
+	  fprintf (stderr, "unexpected row count for shp/taiwan/route: %i\n",
+		   row_count);
+	  sqlite3_close (handle);
+	  return -8;
+      }
+
+#ifndef OMIT_PROJ		/* only if PROJ is supported */
+    if (is_kml_constant (handle, "route", "name"))
+      {
+	  fprintf (stderr, "unexpected result for is_kml_constant (1)\n");
+	  return -9;
+      }
+    if (!is_kml_constant (handle, "route", "foo"))
+      {
+	  fprintf (stderr, "unexpected result for is_kml_constant (2)\n");
+	  return -10;
+      }
+
     ret = dump_kml (handle, "route", "col1", kmlname, NULL, NULL, 10);
-    if (!ret) {
-        fprintf (stderr, "dump_kml (1) error for shp/taiwan/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -11;
-    }
-    unlink(kmlname);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_kml (1) error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -11;
+      }
+    unlink (kmlname);
 
     ret = dump_kml (handle, "route", "col1", kmlname, "name", NULL, 10);
-    if (!ret) {
-        fprintf (stderr, "dump_kml (2) error for shp/taiwan/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -12;
-    }
-    unlink(kmlname);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_kml (2) error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -12;
+      }
+    unlink (kmlname);
 
     ret = dump_kml (handle, "route", "col1", kmlname, "theta", NULL, 10);
-    if (!ret) {
-        fprintf (stderr, "dump_kml (3) error for shp/taiwan/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -13;
-    }
-    unlink(kmlname);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_kml (3) error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -13;
+      }
+    unlink (kmlname);
 
     ret = dump_kml (handle, "route", "col1", kmlname, "name", "sub_type", 10);
-    if (!ret) {
-        fprintf (stderr, "dump_kml (4) error for shp/taiwan/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -14;
-    }
-    unlink(kmlname);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_kml (4) error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -14;
+      }
+    unlink (kmlname);
 
     ret = dump_kml (handle, "route", "col1", kmlname, "theta", "beta", 10);
-    if (!ret) {
-        fprintf (stderr, "dump_kml (5) error for shp/taiwan/route: %s\n", err_msg);
-	sqlite3_close(handle);
-	return -15;
-    }
-    unlink(kmlname);
-#endif	/* end PROJ conditional */
-
-    ret = dump_geojson(handle, "route", "col1", geojsonname, 10, 5);
-    if (!ret) {
-        fprintf (stderr, "dump_geojson() error for shp/taiwan/route: %s\n", err_msg);
-       sqlite3_close(handle);
-       return -16;
-    }
-    unlink(geojsonname);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_kml (5) error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -15;
+      }
+    unlink (kmlname);
+#endif /* end PROJ conditional */
+
+    ret = dump_geojson (handle, "route", "col1", geojsonname, 10, 5);
+    if (!ret)
+      {
+	  fprintf (stderr, "dump_geojson() error for shp/taiwan/route: %s\n",
+		   err_msg);
+	  sqlite3_close (handle);
+	  return -16;
+      }
+    unlink (geojsonname);
 
     ret = sqlite3_close (handle);
-    if (ret != SQLITE_OK) {
-        fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
-	return -17;
-    }
-    
+    if (ret != SQLITE_OK)
+      {
+	  fprintf (stderr, "sqlite3_close() error: %s\n",
+		   sqlite3_errmsg (handle));
+	  return -17;
+      }
+
     spatialite_cleanup_ex (cache);
-#endif	/* end ICONV conditional */
+#endif /* end ICONV conditional */
 
+    spatialite_shutdown ();
     return 0;
 }
diff --git a/test/sld_sample.xml b/test/sld_sample.xml
new file mode 100644
index 0000000..18b4e8e
--- /dev/null
+++ b/test/sld_sample.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StyledLayerDescriptor version="1.1.0" 
+	xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" 
+	xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
+	xmlns:se="http://www.opengis.net/se" xmlns:xlink="http://www.w3.org/1999/xlink"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<se:Name>trento_ShRel_draped</se:Name>
+	<se:Description>
+		<se:Title>Trento: Shaded Relief Orthophoto</se:Title>
+		<se:Abstract>RGB aerial orthophoto draped over LIDAR DEM with Shaded Relief</se:Abstract>
+	</se:Description>
+	<NamedLayer>
+		<se:Name>lidar_dem</se:Name>
+		<NamedStyle>
+			<se:Name>shaded_relief_default</se:Name>
+		</NamedStyle>
+	</NamedLayer>
+	<NamedLayer>
+		<se:Name>ortophoto</se:Name>
+	</NamedLayer>
+</StyledLayerDescriptor>
diff --git a/test/sql_stmt_geopackage_tests/Makefile.am b/test/sql_stmt_geopackage_tests/Makefile.am
new file mode 100644
index 0000000..8b873a9
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/Makefile.am
@@ -0,0 +1,74 @@
+
+EXTRA_DIST = asgpb1.testcase \
+	asgpb2.testcase \
+	asgpb3.testcase \
+	asgpb4.testcase \
+	asgpb5.testcase \
+	asgpb6.testcase \
+	geomfromgpb10.testcase \
+	geomfromgpb11.testcase \
+	geomfromgpb12.testcase \
+	geomfromgpb13.testcase \
+	geomfromgpb14.testcase \
+	geomfromgpb15.testcase	 \
+	geomfromgpb16.testcase \
+	geomfromgpb17.testcase \
+	geomfromgpb18.testcase \
+	geomfromgpb19.testcase \
+	geomfromgpb1.testcase \
+	geomfromgpb2.testcase \
+	geomfromgpb3.testcase \
+	geomfromgpb4.testcase \
+	geomfromgpb5.testcase \
+	geomfromgpb6.testcase \
+	geomfromgpb7.testcase \
+	geomfromgpb8.testcase \
+	geomfromgpb9.testcase \
+	implicitgeopackagebinary1.testcase \
+	implicitgeopackagebinary2.testcase \
+	makepoint1.testcase \
+	makepoint2.testcase \
+	makepoint3.testcase \
+	makepoint4.testcase \
+	makepoint5.testcase \
+	makepoint6.testcase \
+	makepoint7.testcase \
+	makepoint8.testcase \
+	makepoint9.testcase \
+	makepointm10.testcase \
+	makepointm11.testcase \
+	makepointm1.testcase \
+	makepointm2.testcase \
+	makepointm3.testcase \
+	makepointm4.testcase \
+	makepointm5.testcase \
+	makepointm6.testcase \
+	makepointm7.testcase \
+	makepointm8.testcase \
+	makepointm9.testcase \
+	makepointz10.testcase \
+	makepointz11.testcase \
+	makepointz1.testcase \
+	makepointz2.testcase \
+	makepointz3.testcase \
+	makepointz4.testcase \
+	makepointz5.testcase \
+	makepointz6.testcase \
+	makepointz7.testcase \
+	makepointz8.testcase \
+	makepointz9.testcase \
+	makepointzm10.testcase \
+	makepointzm11.testcase \
+	makepointzm12.testcase \
+	makepointzm13.testcase \
+	makepointzm14.testcase \
+	makepointzm15.testcase \
+	makepointzm1.testcase \
+	makepointzm2.testcase \
+	makepointzm3.testcase \
+	makepointzm4.testcase \
+	makepointzm5.testcase \
+	makepointzm6.testcase \
+	makepointzm7.testcase \
+	makepointzm8.testcase \
+	makepointzm9.testcase 
diff --git a/test/sql_stmt_geopackage_tests/Makefile.in b/test/sql_stmt_geopackage_tests/Makefile.in
new file mode 100644
index 0000000..57550c9
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/Makefile.in
@@ -0,0 +1,510 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = test/sql_stmt_geopackage_tests
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GEOSCONFIG = @GEOSCONFIG@
+GEOS_CFLAGS = @GEOS_CFLAGS@
+GEOS_LDFLAGS = @GEOS_LDFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = asgpb1.testcase \
+	asgpb2.testcase \
+	asgpb3.testcase \
+	asgpb4.testcase \
+	asgpb5.testcase \
+	asgpb6.testcase \
+	geomfromgpb10.testcase \
+	geomfromgpb11.testcase \
+	geomfromgpb12.testcase \
+	geomfromgpb13.testcase \
+	geomfromgpb14.testcase \
+	geomfromgpb15.testcase	 \
+	geomfromgpb16.testcase \
+	geomfromgpb17.testcase \
+	geomfromgpb18.testcase \
+	geomfromgpb19.testcase \
+	geomfromgpb1.testcase \
+	geomfromgpb2.testcase \
+	geomfromgpb3.testcase \
+	geomfromgpb4.testcase \
+	geomfromgpb5.testcase \
+	geomfromgpb6.testcase \
+	geomfromgpb7.testcase \
+	geomfromgpb8.testcase \
+	geomfromgpb9.testcase \
+	implicitgeopackagebinary1.testcase \
+	implicitgeopackagebinary2.testcase \
+	makepoint1.testcase \
+	makepoint2.testcase \
+	makepoint3.testcase \
+	makepoint4.testcase \
+	makepoint5.testcase \
+	makepoint6.testcase \
+	makepoint7.testcase \
+	makepoint8.testcase \
+	makepoint9.testcase \
+	makepointm10.testcase \
+	makepointm11.testcase \
+	makepointm1.testcase \
+	makepointm2.testcase \
+	makepointm3.testcase \
+	makepointm4.testcase \
+	makepointm5.testcase \
+	makepointm6.testcase \
+	makepointm7.testcase \
+	makepointm8.testcase \
+	makepointm9.testcase \
+	makepointz10.testcase \
+	makepointz11.testcase \
+	makepointz1.testcase \
+	makepointz2.testcase \
+	makepointz3.testcase \
+	makepointz4.testcase \
+	makepointz5.testcase \
+	makepointz6.testcase \
+	makepointz7.testcase \
+	makepointz8.testcase \
+	makepointz9.testcase \
+	makepointzm10.testcase \
+	makepointzm11.testcase \
+	makepointzm12.testcase \
+	makepointzm13.testcase \
+	makepointzm14.testcase \
+	makepointzm15.testcase \
+	makepointzm1.testcase \
+	makepointzm2.testcase \
+	makepointzm3.testcase \
+	makepointzm4.testcase \
+	makepointzm5.testcase \
+	makepointzm6.testcase \
+	makepointzm7.testcase \
+	makepointzm8.testcase \
+	makepointzm9.testcase 
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geopackage_tests/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign test/sql_stmt_geopackage_tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/test/sql_stmt_geopackage_tests/asgpb1.testcase b/test/sql_stmt_geopackage_tests/asgpb1.testcase
new file mode 100644
index 0000000..b3711ea
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/asgpb1.testcase
@@ -0,0 +1,7 @@
+togpb1
+:memory: #use in-memory database
+SELECT Hex(AsGPB(GeomFromText("POINT(136 -35)")))
+1 # rows (not including the header row)
+1 # columns
+Hex(AsGPB(GeomFromText("POINT(136 -35)")))
+47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0
diff --git a/test/sql_stmt_geopackage_tests/asgpb2.testcase b/test/sql_stmt_geopackage_tests/asgpb2.testcase
new file mode 100644
index 0000000..15b3a79
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/asgpb2.testcase
@@ -0,0 +1,8 @@
+asgpb2
+:memory: #use in-memory database
+SELECT Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)")))
+1 # rows (not including the header row)
+1 # columns
+Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)")))
+47500003000000000000000000006140000000000000614000000000008041C000000000008041C001E9030000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/asgpb3.testcase b/test/sql_stmt_geopackage_tests/asgpb3.testcase
new file mode 100644
index 0000000..b8d5c58
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/asgpb3.testcase
@@ -0,0 +1,8 @@
+asgpb3
+:memory: #use in-memory database
+SELECT Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)", 4326)))
+1 # rows (not including the header row)
+1 # columns
+Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)", 4326)))
+47500003E61000000000000000006140000000000000614000000000008041C000000000008041C001E9030000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/asgpb4.testcase b/test/sql_stmt_geopackage_tests/asgpb4.testcase
new file mode 100644
index 0000000..d619842
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/asgpb4.testcase
@@ -0,0 +1,9 @@
+asgpb4
+:memory: #use in-memory database
+SELECT AsGPB("blah")
+1 # rows (not including the header row)
+1 # columns
+AsGPB("blah")
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/asgpb5.testcase b/test/sql_stmt_geopackage_tests/asgpb5.testcase
new file mode 100644
index 0000000..8fac4b9
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/asgpb5.testcase
@@ -0,0 +1,8 @@
+asgpb5
+:memory: #use in-memory database
+SELECT Hex(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))
+1 # rows (not including the header row)
+1 # columns
+Hex(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))
+47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0
+
diff --git a/test/sql_stmt_geopackage_tests/asgpb6.testcase b/test/sql_stmt_geopackage_tests/asgpb6.testcase
new file mode 100644
index 0000000..641ec9b
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/asgpb6.testcase
@@ -0,0 +1,9 @@
+asgpb6
+:memory: #use in-memory database
+SELECT AsGPB(zeroblob(100))
+1 # rows (not including the header row)
+1 # columns
+AsGPB(zeroblob(100))
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase
new file mode 100644
index 0000000..b77cc70
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase
@@ -0,0 +1,7 @@
+geomfromgpb1
+:memory: #use in-memory database
+SELECT AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0'))
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0'))
+POINT(136 -35)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase
new file mode 100644
index 0000000..3a431c6
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase
@@ -0,0 +1,8 @@
+geomfromgpb10
+:memory: #use in-memory database
+SELECT GeomFromGPB(4)
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(4)
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase
new file mode 100644
index 0000000..1b8b184
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase
@@ -0,0 +1,7 @@
+geomfromgpb11
+:memory: #use in-memory database
+SELECT AsText(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040'))
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040'))
+POINT M(136 -35 4)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase
new file mode 100644
index 0000000..8d700c9
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase
@@ -0,0 +1,7 @@
+geomfromgpb12
+:memory: #use in-memory database
+SELECT AsEWKT(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040'))
+1 # rows (not including the header row)
+1 # columns
+AsEWKT(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040'))
+SRID=0;POINTM(136 -35 4)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase
new file mode 100644
index 0000000..9a622f1
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase
@@ -0,0 +1,7 @@
+geomfromgpb13
+:memory: #use in-memory database
+SELECT AsEWKT(GeomFromGPB(X'47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040'))
+1 # rows (not including the header row)
+1 # columns
+AsEWKT(GeomFromGPB(X'47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040'))
+SRID=4326;POINTM(136 -35 4)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase
new file mode 100644
index 0000000..7ba53e9
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase
@@ -0,0 +1,7 @@
+geomfromgpb14
+:memory: #use in-memory database
+SELECT AsEWKT(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+1 # rows (not including the header row)
+1 # columns
+AsEWKT(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+SRID=4326;POINT(136 -35 4 9.5)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase
new file mode 100644
index 0000000..eb27a13
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase
@@ -0,0 +1,7 @@
+geomfromgpb15
+:memory: #use in-memory database
+SELECT ST_SRID(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+1 # rows (not including the header row)
+1 # columns
+ST_SRID(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+4326
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase
new file mode 100644
index 0000000..b4d16fc
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase
@@ -0,0 +1,7 @@
+geomfromgpb16
+:memory: #use in-memory database
+SELECT AsText(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+POINT ZM(136 -35 4 9.5)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase
new file mode 100644
index 0000000..0f7f172
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase
@@ -0,0 +1,8 @@
+geomfromgpb17
+:memory: #use in-memory database
+SELECT GeomFromGPB(x'4750000EE610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(x'4750000EE610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase
new file mode 100644
index 0000000..40c2d3f
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase
@@ -0,0 +1,8 @@
+geomfromgpb18
+:memory: #use in-memory database
+SELECT GeomFromGPB(x'47500021E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(x'47500021E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase
new file mode 100644
index 0000000..400da18
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase
@@ -0,0 +1,7 @@
+geomfromgpb19
+:memory: #use in-memory database
+SELECT AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C001'))
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C001'))
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase
new file mode 100644
index 0000000..734f674
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase
@@ -0,0 +1,8 @@
+geomfromgpb2
+:memory: #use in-memory database
+SELECT GeomFromGPB(zeroblob(7))
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(zeroblob(7))
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase
new file mode 100644
index 0000000..ee16efb
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase
@@ -0,0 +1,8 @@
+geomfromgpb3
+:memory: #use in-memory database
+SELECT GeomFromGPB(zeroblob(11))
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(zeroblob(11))
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase
new file mode 100644
index 0000000..496524f
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase
@@ -0,0 +1,8 @@
+geomfromgpb4
+:memory: #use in-memory database
+SELECT GeomFromGPB(x'4751000000000000')
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(x'4751000000000000')
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase
new file mode 100644
index 0000000..64fde58
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase
@@ -0,0 +1,8 @@
+geomfromgpb5
+:memory: #use in-memory database
+SELECT GeomFromGPB(x'4750100000000000')
+1 # rows (not including the header row)
+1 # columns
+GeomFromGPB(x'4750100000000000')
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase
new file mode 100644
index 0000000..ca388a7
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase
@@ -0,0 +1,8 @@
+geomfromgpb6
+:memory: #use in-memory database
+SELECT AsText(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0'))
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0'))
+LINESTRING(136 -35, 134 -33, 135 -32)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase
new file mode 100644
index 0000000..7652b2d
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase
@@ -0,0 +1,8 @@
+geomfromgpb7
+:memory: #use in-memory database
+SELECT AsText(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+POINT ZM(136 -35 4 9.5)
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase
new file mode 100644
index 0000000..0387c3c
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase
@@ -0,0 +1,8 @@
+geomfromgpb7
+:memory: #use in-memory database
+SELECT ST_SRID(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+1 # rows (not including the header row)
+1 # columns
+ST_SRID(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340'))
+4326
+
diff --git a/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase b/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase
new file mode 100644
index 0000000..9c94d52
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase
@@ -0,0 +1,7 @@
+geomfromgpb9
+:memory: #use in-memory database
+SELECT ST_SRID(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0'))
+1 # rows (not including the header row)
+1 # columns
+ST_SRID(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0'))
+4326
diff --git a/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase b/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase
new file mode 100644
index 0000000..3711d27
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase
@@ -0,0 +1,7 @@
+implicit geopackage binary 1
+:memory: #use in-memory database
+SELECT Hex(CastToLineString(CastAutomagic(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))))
+1 # rows (not including the header row)
+1 # columns
+Hex(CastToLineString(CastAutomagic(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))))
+0001E61000000000000000C0604000000000008041C0000000000000614000000000000040C07C0200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0FE
diff --git a/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase b/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase
new file mode 100644
index 0000000..5af7178
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase
@@ -0,0 +1,7 @@
+implicit geopackage binary 2
+:memory: #use in-memory database
+SELECT Hex(CastToLineString(CastAutomagic(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))))
+1 # rows (not including the header row)
+1 # columns
+Hex(CastToLineString(CastAutomagic(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))))
+0001E61000000000000000C0604000000000008041C0000000000000614000000000000040C07C0200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0FE
diff --git a/test/sql_stmt_geopackage_tests/makepoint1.testcase b/test/sql_stmt_geopackage_tests/makepoint1.testcase
new file mode 100644
index 0000000..f073163
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint1.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint1
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePoint(136, -35))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePoint(136, -35))
+47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0
diff --git a/test/sql_stmt_geopackage_tests/makepoint2.testcase b/test/sql_stmt_geopackage_tests/makepoint2.testcase
new file mode 100644
index 0000000..4bd79ef
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint2.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint2
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePoint(136, -35, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePoint(136, -35, 4326))
+47500003E61000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0
diff --git a/test/sql_stmt_geopackage_tests/makepoint3.testcase b/test/sql_stmt_geopackage_tests/makepoint3.testcase
new file mode 100644
index 0000000..c433203
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint3.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint3
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePoint(136.0, -35.0, 4326));
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePoint(136.0, -35.0, 4326))
+47500003E61000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0
diff --git a/test/sql_stmt_geopackage_tests/makepoint4.testcase b/test/sql_stmt_geopackage_tests/makepoint4.testcase
new file mode 100644
index 0000000..c625177
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint4.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint4
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePoint(136.0, -35.0))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePoint(136.0, -35.0))
+47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0
diff --git a/test/sql_stmt_geopackage_tests/makepoint5.testcase b/test/sql_stmt_geopackage_tests/makepoint5.testcase
new file mode 100644
index 0000000..b3bd9b6
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint5.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint5
+:memory: #use in-memory database
+SELECT gpkgMakePoint("a", -35.0)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePoint("a", -35.0)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepoint6.testcase b/test/sql_stmt_geopackage_tests/makepoint6.testcase
new file mode 100644
index 0000000..cd13aa1
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint6.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint6
+:memory: #use in-memory database
+SELECT gpkgMakePoint(136, "b")
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePoint(136, "b")
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepoint7.testcase b/test/sql_stmt_geopackage_tests/makepoint7.testcase
new file mode 100644
index 0000000..584a230
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint7.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint7
+:memory: #use in-memory database
+SELECT gpkgMakePoint(136, "b", 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePoint(136, "b", 4326)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepoint8.testcase b/test/sql_stmt_geopackage_tests/makepoint8.testcase
new file mode 100644
index 0000000..aadb2cf
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint8.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint8
+:memory: #use in-memory database
+SELECT gpkgMakePoint("a", -35, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePoint("a", -35, 4326)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepoint9.testcase b/test/sql_stmt_geopackage_tests/makepoint9.testcase
new file mode 100644
index 0000000..e4f70a0
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepoint9.testcase
@@ -0,0 +1,7 @@
+gpkgmakepoint9
+:memory: #use in-memory database
+SELECT gpkgMakePoint(136.0, -35.0, 3.5)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePoint(136.0, -35.0, 3.5)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointm1.testcase b/test/sql_stmt_geopackage_tests/makepointm1.testcase
new file mode 100644
index 0000000..736e8c6
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm1.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm1
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointM(136, -35, 4))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointM(136, -35, 4))
+47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm10.testcase b/test/sql_stmt_geopackage_tests/makepointm10.testcase
new file mode 100644
index 0000000..3334c5d
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm10.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm10
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointM(136.0, -35.0, 4.0, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointM(136.0, -35.0, 4.0, 4326))
+47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm11.testcase b/test/sql_stmt_geopackage_tests/makepointm11.testcase
new file mode 100644
index 0000000..9435861
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm11.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointm10
+:memory: #use in-memory database
+SELECT gpkgMakePointM(136.0, -35.0, 4.0, "srd")
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM(136.0, -35.0, 4.0, "srd")
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm2.testcase b/test/sql_stmt_geopackage_tests/makepointm2.testcase
new file mode 100644
index 0000000..0989608
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm2.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm2
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointM(136.0, -35.0, 4.0))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointM(136.0, -35.0, 4.0))
+47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm3.testcase b/test/sql_stmt_geopackage_tests/makepointm3.testcase
new file mode 100644
index 0000000..f77384f
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm3.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointm3
+:memory: #use in-memory database
+SELECT gpkgMakePointM("x", -35.0, 4.0)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM("x", -35.0, 4.0)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointm4.testcase b/test/sql_stmt_geopackage_tests/makepointm4.testcase
new file mode 100644
index 0000000..2d659f9
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm4.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm4
+:memory: #use in-memory database
+SELECT gpkgMakePointM(136.0, "y", 4.0)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM(136.0, "y", 4.0)
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm5.testcase b/test/sql_stmt_geopackage_tests/makepointm5.testcase
new file mode 100644
index 0000000..6848781
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm5.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm5
+:memory: #use in-memory database
+SELECT gpkgMakePointM(136.0, -35, "z")
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM(136.0, -35, "z")
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm6.testcase b/test/sql_stmt_geopackage_tests/makepointm6.testcase
new file mode 100644
index 0000000..2244347
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm6.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm6
+:memory: #use in-memory database
+SELECT gpkgMakePointM(136.0, -35, "z", 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM(136.0, -35, "z", 4326)
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm7.testcase b/test/sql_stmt_geopackage_tests/makepointm7.testcase
new file mode 100644
index 0000000..9462cac
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm7.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm7
+:memory: #use in-memory database
+SELECT gpkgMakePointM(136.0, "y", 4.0, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM(136.0, "y", 4.0, 4326)
+(NULL)
+
diff --git a/test/sql_stmt_geopackage_tests/makepointm8.testcase b/test/sql_stmt_geopackage_tests/makepointm8.testcase
new file mode 100644
index 0000000..ff41084
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm8.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointm8
+:memory: #use in-memory database
+SELECT gpkgMakePointM("x", -35.0, 4.0, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointM("x", -35.0, 4.0, 4326)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointm9.testcase b/test/sql_stmt_geopackage_tests/makepointm9.testcase
new file mode 100644
index 0000000..2dd269a
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointm9.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointm1
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointM(136, -35, 4, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointM(136, -35, 4, 4326))
+47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointz1.testcase b/test/sql_stmt_geopackage_tests/makepointz1.testcase
new file mode 100644
index 0000000..d3f0af4
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz1.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointz1
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZ(136, -35, 4))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZ(136, -35, 4))
+47500005000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointz10.testcase b/test/sql_stmt_geopackage_tests/makepointz10.testcase
new file mode 100644
index 0000000..8daf340
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz10.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz10
+:memory: #use in-memory database
+SELECT gpkgMakePointZ(135, -35, "z", 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ(135, -35, "z", 4326)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointz11.testcase b/test/sql_stmt_geopackage_tests/makepointz11.testcase
new file mode 100644
index 0000000..e7e1f47
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz11.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz11
+:memory: #use in-memory database
+SELECT gpkgMakePointZ(135, -35, 4, 4326.0)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ(135, -35, 4, 4326.0)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointz2.testcase b/test/sql_stmt_geopackage_tests/makepointz2.testcase
new file mode 100644
index 0000000..9585715
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz2.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointz2
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZ(136, -35, 4, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZ(136, -35, 4, 4326))
+47500005E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointz3.testcase b/test/sql_stmt_geopackage_tests/makepointz3.testcase
new file mode 100644
index 0000000..c3a0d53
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz3.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointz3
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZ(136.0, -35.0, 4.0))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZ(136.0, -35.0, 4.0))
+47500005000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointz4.testcase b/test/sql_stmt_geopackage_tests/makepointz4.testcase
new file mode 100644
index 0000000..3ede3c2
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz4.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointz4
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZ(136.0, -35.0, 4.0, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZ(136.0, -35.0, 4.0, 4326))
+47500005E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040
+
diff --git a/test/sql_stmt_geopackage_tests/makepointz5.testcase b/test/sql_stmt_geopackage_tests/makepointz5.testcase
new file mode 100644
index 0000000..a13edb7
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz5.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz5
+:memory: #use in-memory database
+SELECT gpkgMakePointZ("x", -35, 4)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ("x", -35, 4)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointz6.testcase b/test/sql_stmt_geopackage_tests/makepointz6.testcase
new file mode 100644
index 0000000..f6720d5
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz6.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz6
+:memory: #use in-memory database
+SELECT gpkgMakePointZ(135, "y", 4)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ(135, "y", 4)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointz7.testcase b/test/sql_stmt_geopackage_tests/makepointz7.testcase
new file mode 100644
index 0000000..85b78c5
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz7.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz7
+:memory: #use in-memory database
+SELECT gpkgMakePointZ(135, -35, "z")
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ(135, -35, "z")
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointz8.testcase b/test/sql_stmt_geopackage_tests/makepointz8.testcase
new file mode 100644
index 0000000..7c4aecd
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz8.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz8
+:memory: #use in-memory database
+SELECT gpkgMakePointZ("x", -35, 4, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ("x", -35, 4, 4326)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointz9.testcase b/test/sql_stmt_geopackage_tests/makepointz9.testcase
new file mode 100644
index 0000000..b5c60f1
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointz9.testcase
@@ -0,0 +1,7 @@
+gpkgmakepointz9
+:memory: #use in-memory database
+SELECT gpkgMakePointZ(135, "y", 4, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZ(135, "y", 4, 4326)
+(NULL)
diff --git a/test/sql_stmt_geopackage_tests/makepointzm1.testcase b/test/sql_stmt_geopackage_tests/makepointzm1.testcase
new file mode 100644
index 0000000..d47b5b8
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm1.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointzm1
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5, 4326))
+47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm10.testcase b/test/sql_stmt_geopackage_tests/makepointzm10.testcase
new file mode 100644
index 0000000..12a9e1e
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm10.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointzm10
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZM(136, -35, 4, 9.5))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZM(136, -35, 4, 9.5))
+47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm11.testcase b/test/sql_stmt_geopackage_tests/makepointzm11.testcase
new file mode 100644
index 0000000..6c475e4
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm11.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm11
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, -35, 4, "m")
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, -35, 4, "m")
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm12.testcase b/test/sql_stmt_geopackage_tests/makepointzm12.testcase
new file mode 100644
index 0000000..59e92b1
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm12.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm12
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, -35, "z", 9)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, -35, "z", 9)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm13.testcase b/test/sql_stmt_geopackage_tests/makepointzm13.testcase
new file mode 100644
index 0000000..a653405
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm13.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm13
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, "y", 4, 9)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, "y", 4, 9)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm14.testcase b/test/sql_stmt_geopackage_tests/makepointzm14.testcase
new file mode 100644
index 0000000..0d06f2b
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm14.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm14
+:memory: #use in-memory database
+SELECT gpkgMakePointZM("x", -35, 4, 9)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM("x", -35, 4, 9)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm15.testcase b/test/sql_stmt_geopackage_tests/makepointzm15.testcase
new file mode 100644
index 0000000..eca6d37
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm15.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointzm15
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9))
+47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002240000000000000224001B90B0000000000000000614000000000008041C000000000000010400000000000002240
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm2.testcase b/test/sql_stmt_geopackage_tests/makepointzm2.testcase
new file mode 100644
index 0000000..ea70070
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm2.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointzm2
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZM(136, -35, 4, 9.5, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZM(136, -35, 4, 9.5, 4326))
+47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm3.testcase b/test/sql_stmt_geopackage_tests/makepointzm3.testcase
new file mode 100644
index 0000000..07d94e8
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm3.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm3
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, -35, 4, 9.5, "srid")
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, -35, 4, 9.5, "srid")
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm4.testcase b/test/sql_stmt_geopackage_tests/makepointzm4.testcase
new file mode 100644
index 0000000..1f9bdd8
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm4.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm4
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, -35, 4, "m", 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, -35, 4, "m", 4326)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm5.testcase b/test/sql_stmt_geopackage_tests/makepointzm5.testcase
new file mode 100644
index 0000000..817aa34
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm5.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm5
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, -35, "z", 9.5, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, -35, "z", 9.5, 4326)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm6.testcase b/test/sql_stmt_geopackage_tests/makepointzm6.testcase
new file mode 100644
index 0000000..0d33b09
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm6.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm6
+:memory: #use in-memory database
+SELECT gpkgMakePointZM(136, "y", 3, 9.5, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM(136, "y", 3, 9.5, 4326)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm7.testcase b/test/sql_stmt_geopackage_tests/makepointzm7.testcase
new file mode 100644
index 0000000..8040c7a
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm7.testcase
@@ -0,0 +1,9 @@
+gpkgmakepointzm7
+:memory: #use in-memory database
+SELECT gpkgMakePointZM("x", -35, 3, 9.5, 4326)
+1 # rows (not including the header row)
+1 # columns
+gpkgMakePointZM("x", -35, 3, 9.5, 4326)
+(NULL)
+
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm8.testcase b/test/sql_stmt_geopackage_tests/makepointzm8.testcase
new file mode 100644
index 0000000..0eafd4a
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm8.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointzm8
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9, 4326))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9, 4326))
+47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002240000000000000224001B90B0000000000000000614000000000008041C000000000000010400000000000002240
+
diff --git a/test/sql_stmt_geopackage_tests/makepointzm9.testcase b/test/sql_stmt_geopackage_tests/makepointzm9.testcase
new file mode 100644
index 0000000..2c71a8c
--- /dev/null
+++ b/test/sql_stmt_geopackage_tests/makepointzm9.testcase
@@ -0,0 +1,8 @@
+gpkgmakepointzm9
+:memory: #use in-memory database
+SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5))
+1 # rows (not including the header row)
+1 # columns
+Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5))
+47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340
+
diff --git a/test/sql_stmt_geos_tests/Makefile.am b/test/sql_stmt_geos_tests/Makefile.am
index c92c82d..95103ed 100644
--- a/test/sql_stmt_geos_tests/Makefile.am
+++ b/test/sql_stmt_geos_tests/Makefile.am
@@ -357,4 +357,377 @@ EXTRA_DIST = bdmpolyfromtext10.testcase \
 	union6.testcase \
 	union7.testcase \
 	union8.testcase \
-	union9.testcase 
+	union9.testcase \
+	makearc15.testcase \
+	makearc19.testcase \
+	makearc23.testcase \
+	makecircle10.testcase \
+	makecircle11.testcase \
+	makecircle12.testcase \
+	makecircle13.testcase \
+	makecircle14.testcase \
+	makecircle15.testcase \
+	makecircle16.testcase \
+	makecircle17.testcase \
+	makecircle18.testcase \
+	makeellipse13.testcase \
+	makeellipse17.testcase \
+	makeellipse21.testcase \
+	makeellipticarc18.testcase \
+	makeellipticarc22.testcase \
+	makeellipticarc26.testcase \
+	makecircularsector15.testcase \
+	makecircularsector19.testcase \
+	makecircularsector23.testcase \
+	makecircularstripe15.testcase \
+	makecircularstripe19.testcase \
+	makecircularstripe23.testcase \
+	makeellipticsector18.testcase \
+	makeellipticsector22.testcase \
+	makeellipticsector26.testcase \
+	geoserror1.testcase \
+	geoserror2.testcase \
+	geoserror3.testcase \
+	geoserror4.testcase \
+	geoserror5.testcase \
+	geoserror6.testcase \
+	geoserror7.testcase \
+	geoserror7.testcase \
+	testgeos1.testcase \
+	testgeos2.testcase \
+	testgeos3.testcase \
+	testgeos4.testcase \
+	testgeos5.testcase \
+	testgeos6.testcase \
+	testgeos7.testcase \
+	testgeos8.testcase \
+	testgeos9.testcase \
+	testgeos10.testcase \
+	closestpoint10.testcase \
+	closestpoint11.testcase \
+	closestpoint12.testcase \
+	closestpoint13.testcase \
+	closestpoint14.testcase \
+	closestpoint15.testcase \
+	closestpoint16.testcase \
+	closestpoint17.testcase \
+	closestpoint18.testcase \
+	closestpoint19.testcase \
+	closestpoint1.testcase \
+	closestpoint20.testcase \
+	closestpoint21.testcase \
+	closestpoint22.testcase \
+	closestpoint2.testcase \
+	closestpoint3.testcase \
+	closestpoint4.testcase \
+	closestpoint5.testcase \
+	closestpoint6.testcase \
+	closestpoint7.testcase \
+	closestpoint8.testcase \
+	closestpoint9.testcase \
+	coveredby1.testcase \
+	coveredby2.testcase \
+	covers1.testcase \
+	covers2.testcase \
+	covers_covered1.testcase \
+	covers_covered2.testcase \
+	covers_covered3.testcase \
+	covers_covered4.testcase \
+	covers_covered5.testcase \
+	covers_covered6.testcase \
+	covers_covered7.testcase \
+	createtopo10.testcase \
+	createtopo11.testcase \
+	createtopo12.testcase \
+	createtopo13.testcase \
+	createtopo14.testcase \
+	createtopo15.testcase \
+	createtopo16.testcase \
+	createtopo17.testcase \
+	createtopo18.testcase \
+	createtopo1.testcase \
+	createtopo2.testcase \
+	createtopo3.testcase \
+	createtopo4.testcase \
+	createtopo5.testcase \
+	createtopo6.testcase \
+	createtopo7.testcase \
+	createtopo8.testcase \
+	createtopo9.testcase \
+	distance_geogr10.testcase \
+	distance_geogr11.testcase \
+	distance_geogr12.testcase \
+	distance_geogr1.testcase \
+	distance_geogr2.testcase \
+	distance_geogr3.testcase \
+	distance_geogr4.testcase \
+	distance_geogr5.testcase \
+	distance_geogr6.testcase \
+	distance_geogr7.testcase \
+	distance_geogr8.testcase \
+	distance_geogr9.testcase \
+	hausdorffdistance1.testcase \
+	hausdorffdistance2.testcase \
+	hausdorffdistance3.testcase \
+	hausdorffdistance4.testcase \
+	hausdorffdistance5.testcase \
+	hausdorffdistance6.testcase \
+	hausdorffdistance7.testcase \
+	hexgrid10.testcase \
+	hexgrid11.testcase \
+	hexgrid12.testcase \
+	hexgrid13.testcase \
+	hexgrid14.testcase \
+	hexgrid15.testcase \
+	hexgrid16.testcase \
+	hexgrid17.testcase \
+	hexgrid18.testcase \
+	hexgrid19.testcase \
+	hexgrid1.testcase \
+	hexgrid20.testcase \
+	hexgrid21.testcase \
+	hexgrid22.testcase \
+	hexgrid23.testcase \
+	hexgrid2.testcase \
+	hexgrid3.testcase \
+	hexgrid4.testcase \
+	hexgrid5.testcase \
+	hexgrid6.testcase \
+	hexgrid7.testcase \
+	hexgrid8.testcase \
+	hexgrid9.testcase \
+	interpolateequidistantpoint10.testcase \
+	interpolateequidistantpoint11.testcase \
+	interpolateequidistantpoint12.testcase \
+	interpolateequidistantpoint13.testcase \
+	interpolateequidistantpoint14.testcase \
+	interpolateequidistantpoint1.testcase \
+	interpolateequidistantpoint2.testcase \
+	interpolateequidistantpoint3.testcase \
+	interpolateequidistantpoint4.testcase \
+	interpolateequidistantpoint5.testcase \
+	interpolateequidistantpoint6.testcase \
+	interpolateequidistantpoint7.testcase \
+	interpolateequidistantpoint8.testcase \
+	interpolateequidistantpoint9.testcase \
+	interpolatepoint10.testcase \
+	interpolatepoint11.testcase \
+	interpolatepoint12.testcase \
+	interpolatepoint13.testcase \
+	interpolatepoint14.testcase \
+	interpolatepoint1.testcase \
+	interpolatepoint2.testcase \
+	interpolatepoint3.testcase \
+	interpolatepoint4.testcase \
+	interpolatepoint5.testcase \
+	interpolatepoint6.testcase \
+	interpolatepoint7.testcase \
+	interpolatepoint8.testcase \
+	interpolatepoint9.testcase \
+	linemerge10.testcase \
+	linemerge1.testcase \
+	linemerge2.testcase \
+	linemerge3.testcase \
+	linemerge4.testcase \
+	linemerge5.testcase \
+	linemerge6.testcase \
+	linemerge7.testcase \
+	linemerge8.testcase \
+	linemerge9.testcase \
+	linesnodes10.testcase \
+	linesnodes11.testcase \
+	linesnodes12.testcase \
+	linesnodes13.testcase \
+	linesnodes14.testcase \
+	linesnodes15.testcase \
+	linesnodes16.testcase \
+	linesnodes17.testcase \
+	linesnodes18.testcase \
+	linesnodes19.testcase \
+	linesnodes1.testcase \
+	linesnodes2.testcase \
+	linesnodes3.testcase \
+	linesnodes4.testcase \
+	linesnodes5.testcase \
+	linesnodes6.testcase \
+	linesnodes7.testcase \
+	linesnodes8.testcase \
+	linesnodes9.testcase \
+	linesubstring10.testcase \
+	linesubstring11.testcase \
+	linesubstring12.testcase \
+	linesubstring13.testcase \
+	linesubstring14.testcase \
+	linesubstring15.testcase \
+	linesubstring16.testcase \
+	linesubstring17.testcase \
+	linesubstring18.testcase \
+	linesubstring19.testcase \
+	linesubstring1.testcase \
+	linesubstring20.testcase \
+	linesubstring21.testcase \
+	linesubstring22.testcase \
+	linesubstring23.testcase \
+	linesubstring24.testcase \
+	linesubstring25.testcase \
+	linesubstring26.testcase \
+	linesubstring2.testcase \
+	linesubstring3.testcase \
+	linesubstring4.testcase \
+	linesubstring5.testcase \
+	linesubstring6.testcase \
+	linesubstring7.testcase \
+	linesubstring8.testcase \
+	linesubstring9.testcase \
+	locatepoint10.testcase \
+	locatepoint11.testcase \
+	locatepoint12.testcase \
+	locatepoint1.testcase \
+	locatepoint2.testcase \
+	locatepoint3.testcase \
+	locatepoint4.testcase \
+	locatepoint5.testcase \
+	locatepoint6.testcase \
+	locatepoint7.testcase \
+	locatepoint8.testcase \
+	locatepoint9.testcase \
+	offsetcurve10.testcase \
+	offsetcurve11.testcase \
+	offsetcurve12.testcase \
+	offsetcurve13.testcase \
+	offsetcurve14.testcase \
+	offsetcurve1.testcase \
+	offsetcurve2.testcase \
+	offsetcurve3.testcase \
+	offsetcurve4.testcase \
+	offsetcurve5.testcase \
+	offsetcurve6.testcase \
+	offsetcurve7.testcase \
+	offsetcurve8.testcase \
+	offsetcurve9.testcase \
+	ringsnodes1.testcase \
+	ringsnodes2.testcase \
+	ringsnodes3.testcase \
+	ringsnodes4.testcase \
+	ringsnodes5.testcase \
+	ringsnodes6.testcase \
+	sharedpaths10.testcase \
+	sharedpaths11.testcase \
+	sharedpaths12.testcase \
+	sharedpaths13.testcase \
+	sharedpaths14.testcase \
+	sharedpaths15.testcase \
+	sharedpaths16.testcase \
+	sharedpaths17.testcase \
+	sharedpaths18.testcase \
+	sharedpaths19.testcase \
+	sharedpaths1.testcase \
+	sharedpaths20.testcase \
+	sharedpaths21.testcase \
+	sharedpaths22.testcase \
+	sharedpaths23.testcase \
+	sharedpaths24.testcase \
+	sharedpaths25.testcase \
+	sharedpaths26.testcase \
+	sharedpaths27.testcase \
+	sharedpaths28.testcase \
+	sharedpaths29.testcase \
+	sharedpaths2.testcase \
+	sharedpaths30.testcase \
+	sharedpaths31.testcase \
+	sharedpaths32.testcase \
+	sharedpaths3.testcase \
+	sharedpaths4.testcase \
+	sharedpaths5.testcase \
+	sharedpaths6.testcase \
+	sharedpaths7.testcase \
+	sharedpaths8.testcase \
+	sharedpaths9.testcase \
+	shortestline1.testcase \
+	shortestline2.testcase \
+	shortestline3.testcase \
+	shortestline4.testcase \
+	shortestline5.testcase \
+	shortestline6.testcase \
+	shortestline7.testcase \
+	singlesidedbuffer11.testcase \
+	singlesidedbuffer12.testcase \
+	singlesidedbuffer13.testcase \
+	singlesidedbuffer14.testcase \
+	singlesidedbuffer15.testcase \
+	singlesidedbuffer16.testcase \
+	singlesidedbuffer17.testcase \
+	singlesidedbuffer1.testcase \
+	singlesidedbuffer2.testcase \
+	singlesidedbuffer3.testcase \
+	singlesidedbuffer4.testcase \
+	singlesidedbuffer5.testcase \
+	singlesidedbuffer6.testcase \
+	singlesidedbuffer7.testcase \
+	singlesidedbuffer8.testcase \
+	singlesidedbuffer9.testcase \
+	snap10.testcase \
+	snap1.testcase \
+	snap2.testcase \
+	snap3.testcase \
+	snap4.testcase \
+	snap5.testcase \
+	snap6.testcase \
+	snap7.testcase \
+	snap8.testcase \
+	snap9.testcase \
+	squaregrid10.testcase \
+	squaregrid11.testcase \
+	squaregrid12.testcase \
+	squaregrid13.testcase \
+	squaregrid14.testcase \
+	squaregrid15.testcase \
+	squaregrid16.testcase \
+	squaregrid17.testcase \
+	squaregrid18.testcase \
+	squaregrid19.testcase \
+	squaregrid1.testcase \
+	squaregrid20.testcase \
+	squaregrid21.testcase \
+	squaregrid22.testcase \
+	squaregrid23.testcase \
+	squaregrid2.testcase \
+	squaregrid3.testcase \
+	squaregrid4.testcase \
+	squaregrid5.testcase \
+	squaregrid6.testcase \
+	squaregrid7.testcase \
+	squaregrid8.testcase \
+	squaregrid9.testcase \
+	trianggrid10.testcase \
+	trianggrid11.testcase \
+	trianggrid12.testcase \
+	trianggrid13.testcase \
+	trianggrid14.testcase \
+	trianggrid15.testcase \
+	trianggrid16.testcase \
+	trianggrid17.testcase \
+	trianggrid18.testcase \
+	trianggrid19.testcase \
+	trianggrid1.testcase \
+	trianggrid20.testcase \
+	trianggrid21.testcase \
+	trianggrid22.testcase \
+	trianggrid23.testcase \
+	trianggrid2.testcase \
+	trianggrid3.testcase \
+	trianggrid4.testcase \
+	trianggrid5.testcase \
+	trianggrid6.testcase \
+	trianggrid7.testcase \
+	trianggrid8.testcase \
+	trianggrid9.testcase \
+	unaryunion1.testcase \
+	unaryunion2.testcase \
+	unaryunion3.testcase \
+	unaryunion4.testcase \
+	unaryunion5.testcase \
+	unaryunion6.testcase \
+	unaryunion7.testcase \
+	unaryunion8.testcase 
+
diff --git a/test/sql_stmt_geos_tests/Makefile.in b/test/sql_stmt_geos_tests/Makefile.in
index f879637..59ea9d5 100644
--- a/test/sql_stmt_geos_tests/Makefile.in
+++ b/test/sql_stmt_geos_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_geos_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -557,7 +599,379 @@ EXTRA_DIST = bdmpolyfromtext10.testcase \
 	union6.testcase \
 	union7.testcase \
 	union8.testcase \
-	union9.testcase 
+	union9.testcase \
+	makearc15.testcase \
+	makearc19.testcase \
+	makearc23.testcase \
+	makecircle10.testcase \
+	makecircle11.testcase \
+	makecircle12.testcase \
+	makecircle13.testcase \
+	makecircle14.testcase \
+	makecircle15.testcase \
+	makecircle16.testcase \
+	makecircle17.testcase \
+	makecircle18.testcase \
+	makeellipse13.testcase \
+	makeellipse17.testcase \
+	makeellipse21.testcase \
+	makeellipticarc18.testcase \
+	makeellipticarc22.testcase \
+	makeellipticarc26.testcase \
+	makecircularsector15.testcase \
+	makecircularsector19.testcase \
+	makecircularsector23.testcase \
+	makecircularstripe15.testcase \
+	makecircularstripe19.testcase \
+	makecircularstripe23.testcase \
+	makeellipticsector18.testcase \
+	makeellipticsector22.testcase \
+	makeellipticsector26.testcase \
+	geoserror1.testcase \
+	geoserror2.testcase \
+	geoserror3.testcase \
+	geoserror4.testcase \
+	geoserror5.testcase \
+	geoserror6.testcase \
+	geoserror7.testcase \
+	geoserror7.testcase \
+	testgeos1.testcase \
+	testgeos2.testcase \
+	testgeos3.testcase \
+	testgeos4.testcase \
+	testgeos5.testcase \
+	testgeos6.testcase \
+	testgeos7.testcase \
+	testgeos8.testcase \
+	testgeos9.testcase \
+	testgeos10.testcase \
+	closestpoint10.testcase \
+	closestpoint11.testcase \
+	closestpoint12.testcase \
+	closestpoint13.testcase \
+	closestpoint14.testcase \
+	closestpoint15.testcase \
+	closestpoint16.testcase \
+	closestpoint17.testcase \
+	closestpoint18.testcase \
+	closestpoint19.testcase \
+	closestpoint1.testcase \
+	closestpoint20.testcase \
+	closestpoint21.testcase \
+	closestpoint22.testcase \
+	closestpoint2.testcase \
+	closestpoint3.testcase \
+	closestpoint4.testcase \
+	closestpoint5.testcase \
+	closestpoint6.testcase \
+	closestpoint7.testcase \
+	closestpoint8.testcase \
+	closestpoint9.testcase \
+	coveredby1.testcase \
+	coveredby2.testcase \
+	covers1.testcase \
+	covers2.testcase \
+	covers_covered1.testcase \
+	covers_covered2.testcase \
+	covers_covered3.testcase \
+	covers_covered4.testcase \
+	covers_covered5.testcase \
+	covers_covered6.testcase \
+	covers_covered7.testcase \
+	createtopo10.testcase \
+	createtopo11.testcase \
+	createtopo12.testcase \
+	createtopo13.testcase \
+	createtopo14.testcase \
+	createtopo15.testcase \
+	createtopo16.testcase \
+	createtopo17.testcase \
+	createtopo18.testcase \
+	createtopo1.testcase \
+	createtopo2.testcase \
+	createtopo3.testcase \
+	createtopo4.testcase \
+	createtopo5.testcase \
+	createtopo6.testcase \
+	createtopo7.testcase \
+	createtopo8.testcase \
+	createtopo9.testcase \
+	distance_geogr10.testcase \
+	distance_geogr11.testcase \
+	distance_geogr12.testcase \
+	distance_geogr1.testcase \
+	distance_geogr2.testcase \
+	distance_geogr3.testcase \
+	distance_geogr4.testcase \
+	distance_geogr5.testcase \
+	distance_geogr6.testcase \
+	distance_geogr7.testcase \
+	distance_geogr8.testcase \
+	distance_geogr9.testcase \
+	hausdorffdistance1.testcase \
+	hausdorffdistance2.testcase \
+	hausdorffdistance3.testcase \
+	hausdorffdistance4.testcase \
+	hausdorffdistance5.testcase \
+	hausdorffdistance6.testcase \
+	hausdorffdistance7.testcase \
+	hexgrid10.testcase \
+	hexgrid11.testcase \
+	hexgrid12.testcase \
+	hexgrid13.testcase \
+	hexgrid14.testcase \
+	hexgrid15.testcase \
+	hexgrid16.testcase \
+	hexgrid17.testcase \
+	hexgrid18.testcase \
+	hexgrid19.testcase \
+	hexgrid1.testcase \
+	hexgrid20.testcase \
+	hexgrid21.testcase \
+	hexgrid22.testcase \
+	hexgrid23.testcase \
+	hexgrid2.testcase \
+	hexgrid3.testcase \
+	hexgrid4.testcase \
+	hexgrid5.testcase \
+	hexgrid6.testcase \
+	hexgrid7.testcase \
+	hexgrid8.testcase \
+	hexgrid9.testcase \
+	interpolateequidistantpoint10.testcase \
+	interpolateequidistantpoint11.testcase \
+	interpolateequidistantpoint12.testcase \
+	interpolateequidistantpoint13.testcase \
+	interpolateequidistantpoint14.testcase \
+	interpolateequidistantpoint1.testcase \
+	interpolateequidistantpoint2.testcase \
+	interpolateequidistantpoint3.testcase \
+	interpolateequidistantpoint4.testcase \
+	interpolateequidistantpoint5.testcase \
+	interpolateequidistantpoint6.testcase \
+	interpolateequidistantpoint7.testcase \
+	interpolateequidistantpoint8.testcase \
+	interpolateequidistantpoint9.testcase \
+	interpolatepoint10.testcase \
+	interpolatepoint11.testcase \
+	interpolatepoint12.testcase \
+	interpolatepoint13.testcase \
+	interpolatepoint14.testcase \
+	interpolatepoint1.testcase \
+	interpolatepoint2.testcase \
+	interpolatepoint3.testcase \
+	interpolatepoint4.testcase \
+	interpolatepoint5.testcase \
+	interpolatepoint6.testcase \
+	interpolatepoint7.testcase \
+	interpolatepoint8.testcase \
+	interpolatepoint9.testcase \
+	linemerge10.testcase \
+	linemerge1.testcase \
+	linemerge2.testcase \
+	linemerge3.testcase \
+	linemerge4.testcase \
+	linemerge5.testcase \
+	linemerge6.testcase \
+	linemerge7.testcase \
+	linemerge8.testcase \
+	linemerge9.testcase \
+	linesnodes10.testcase \
+	linesnodes11.testcase \
+	linesnodes12.testcase \
+	linesnodes13.testcase \
+	linesnodes14.testcase \
+	linesnodes15.testcase \
+	linesnodes16.testcase \
+	linesnodes17.testcase \
+	linesnodes18.testcase \
+	linesnodes19.testcase \
+	linesnodes1.testcase \
+	linesnodes2.testcase \
+	linesnodes3.testcase \
+	linesnodes4.testcase \
+	linesnodes5.testcase \
+	linesnodes6.testcase \
+	linesnodes7.testcase \
+	linesnodes8.testcase \
+	linesnodes9.testcase \
+	linesubstring10.testcase \
+	linesubstring11.testcase \
+	linesubstring12.testcase \
+	linesubstring13.testcase \
+	linesubstring14.testcase \
+	linesubstring15.testcase \
+	linesubstring16.testcase \
+	linesubstring17.testcase \
+	linesubstring18.testcase \
+	linesubstring19.testcase \
+	linesubstring1.testcase \
+	linesubstring20.testcase \
+	linesubstring21.testcase \
+	linesubstring22.testcase \
+	linesubstring23.testcase \
+	linesubstring24.testcase \
+	linesubstring25.testcase \
+	linesubstring26.testcase \
+	linesubstring2.testcase \
+	linesubstring3.testcase \
+	linesubstring4.testcase \
+	linesubstring5.testcase \
+	linesubstring6.testcase \
+	linesubstring7.testcase \
+	linesubstring8.testcase \
+	linesubstring9.testcase \
+	locatepoint10.testcase \
+	locatepoint11.testcase \
+	locatepoint12.testcase \
+	locatepoint1.testcase \
+	locatepoint2.testcase \
+	locatepoint3.testcase \
+	locatepoint4.testcase \
+	locatepoint5.testcase \
+	locatepoint6.testcase \
+	locatepoint7.testcase \
+	locatepoint8.testcase \
+	locatepoint9.testcase \
+	offsetcurve10.testcase \
+	offsetcurve11.testcase \
+	offsetcurve12.testcase \
+	offsetcurve13.testcase \
+	offsetcurve14.testcase \
+	offsetcurve1.testcase \
+	offsetcurve2.testcase \
+	offsetcurve3.testcase \
+	offsetcurve4.testcase \
+	offsetcurve5.testcase \
+	offsetcurve6.testcase \
+	offsetcurve7.testcase \
+	offsetcurve8.testcase \
+	offsetcurve9.testcase \
+	ringsnodes1.testcase \
+	ringsnodes2.testcase \
+	ringsnodes3.testcase \
+	ringsnodes4.testcase \
+	ringsnodes5.testcase \
+	ringsnodes6.testcase \
+	sharedpaths10.testcase \
+	sharedpaths11.testcase \
+	sharedpaths12.testcase \
+	sharedpaths13.testcase \
+	sharedpaths14.testcase \
+	sharedpaths15.testcase \
+	sharedpaths16.testcase \
+	sharedpaths17.testcase \
+	sharedpaths18.testcase \
+	sharedpaths19.testcase \
+	sharedpaths1.testcase \
+	sharedpaths20.testcase \
+	sharedpaths21.testcase \
+	sharedpaths22.testcase \
+	sharedpaths23.testcase \
+	sharedpaths24.testcase \
+	sharedpaths25.testcase \
+	sharedpaths26.testcase \
+	sharedpaths27.testcase \
+	sharedpaths28.testcase \
+	sharedpaths29.testcase \
+	sharedpaths2.testcase \
+	sharedpaths30.testcase \
+	sharedpaths31.testcase \
+	sharedpaths32.testcase \
+	sharedpaths3.testcase \
+	sharedpaths4.testcase \
+	sharedpaths5.testcase \
+	sharedpaths6.testcase \
+	sharedpaths7.testcase \
+	sharedpaths8.testcase \
+	sharedpaths9.testcase \
+	shortestline1.testcase \
+	shortestline2.testcase \
+	shortestline3.testcase \
+	shortestline4.testcase \
+	shortestline5.testcase \
+	shortestline6.testcase \
+	shortestline7.testcase \
+	singlesidedbuffer11.testcase \
+	singlesidedbuffer12.testcase \
+	singlesidedbuffer13.testcase \
+	singlesidedbuffer14.testcase \
+	singlesidedbuffer15.testcase \
+	singlesidedbuffer16.testcase \
+	singlesidedbuffer17.testcase \
+	singlesidedbuffer1.testcase \
+	singlesidedbuffer2.testcase \
+	singlesidedbuffer3.testcase \
+	singlesidedbuffer4.testcase \
+	singlesidedbuffer5.testcase \
+	singlesidedbuffer6.testcase \
+	singlesidedbuffer7.testcase \
+	singlesidedbuffer8.testcase \
+	singlesidedbuffer9.testcase \
+	snap10.testcase \
+	snap1.testcase \
+	snap2.testcase \
+	snap3.testcase \
+	snap4.testcase \
+	snap5.testcase \
+	snap6.testcase \
+	snap7.testcase \
+	snap8.testcase \
+	snap9.testcase \
+	squaregrid10.testcase \
+	squaregrid11.testcase \
+	squaregrid12.testcase \
+	squaregrid13.testcase \
+	squaregrid14.testcase \
+	squaregrid15.testcase \
+	squaregrid16.testcase \
+	squaregrid17.testcase \
+	squaregrid18.testcase \
+	squaregrid19.testcase \
+	squaregrid1.testcase \
+	squaregrid20.testcase \
+	squaregrid21.testcase \
+	squaregrid22.testcase \
+	squaregrid23.testcase \
+	squaregrid2.testcase \
+	squaregrid3.testcase \
+	squaregrid4.testcase \
+	squaregrid5.testcase \
+	squaregrid6.testcase \
+	squaregrid7.testcase \
+	squaregrid8.testcase \
+	squaregrid9.testcase \
+	trianggrid10.testcase \
+	trianggrid11.testcase \
+	trianggrid12.testcase \
+	trianggrid13.testcase \
+	trianggrid14.testcase \
+	trianggrid15.testcase \
+	trianggrid16.testcase \
+	trianggrid17.testcase \
+	trianggrid18.testcase \
+	trianggrid19.testcase \
+	trianggrid1.testcase \
+	trianggrid20.testcase \
+	trianggrid21.testcase \
+	trianggrid22.testcase \
+	trianggrid23.testcase \
+	trianggrid2.testcase \
+	trianggrid3.testcase \
+	trianggrid4.testcase \
+	trianggrid5.testcase \
+	trianggrid6.testcase \
+	trianggrid7.testcase \
+	trianggrid8.testcase \
+	trianggrid9.testcase \
+	unaryunion1.testcase \
+	unaryunion2.testcase \
+	unaryunion3.testcase \
+	unaryunion4.testcase \
+	unaryunion5.testcase \
+	unaryunion6.testcase \
+	unaryunion7.testcase \
+	unaryunion8.testcase 
 
 all: all-am
 
@@ -598,11 +1012,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -740,15 +1152,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint1.testcase b/test/sql_stmt_geos_tests/closestpoint1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint1.testcase
rename to test/sql_stmt_geos_tests/closestpoint1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint10.testcase b/test/sql_stmt_geos_tests/closestpoint10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint10.testcase
rename to test/sql_stmt_geos_tests/closestpoint10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint11.testcase b/test/sql_stmt_geos_tests/closestpoint11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint11.testcase
rename to test/sql_stmt_geos_tests/closestpoint11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint12.testcase b/test/sql_stmt_geos_tests/closestpoint12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint12.testcase
rename to test/sql_stmt_geos_tests/closestpoint12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint13.testcase b/test/sql_stmt_geos_tests/closestpoint13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint13.testcase
rename to test/sql_stmt_geos_tests/closestpoint13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint14.testcase b/test/sql_stmt_geos_tests/closestpoint14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint14.testcase
rename to test/sql_stmt_geos_tests/closestpoint14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint15.testcase b/test/sql_stmt_geos_tests/closestpoint15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint15.testcase
rename to test/sql_stmt_geos_tests/closestpoint15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint16.testcase b/test/sql_stmt_geos_tests/closestpoint16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint16.testcase
rename to test/sql_stmt_geos_tests/closestpoint16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint17.testcase b/test/sql_stmt_geos_tests/closestpoint17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint17.testcase
rename to test/sql_stmt_geos_tests/closestpoint17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint18.testcase b/test/sql_stmt_geos_tests/closestpoint18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint18.testcase
rename to test/sql_stmt_geos_tests/closestpoint18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint19.testcase b/test/sql_stmt_geos_tests/closestpoint19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint19.testcase
rename to test/sql_stmt_geos_tests/closestpoint19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint2.testcase b/test/sql_stmt_geos_tests/closestpoint2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint2.testcase
rename to test/sql_stmt_geos_tests/closestpoint2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint20.testcase b/test/sql_stmt_geos_tests/closestpoint20.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint20.testcase
rename to test/sql_stmt_geos_tests/closestpoint20.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint21.testcase b/test/sql_stmt_geos_tests/closestpoint21.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint21.testcase
rename to test/sql_stmt_geos_tests/closestpoint21.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint22.testcase b/test/sql_stmt_geos_tests/closestpoint22.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint22.testcase
rename to test/sql_stmt_geos_tests/closestpoint22.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint3.testcase b/test/sql_stmt_geos_tests/closestpoint3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint3.testcase
rename to test/sql_stmt_geos_tests/closestpoint3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint4.testcase b/test/sql_stmt_geos_tests/closestpoint4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint4.testcase
rename to test/sql_stmt_geos_tests/closestpoint4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint5.testcase b/test/sql_stmt_geos_tests/closestpoint5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint5.testcase
rename to test/sql_stmt_geos_tests/closestpoint5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint6.testcase b/test/sql_stmt_geos_tests/closestpoint6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint6.testcase
rename to test/sql_stmt_geos_tests/closestpoint6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint7.testcase b/test/sql_stmt_geos_tests/closestpoint7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint7.testcase
rename to test/sql_stmt_geos_tests/closestpoint7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint8.testcase b/test/sql_stmt_geos_tests/closestpoint8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint8.testcase
rename to test/sql_stmt_geos_tests/closestpoint8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/closestpoint9.testcase b/test/sql_stmt_geos_tests/closestpoint9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/closestpoint9.testcase
rename to test/sql_stmt_geos_tests/closestpoint9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/coveredby1.testcase b/test/sql_stmt_geos_tests/coveredby1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/coveredby1.testcase
rename to test/sql_stmt_geos_tests/coveredby1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/coveredby2.testcase b/test/sql_stmt_geos_tests/coveredby2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/coveredby2.testcase
rename to test/sql_stmt_geos_tests/coveredby2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers1.testcase b/test/sql_stmt_geos_tests/covers1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers1.testcase
rename to test/sql_stmt_geos_tests/covers1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers2.testcase b/test/sql_stmt_geos_tests/covers2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers2.testcase
rename to test/sql_stmt_geos_tests/covers2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered1.testcase b/test/sql_stmt_geos_tests/covers_covered1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered1.testcase
rename to test/sql_stmt_geos_tests/covers_covered1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered2.testcase b/test/sql_stmt_geos_tests/covers_covered2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered2.testcase
rename to test/sql_stmt_geos_tests/covers_covered2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered3.testcase b/test/sql_stmt_geos_tests/covers_covered3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered3.testcase
rename to test/sql_stmt_geos_tests/covers_covered3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered4.testcase b/test/sql_stmt_geos_tests/covers_covered4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered4.testcase
rename to test/sql_stmt_geos_tests/covers_covered4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered5.testcase b/test/sql_stmt_geos_tests/covers_covered5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered5.testcase
rename to test/sql_stmt_geos_tests/covers_covered5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered6.testcase b/test/sql_stmt_geos_tests/covers_covered6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered6.testcase
rename to test/sql_stmt_geos_tests/covers_covered6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/covers_covered7.testcase b/test/sql_stmt_geos_tests/covers_covered7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/covers_covered7.testcase
rename to test/sql_stmt_geos_tests/covers_covered7.testcase
diff --git a/test/sql_stmt_geos_tests/createtopo1.testcase b/test/sql_stmt_geos_tests/createtopo1.testcase
new file mode 100644
index 0000000..dc6ca17
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo1.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 2 arguments, 2D
+NEW:memory: #use in-memory database (empty)
+SELECT CreateTopologyTables(4326, "XY");
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables(4326, "XY")
+1
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo10.testcase b/test/sql_stmt_geos_tests/createtopo10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo10.testcase
rename to test/sql_stmt_geos_tests/createtopo10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo11.testcase b/test/sql_stmt_geos_tests/createtopo11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo11.testcase
rename to test/sql_stmt_geos_tests/createtopo11.testcase
diff --git a/test/sql_stmt_geos_tests/createtopo12.testcase b/test/sql_stmt_geos_tests/createtopo12.testcase
new file mode 100644
index 0000000..3eb09c3
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo12.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 3 arguments, spaces in prefix
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables("hello world", 4326, 3);
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables("hello world", 4326, 3)
+1
diff --git a/test/sql_stmt_geos_tests/createtopo13.testcase b/test/sql_stmt_geos_tests/createtopo13.testcase
new file mode 100644
index 0000000..dc78c9a
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo13.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 3 arguments, quote in prefix
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables("hello'_world", 4326, 3);
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables("hello'_world", 4326, 3)
+1
diff --git a/test/sql_stmt_geos_tests/createtopo14.testcase b/test/sql_stmt_geos_tests/createtopo14.testcase
new file mode 100644
index 0000000..7ded789
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo14.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 2 arguments, 2D int
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables(4326, 2);
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables(4326, 2)
+1
diff --git a/test/sql_stmt_geos_tests/createtopo15.testcase b/test/sql_stmt_geos_tests/createtopo15.testcase
new file mode 100644
index 0000000..7ec6147
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo15.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 2 arguments, 3D int
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables(4326, 3);
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables(4326, 3)
+1
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo16.testcase b/test/sql_stmt_geos_tests/createtopo16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo16.testcase
rename to test/sql_stmt_geos_tests/createtopo16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo17.testcase b/test/sql_stmt_geos_tests/createtopo17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo17.testcase
rename to test/sql_stmt_geos_tests/createtopo17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo18.testcase b/test/sql_stmt_geos_tests/createtopo18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo18.testcase
rename to test/sql_stmt_geos_tests/createtopo18.testcase
diff --git a/test/sql_stmt_geos_tests/createtopo2.testcase b/test/sql_stmt_geos_tests/createtopo2.testcase
new file mode 100644
index 0000000..dbcf50e
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo2.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 2 arguments, 3D
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables(4326, "XYZ");
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables(4326, "XYZ")
+1
diff --git a/test/sql_stmt_geos_tests/createtopo3.testcase b/test/sql_stmt_geos_tests/createtopo3.testcase
new file mode 100644
index 0000000..d46f699
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo3.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 3 arguments, 2D
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables("my_prefix", 4326, "XY");
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables("my_prefix", 4326, "XY")
+1
diff --git a/test/sql_stmt_geos_tests/createtopo4.testcase b/test/sql_stmt_geos_tests/createtopo4.testcase
new file mode 100644
index 0000000..9cc7604
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo4.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 3 arguments, 3D
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables("my_prefix", 4326, "XYZ");
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables("my_prefix", 4326, "XYZ")
+1
diff --git a/test/sql_stmt_geos_tests/createtopo5.testcase b/test/sql_stmt_geos_tests/createtopo5.testcase
new file mode 100644
index 0000000..e128fb2
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo5.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 3 arguments, 3D int
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables("my_prefix", 4326, 3);
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables("my_prefix", 4326, 3)
+1
diff --git a/test/sql_stmt_geos_tests/createtopo6.testcase b/test/sql_stmt_geos_tests/createtopo6.testcase
new file mode 100644
index 0000000..e662c9b
--- /dev/null
+++ b/test/sql_stmt_geos_tests/createtopo6.testcase
@@ -0,0 +1,7 @@
+CreateTopology - 3 arguments, 2D int
+NEW:memory: #use in-memory database
+SELECT CreateTopologyTables("my_prefix", 4326, 2);
+1 # rows (not including the header row)
+1 # columns
+CreateTopologyTables("my_prefix", 4326, 2)
+1
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo7.testcase b/test/sql_stmt_geos_tests/createtopo7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo7.testcase
rename to test/sql_stmt_geos_tests/createtopo7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo8.testcase b/test/sql_stmt_geos_tests/createtopo8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo8.testcase
rename to test/sql_stmt_geos_tests/createtopo8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo9.testcase b/test/sql_stmt_geos_tests/createtopo9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/createtopo9.testcase
rename to test/sql_stmt_geos_tests/createtopo9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr1.testcase b/test/sql_stmt_geos_tests/distance_geogr1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr1.testcase
rename to test/sql_stmt_geos_tests/distance_geogr1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr10.testcase b/test/sql_stmt_geos_tests/distance_geogr10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr10.testcase
rename to test/sql_stmt_geos_tests/distance_geogr10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr11.testcase b/test/sql_stmt_geos_tests/distance_geogr11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr11.testcase
rename to test/sql_stmt_geos_tests/distance_geogr11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr12.testcase b/test/sql_stmt_geos_tests/distance_geogr12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr12.testcase
rename to test/sql_stmt_geos_tests/distance_geogr12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr2.testcase b/test/sql_stmt_geos_tests/distance_geogr2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr2.testcase
rename to test/sql_stmt_geos_tests/distance_geogr2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr3.testcase b/test/sql_stmt_geos_tests/distance_geogr3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr3.testcase
rename to test/sql_stmt_geos_tests/distance_geogr3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr4.testcase b/test/sql_stmt_geos_tests/distance_geogr4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr4.testcase
rename to test/sql_stmt_geos_tests/distance_geogr4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr5.testcase b/test/sql_stmt_geos_tests/distance_geogr5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr5.testcase
rename to test/sql_stmt_geos_tests/distance_geogr5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr6.testcase b/test/sql_stmt_geos_tests/distance_geogr6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr6.testcase
rename to test/sql_stmt_geos_tests/distance_geogr6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr7.testcase b/test/sql_stmt_geos_tests/distance_geogr7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr7.testcase
rename to test/sql_stmt_geos_tests/distance_geogr7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr8.testcase b/test/sql_stmt_geos_tests/distance_geogr8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr8.testcase
rename to test/sql_stmt_geos_tests/distance_geogr8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/distance_geogr9.testcase b/test/sql_stmt_geos_tests/distance_geogr9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/distance_geogr9.testcase
rename to test/sql_stmt_geos_tests/distance_geogr9.testcase
diff --git a/test/sql_stmt_geos_tests/geoserror1.testcase b/test/sql_stmt_geos_tests/geoserror1.testcase
new file mode 100644
index 0000000..7859bf8
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror1.testcase
@@ -0,0 +1,18 @@
+GEOS_Error - valid Linestring
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 2 2)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg());
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 2 2)'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg())
+1
+(NULL)
+(NULL)
+(NULL)
+(NULL)
+
+
+
diff --git a/test/sql_stmt_geos_tests/geoserror2.testcase b/test/sql_stmt_geos_tests/geoserror2.testcase
new file mode 100644
index 0000000..49c55c8
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror2.testcase
@@ -0,0 +1,18 @@
+GEOS_Error - valid Polygon
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg());
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg())
+1
+(NULL)
+(NULL)
+(NULL)
+(NULL)
+
+
+
diff --git a/test/sql_stmt_geos_tests/geoserror3.testcase b/test/sql_stmt_geos_tests/geoserror3.testcase
new file mode 100644
index 0000000..949cdc3
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror3.testcase
@@ -0,0 +1,18 @@
+GEOS_Error - invalid Linestring (collapses to a Point)
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 1 1, 1 1)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg());
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 1 1, 1 1)'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg())
+0
+Too few points in geometry component at or near point 1 1
+(NULL)
+(NULL)
+POINT(1 1)
+
+
+
diff --git a/test/sql_stmt_geos_tests/geoserror4.testcase b/test/sql_stmt_geos_tests/geoserror4.testcase
new file mode 100644
index 0000000..95c83f3
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror4.testcase
@@ -0,0 +1,18 @@
+GEOS_Error - valid self-intersecting Linestring 
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 2 1, 1 2, 0 1, 2 0)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg());
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 2 1, 1 2, 0 1, 2 0)'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg())
+1
+(NULL)
+(NULL)
+(NULL)
+(NULL)
+
+
+
diff --git a/test/sql_stmt_geos_tests/geoserror5.testcase b/test/sql_stmt_geos_tests/geoserror5.testcase
new file mode 100644
index 0000000..bdf69b8
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror5.testcase
@@ -0,0 +1,18 @@
+GEOS_Error - invalid self-intersecting Polygon
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg(4326));
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg(4326))
+0
+Self-intersection at or near point 0.5 0.5
+(NULL)
+(NULL)
+POINT(0.5 0.5)
+
+
+
diff --git a/test/sql_stmt_geos_tests/geoserror6.testcase b/test/sql_stmt_geos_tests/geoserror6.testcase
new file mode 100644
index 0000000..6be425a
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror6.testcase
@@ -0,0 +1,19 @@
+GEOS_Error - invalid unclosed Polygon
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg());
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1))'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg())
+0
+(NULL)
+(NULL)
+gaia detected a not-closed Ring
+(NULL)
+
+
+
+
diff --git a/test/sql_stmt_geos_tests/geoserror7.testcase b/test/sql_stmt_geos_tests/geoserror7.testcase
new file mode 100644
index 0000000..ec81793
--- /dev/null
+++ b/test/sql_stmt_geos_tests/geoserror7.testcase
@@ -0,0 +1,19 @@
+GEOS_Error - invalid Polygon (collapsed to a line)
+:memory: #use in-memory database
+SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 0 0, 1 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg());
+1 # rows (not including the header row)
+5 # columns
+ST_IsValid(ST_GeomFromText('POLYGON((0 0, 0 0, 1 1, 0 0))'))
+GEOS_GetLastWarningMsg()
+GEOS_GetLastErrorMsg()
+GEOS_GetLastAuxErrorMsg()
+ST_AsText(GEOS_GetCriticalPointFromMsg())
+0
+Too few points in geometry component at or near point 0 0
+(NULL)
+(NULL)
+POINT(0 0)
+
+
+
+
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase b/test/sql_stmt_geos_tests/hausdorffdistance1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance1.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase b/test/sql_stmt_geos_tests/hausdorffdistance2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance2.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase b/test/sql_stmt_geos_tests/hausdorffdistance3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance3.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase b/test/sql_stmt_geos_tests/hausdorffdistance4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance4.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase b/test/sql_stmt_geos_tests/hausdorffdistance5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance5.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase b/test/sql_stmt_geos_tests/hausdorffdistance6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance6.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase b/test/sql_stmt_geos_tests/hausdorffdistance7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hausdorffdistance7.testcase
rename to test/sql_stmt_geos_tests/hausdorffdistance7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid1.testcase b/test/sql_stmt_geos_tests/hexgrid1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid1.testcase
rename to test/sql_stmt_geos_tests/hexgrid1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid10.testcase b/test/sql_stmt_geos_tests/hexgrid10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid10.testcase
rename to test/sql_stmt_geos_tests/hexgrid10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid11.testcase b/test/sql_stmt_geos_tests/hexgrid11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid11.testcase
rename to test/sql_stmt_geos_tests/hexgrid11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid12.testcase b/test/sql_stmt_geos_tests/hexgrid12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid12.testcase
rename to test/sql_stmt_geos_tests/hexgrid12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid13.testcase b/test/sql_stmt_geos_tests/hexgrid13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid13.testcase
rename to test/sql_stmt_geos_tests/hexgrid13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid14.testcase b/test/sql_stmt_geos_tests/hexgrid14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid14.testcase
rename to test/sql_stmt_geos_tests/hexgrid14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid15.testcase b/test/sql_stmt_geos_tests/hexgrid15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid15.testcase
rename to test/sql_stmt_geos_tests/hexgrid15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid16.testcase b/test/sql_stmt_geos_tests/hexgrid16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid16.testcase
rename to test/sql_stmt_geos_tests/hexgrid16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid17.testcase b/test/sql_stmt_geos_tests/hexgrid17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid17.testcase
rename to test/sql_stmt_geos_tests/hexgrid17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid18.testcase b/test/sql_stmt_geos_tests/hexgrid18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid18.testcase
rename to test/sql_stmt_geos_tests/hexgrid18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid19.testcase b/test/sql_stmt_geos_tests/hexgrid19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid19.testcase
rename to test/sql_stmt_geos_tests/hexgrid19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid2.testcase b/test/sql_stmt_geos_tests/hexgrid2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid2.testcase
rename to test/sql_stmt_geos_tests/hexgrid2.testcase
diff --git a/test/sql_stmt_geos_tests/hexgrid20.testcase b/test/sql_stmt_geos_tests/hexgrid20.testcase
new file mode 100644
index 0000000..b78c96d
--- /dev/null
+++ b/test/sql_stmt_geos_tests/hexgrid20.testcase
@@ -0,0 +1,7 @@
+HexagonalGrid - valid - with Origin
+:memory: #use in-memory database
+SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')));
+1 # rows (not including the header row)
+1 # columns
+AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')))
+MULTIPOLYGON(((0.1 0.966025, 0.6 0.1, 1.6 0.1, 2.1 0.966025, 1.6 1.832051, 0.6 1.832051, 0.1 0.966025)), ((1.6 1.832051, 2.1 0.966025, 3.1 0.966025, 3.6 1.832051, 3.1 2.698076, 2.1 2.698076, 1.6 1.832051)))
diff --git a/test/sql_stmt_geos_tests/hexgrid21.testcase b/test/sql_stmt_geos_tests/hexgrid21.testcase
new file mode 100644
index 0000000..4642174
--- /dev/null
+++ b/test/sql_stmt_geos_tests/hexgrid21.testcase
@@ -0,0 +1,10 @@
+HexagonalGrid - valid - no Origin
+:memory: #use in-memory database
+SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0));
+1 # rows (not including the header row)
+1 # columns
+AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0))
+MULTIPOLYGON(((0 0.866025, 0.5 0, 1.5 0, 2 0.866025, 1.5 1.732051, 0.5 1.732051, 0 0.866025)), ((1.5 1.732051, 2 0.866025, 3 0.866025, 3.5 1.732051, 3 2.598076, 2 2.598076, 1.5 1.732051)))
+
+
+
diff --git a/test/sql_stmt_geos_tests/hexgrid22.testcase b/test/sql_stmt_geos_tests/hexgrid22.testcase
new file mode 100644
index 0000000..f887c40
--- /dev/null
+++ b/test/sql_stmt_geos_tests/hexgrid22.testcase
@@ -0,0 +1,7 @@
+HexagonalGrid - valid - with Origin, edges_only
+:memory: #use in-memory database
+SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')));
+1 # rows (not including the header row)
+1 # columns
+ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')))
+12.0
diff --git a/test/sql_stmt_geos_tests/hexgrid23.testcase b/test/sql_stmt_geos_tests/hexgrid23.testcase
new file mode 100644
index 0000000..4978418
--- /dev/null
+++ b/test/sql_stmt_geos_tests/hexgrid23.testcase
@@ -0,0 +1,7 @@
+HexagonalGrid - valid - no Origin, edges_only
+:memory: #use in-memory database
+SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1));
+1 # rows (not including the header row)
+1 # columns
+ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1))
+11.0
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid3.testcase b/test/sql_stmt_geos_tests/hexgrid3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid3.testcase
rename to test/sql_stmt_geos_tests/hexgrid3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid4.testcase b/test/sql_stmt_geos_tests/hexgrid4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid4.testcase
rename to test/sql_stmt_geos_tests/hexgrid4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid5.testcase b/test/sql_stmt_geos_tests/hexgrid5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid5.testcase
rename to test/sql_stmt_geos_tests/hexgrid5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid6.testcase b/test/sql_stmt_geos_tests/hexgrid6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid6.testcase
rename to test/sql_stmt_geos_tests/hexgrid6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid7.testcase b/test/sql_stmt_geos_tests/hexgrid7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid7.testcase
rename to test/sql_stmt_geos_tests/hexgrid7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid8.testcase b/test/sql_stmt_geos_tests/hexgrid8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid8.testcase
rename to test/sql_stmt_geos_tests/hexgrid8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid9.testcase b/test/sql_stmt_geos_tests/hexgrid9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/hexgrid9.testcase
rename to test/sql_stmt_geos_tests/hexgrid9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint1.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint10.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint11.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint12.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint13.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint14.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint2.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint3.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint4.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint5.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint6.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint7.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint8.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase b/test/sql_stmt_geos_tests/interpolateequidistantpoint9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolateequidistantpoint9.testcase
rename to test/sql_stmt_geos_tests/interpolateequidistantpoint9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint1.testcase b/test/sql_stmt_geos_tests/interpolatepoint1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint1.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint10.testcase b/test/sql_stmt_geos_tests/interpolatepoint10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint10.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint11.testcase b/test/sql_stmt_geos_tests/interpolatepoint11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint11.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint12.testcase b/test/sql_stmt_geos_tests/interpolatepoint12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint12.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint13.testcase b/test/sql_stmt_geos_tests/interpolatepoint13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint13.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint14.testcase b/test/sql_stmt_geos_tests/interpolatepoint14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint14.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint2.testcase b/test/sql_stmt_geos_tests/interpolatepoint2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint2.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint3.testcase b/test/sql_stmt_geos_tests/interpolatepoint3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint3.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint4.testcase b/test/sql_stmt_geos_tests/interpolatepoint4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint4.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint5.testcase b/test/sql_stmt_geos_tests/interpolatepoint5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint5.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint6.testcase b/test/sql_stmt_geos_tests/interpolatepoint6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint6.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint7.testcase b/test/sql_stmt_geos_tests/interpolatepoint7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint7.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint8.testcase b/test/sql_stmt_geos_tests/interpolatepoint8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint8.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/interpolatepoint9.testcase b/test/sql_stmt_geos_tests/interpolatepoint9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/interpolatepoint9.testcase
rename to test/sql_stmt_geos_tests/interpolatepoint9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge1.testcase b/test/sql_stmt_geos_tests/linemerge1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge1.testcase
rename to test/sql_stmt_geos_tests/linemerge1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge10.testcase b/test/sql_stmt_geos_tests/linemerge10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge10.testcase
rename to test/sql_stmt_geos_tests/linemerge10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge2.testcase b/test/sql_stmt_geos_tests/linemerge2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge2.testcase
rename to test/sql_stmt_geos_tests/linemerge2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge3.testcase b/test/sql_stmt_geos_tests/linemerge3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge3.testcase
rename to test/sql_stmt_geos_tests/linemerge3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge4.testcase b/test/sql_stmt_geos_tests/linemerge4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge4.testcase
rename to test/sql_stmt_geos_tests/linemerge4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge5.testcase b/test/sql_stmt_geos_tests/linemerge5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge5.testcase
rename to test/sql_stmt_geos_tests/linemerge5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge6.testcase b/test/sql_stmt_geos_tests/linemerge6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge6.testcase
rename to test/sql_stmt_geos_tests/linemerge6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge7.testcase b/test/sql_stmt_geos_tests/linemerge7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge7.testcase
rename to test/sql_stmt_geos_tests/linemerge7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge8.testcase b/test/sql_stmt_geos_tests/linemerge8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge8.testcase
rename to test/sql_stmt_geos_tests/linemerge8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linemerge9.testcase b/test/sql_stmt_geos_tests/linemerge9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linemerge9.testcase
rename to test/sql_stmt_geos_tests/linemerge9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes1.testcase b/test/sql_stmt_geos_tests/linesnodes1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes1.testcase
rename to test/sql_stmt_geos_tests/linesnodes1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes10.testcase b/test/sql_stmt_geos_tests/linesnodes10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes10.testcase
rename to test/sql_stmt_geos_tests/linesnodes10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes11.testcase b/test/sql_stmt_geos_tests/linesnodes11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes11.testcase
rename to test/sql_stmt_geos_tests/linesnodes11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes12.testcase b/test/sql_stmt_geos_tests/linesnodes12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes12.testcase
rename to test/sql_stmt_geos_tests/linesnodes12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes13.testcase b/test/sql_stmt_geos_tests/linesnodes13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes13.testcase
rename to test/sql_stmt_geos_tests/linesnodes13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes14.testcase b/test/sql_stmt_geos_tests/linesnodes14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes14.testcase
rename to test/sql_stmt_geos_tests/linesnodes14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes15.testcase b/test/sql_stmt_geos_tests/linesnodes15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes15.testcase
rename to test/sql_stmt_geos_tests/linesnodes15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes16.testcase b/test/sql_stmt_geos_tests/linesnodes16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes16.testcase
rename to test/sql_stmt_geos_tests/linesnodes16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes17.testcase b/test/sql_stmt_geos_tests/linesnodes17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes17.testcase
rename to test/sql_stmt_geos_tests/linesnodes17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes18.testcase b/test/sql_stmt_geos_tests/linesnodes18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes18.testcase
rename to test/sql_stmt_geos_tests/linesnodes18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes19.testcase b/test/sql_stmt_geos_tests/linesnodes19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes19.testcase
rename to test/sql_stmt_geos_tests/linesnodes19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes2.testcase b/test/sql_stmt_geos_tests/linesnodes2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes2.testcase
rename to test/sql_stmt_geos_tests/linesnodes2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes3.testcase b/test/sql_stmt_geos_tests/linesnodes3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes3.testcase
rename to test/sql_stmt_geos_tests/linesnodes3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes4.testcase b/test/sql_stmt_geos_tests/linesnodes4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes4.testcase
rename to test/sql_stmt_geos_tests/linesnodes4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes5.testcase b/test/sql_stmt_geos_tests/linesnodes5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes5.testcase
rename to test/sql_stmt_geos_tests/linesnodes5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes6.testcase b/test/sql_stmt_geos_tests/linesnodes6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes6.testcase
rename to test/sql_stmt_geos_tests/linesnodes6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes7.testcase b/test/sql_stmt_geos_tests/linesnodes7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes7.testcase
rename to test/sql_stmt_geos_tests/linesnodes7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes8.testcase b/test/sql_stmt_geos_tests/linesnodes8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes8.testcase
rename to test/sql_stmt_geos_tests/linesnodes8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesnodes9.testcase b/test/sql_stmt_geos_tests/linesnodes9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesnodes9.testcase
rename to test/sql_stmt_geos_tests/linesnodes9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring1.testcase b/test/sql_stmt_geos_tests/linesubstring1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring1.testcase
rename to test/sql_stmt_geos_tests/linesubstring1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring10.testcase b/test/sql_stmt_geos_tests/linesubstring10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring10.testcase
rename to test/sql_stmt_geos_tests/linesubstring10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring11.testcase b/test/sql_stmt_geos_tests/linesubstring11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring11.testcase
rename to test/sql_stmt_geos_tests/linesubstring11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring12.testcase b/test/sql_stmt_geos_tests/linesubstring12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring12.testcase
rename to test/sql_stmt_geos_tests/linesubstring12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring13.testcase b/test/sql_stmt_geos_tests/linesubstring13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring13.testcase
rename to test/sql_stmt_geos_tests/linesubstring13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring14.testcase b/test/sql_stmt_geos_tests/linesubstring14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring14.testcase
rename to test/sql_stmt_geos_tests/linesubstring14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring15.testcase b/test/sql_stmt_geos_tests/linesubstring15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring15.testcase
rename to test/sql_stmt_geos_tests/linesubstring15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring16.testcase b/test/sql_stmt_geos_tests/linesubstring16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring16.testcase
rename to test/sql_stmt_geos_tests/linesubstring16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring17.testcase b/test/sql_stmt_geos_tests/linesubstring17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring17.testcase
rename to test/sql_stmt_geos_tests/linesubstring17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring18.testcase b/test/sql_stmt_geos_tests/linesubstring18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring18.testcase
rename to test/sql_stmt_geos_tests/linesubstring18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring19.testcase b/test/sql_stmt_geos_tests/linesubstring19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring19.testcase
rename to test/sql_stmt_geos_tests/linesubstring19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring2.testcase b/test/sql_stmt_geos_tests/linesubstring2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring2.testcase
rename to test/sql_stmt_geos_tests/linesubstring2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring20.testcase b/test/sql_stmt_geos_tests/linesubstring20.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring20.testcase
rename to test/sql_stmt_geos_tests/linesubstring20.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring21.testcase b/test/sql_stmt_geos_tests/linesubstring21.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring21.testcase
rename to test/sql_stmt_geos_tests/linesubstring21.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring22.testcase b/test/sql_stmt_geos_tests/linesubstring22.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring22.testcase
rename to test/sql_stmt_geos_tests/linesubstring22.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring23.testcase b/test/sql_stmt_geos_tests/linesubstring23.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring23.testcase
rename to test/sql_stmt_geos_tests/linesubstring23.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring24.testcase b/test/sql_stmt_geos_tests/linesubstring24.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring24.testcase
rename to test/sql_stmt_geos_tests/linesubstring24.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring25.testcase b/test/sql_stmt_geos_tests/linesubstring25.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring25.testcase
rename to test/sql_stmt_geos_tests/linesubstring25.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring26.testcase b/test/sql_stmt_geos_tests/linesubstring26.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring26.testcase
rename to test/sql_stmt_geos_tests/linesubstring26.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring3.testcase b/test/sql_stmt_geos_tests/linesubstring3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring3.testcase
rename to test/sql_stmt_geos_tests/linesubstring3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring4.testcase b/test/sql_stmt_geos_tests/linesubstring4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring4.testcase
rename to test/sql_stmt_geos_tests/linesubstring4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring5.testcase b/test/sql_stmt_geos_tests/linesubstring5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring5.testcase
rename to test/sql_stmt_geos_tests/linesubstring5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring6.testcase b/test/sql_stmt_geos_tests/linesubstring6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring6.testcase
rename to test/sql_stmt_geos_tests/linesubstring6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring7.testcase b/test/sql_stmt_geos_tests/linesubstring7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring7.testcase
rename to test/sql_stmt_geos_tests/linesubstring7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring8.testcase b/test/sql_stmt_geos_tests/linesubstring8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring8.testcase
rename to test/sql_stmt_geos_tests/linesubstring8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/linesubstring9.testcase b/test/sql_stmt_geos_tests/linesubstring9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/linesubstring9.testcase
rename to test/sql_stmt_geos_tests/linesubstring9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint1.testcase b/test/sql_stmt_geos_tests/locatepoint1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint1.testcase
rename to test/sql_stmt_geos_tests/locatepoint1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint10.testcase b/test/sql_stmt_geos_tests/locatepoint10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint10.testcase
rename to test/sql_stmt_geos_tests/locatepoint10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint11.testcase b/test/sql_stmt_geos_tests/locatepoint11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint11.testcase
rename to test/sql_stmt_geos_tests/locatepoint11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint12.testcase b/test/sql_stmt_geos_tests/locatepoint12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint12.testcase
rename to test/sql_stmt_geos_tests/locatepoint12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint2.testcase b/test/sql_stmt_geos_tests/locatepoint2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint2.testcase
rename to test/sql_stmt_geos_tests/locatepoint2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint3.testcase b/test/sql_stmt_geos_tests/locatepoint3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint3.testcase
rename to test/sql_stmt_geos_tests/locatepoint3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint4.testcase b/test/sql_stmt_geos_tests/locatepoint4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint4.testcase
rename to test/sql_stmt_geos_tests/locatepoint4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint5.testcase b/test/sql_stmt_geos_tests/locatepoint5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint5.testcase
rename to test/sql_stmt_geos_tests/locatepoint5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint6.testcase b/test/sql_stmt_geos_tests/locatepoint6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint6.testcase
rename to test/sql_stmt_geos_tests/locatepoint6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint7.testcase b/test/sql_stmt_geos_tests/locatepoint7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint7.testcase
rename to test/sql_stmt_geos_tests/locatepoint7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint8.testcase b/test/sql_stmt_geos_tests/locatepoint8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint8.testcase
rename to test/sql_stmt_geos_tests/locatepoint8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/locatepoint9.testcase b/test/sql_stmt_geos_tests/locatepoint9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/locatepoint9.testcase
rename to test/sql_stmt_geos_tests/locatepoint9.testcase
diff --git a/test/sql_stmt_tests/makearc15.testcase b/test/sql_stmt_geos_tests/makearc15.testcase
similarity index 100%
rename from test/sql_stmt_tests/makearc15.testcase
rename to test/sql_stmt_geos_tests/makearc15.testcase
diff --git a/test/sql_stmt_tests/makearc19.testcase b/test/sql_stmt_geos_tests/makearc19.testcase
similarity index 100%
rename from test/sql_stmt_tests/makearc19.testcase
rename to test/sql_stmt_geos_tests/makearc19.testcase
diff --git a/test/sql_stmt_tests/makearc23.testcase b/test/sql_stmt_geos_tests/makearc23.testcase
similarity index 100%
rename from test/sql_stmt_tests/makearc23.testcase
rename to test/sql_stmt_geos_tests/makearc23.testcase
diff --git a/test/sql_stmt_tests/makecircle10.testcase b/test/sql_stmt_geos_tests/makecircle10.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle10.testcase
rename to test/sql_stmt_geos_tests/makecircle10.testcase
diff --git a/test/sql_stmt_tests/makecircle11.testcase b/test/sql_stmt_geos_tests/makecircle11.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle11.testcase
rename to test/sql_stmt_geos_tests/makecircle11.testcase
diff --git a/test/sql_stmt_tests/makecircle12.testcase b/test/sql_stmt_geos_tests/makecircle12.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle12.testcase
rename to test/sql_stmt_geos_tests/makecircle12.testcase
diff --git a/test/sql_stmt_tests/makecircle13.testcase b/test/sql_stmt_geos_tests/makecircle13.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle13.testcase
rename to test/sql_stmt_geos_tests/makecircle13.testcase
diff --git a/test/sql_stmt_tests/makecircle14.testcase b/test/sql_stmt_geos_tests/makecircle14.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle14.testcase
rename to test/sql_stmt_geos_tests/makecircle14.testcase
diff --git a/test/sql_stmt_tests/makecircle15.testcase b/test/sql_stmt_geos_tests/makecircle15.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle15.testcase
rename to test/sql_stmt_geos_tests/makecircle15.testcase
diff --git a/test/sql_stmt_tests/makecircle16.testcase b/test/sql_stmt_geos_tests/makecircle16.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle16.testcase
rename to test/sql_stmt_geos_tests/makecircle16.testcase
diff --git a/test/sql_stmt_tests/makecircle17.testcase b/test/sql_stmt_geos_tests/makecircle17.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle17.testcase
rename to test/sql_stmt_geos_tests/makecircle17.testcase
diff --git a/test/sql_stmt_tests/makecircle18.testcase b/test/sql_stmt_geos_tests/makecircle18.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircle18.testcase
rename to test/sql_stmt_geos_tests/makecircle18.testcase
diff --git a/test/sql_stmt_tests/makecircularsector15.testcase b/test/sql_stmt_geos_tests/makecircularsector15.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircularsector15.testcase
rename to test/sql_stmt_geos_tests/makecircularsector15.testcase
diff --git a/test/sql_stmt_tests/makecircularsector19.testcase b/test/sql_stmt_geos_tests/makecircularsector19.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircularsector19.testcase
rename to test/sql_stmt_geos_tests/makecircularsector19.testcase
diff --git a/test/sql_stmt_tests/makecircularsector23.testcase b/test/sql_stmt_geos_tests/makecircularsector23.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircularsector23.testcase
rename to test/sql_stmt_geos_tests/makecircularsector23.testcase
diff --git a/test/sql_stmt_tests/makecircularstripe15.testcase b/test/sql_stmt_geos_tests/makecircularstripe15.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircularstripe15.testcase
rename to test/sql_stmt_geos_tests/makecircularstripe15.testcase
diff --git a/test/sql_stmt_tests/makecircularstripe19.testcase b/test/sql_stmt_geos_tests/makecircularstripe19.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircularstripe19.testcase
rename to test/sql_stmt_geos_tests/makecircularstripe19.testcase
diff --git a/test/sql_stmt_tests/makecircularstripe23.testcase b/test/sql_stmt_geos_tests/makecircularstripe23.testcase
similarity index 100%
rename from test/sql_stmt_tests/makecircularstripe23.testcase
rename to test/sql_stmt_geos_tests/makecircularstripe23.testcase
diff --git a/test/sql_stmt_tests/makeellipse13.testcase b/test/sql_stmt_geos_tests/makeellipse13.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipse13.testcase
rename to test/sql_stmt_geos_tests/makeellipse13.testcase
diff --git a/test/sql_stmt_tests/makeellipse17.testcase b/test/sql_stmt_geos_tests/makeellipse17.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipse17.testcase
rename to test/sql_stmt_geos_tests/makeellipse17.testcase
diff --git a/test/sql_stmt_tests/makeellipse21.testcase b/test/sql_stmt_geos_tests/makeellipse21.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipse21.testcase
rename to test/sql_stmt_geos_tests/makeellipse21.testcase
diff --git a/test/sql_stmt_tests/makeellipticarc18.testcase b/test/sql_stmt_geos_tests/makeellipticarc18.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipticarc18.testcase
rename to test/sql_stmt_geos_tests/makeellipticarc18.testcase
diff --git a/test/sql_stmt_tests/makeellipticarc22.testcase b/test/sql_stmt_geos_tests/makeellipticarc22.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipticarc22.testcase
rename to test/sql_stmt_geos_tests/makeellipticarc22.testcase
diff --git a/test/sql_stmt_tests/makeellipticarc26.testcase b/test/sql_stmt_geos_tests/makeellipticarc26.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipticarc26.testcase
rename to test/sql_stmt_geos_tests/makeellipticarc26.testcase
diff --git a/test/sql_stmt_tests/makeellipticsector18.testcase b/test/sql_stmt_geos_tests/makeellipticsector18.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipticsector18.testcase
rename to test/sql_stmt_geos_tests/makeellipticsector18.testcase
diff --git a/test/sql_stmt_tests/makeellipticsector22.testcase b/test/sql_stmt_geos_tests/makeellipticsector22.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipticsector22.testcase
rename to test/sql_stmt_geos_tests/makeellipticsector22.testcase
diff --git a/test/sql_stmt_tests/makeellipticsector26.testcase b/test/sql_stmt_geos_tests/makeellipticsector26.testcase
similarity index 100%
rename from test/sql_stmt_tests/makeellipticsector26.testcase
rename to test/sql_stmt_geos_tests/makeellipticsector26.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve1.testcase b/test/sql_stmt_geos_tests/offsetcurve1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve1.testcase
rename to test/sql_stmt_geos_tests/offsetcurve1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve10.testcase b/test/sql_stmt_geos_tests/offsetcurve10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve10.testcase
rename to test/sql_stmt_geos_tests/offsetcurve10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve11.testcase b/test/sql_stmt_geos_tests/offsetcurve11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve11.testcase
rename to test/sql_stmt_geos_tests/offsetcurve11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve12.testcase b/test/sql_stmt_geos_tests/offsetcurve12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve12.testcase
rename to test/sql_stmt_geos_tests/offsetcurve12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve13.testcase b/test/sql_stmt_geos_tests/offsetcurve13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve13.testcase
rename to test/sql_stmt_geos_tests/offsetcurve13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve14.testcase b/test/sql_stmt_geos_tests/offsetcurve14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve14.testcase
rename to test/sql_stmt_geos_tests/offsetcurve14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve2.testcase b/test/sql_stmt_geos_tests/offsetcurve2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve2.testcase
rename to test/sql_stmt_geos_tests/offsetcurve2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve3.testcase b/test/sql_stmt_geos_tests/offsetcurve3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve3.testcase
rename to test/sql_stmt_geos_tests/offsetcurve3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve4.testcase b/test/sql_stmt_geos_tests/offsetcurve4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve4.testcase
rename to test/sql_stmt_geos_tests/offsetcurve4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve5.testcase b/test/sql_stmt_geos_tests/offsetcurve5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve5.testcase
rename to test/sql_stmt_geos_tests/offsetcurve5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve6.testcase b/test/sql_stmt_geos_tests/offsetcurve6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve6.testcase
rename to test/sql_stmt_geos_tests/offsetcurve6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve7.testcase b/test/sql_stmt_geos_tests/offsetcurve7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve7.testcase
rename to test/sql_stmt_geos_tests/offsetcurve7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve8.testcase b/test/sql_stmt_geos_tests/offsetcurve8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve8.testcase
rename to test/sql_stmt_geos_tests/offsetcurve8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/offsetcurve9.testcase b/test/sql_stmt_geos_tests/offsetcurve9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/offsetcurve9.testcase
rename to test/sql_stmt_geos_tests/offsetcurve9.testcase
diff --git a/test/sql_stmt_geos_tests/relations1.testcase b/test/sql_stmt_geos_tests/relations1.testcase
index 241c539..5087999 100644
--- a/test/sql_stmt_geos_tests/relations1.testcase
+++ b/test/sql_stmt_geos_tests/relations1.testcase
@@ -18,4 +18,4 @@ Contains(geom1, geom2)
 0
 0
 1
-1
\ No newline at end of file
+1
diff --git a/test/sql_stmt_geosadvanced_tests/ringsnodes1.testcase b/test/sql_stmt_geos_tests/ringsnodes1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/ringsnodes1.testcase
rename to test/sql_stmt_geos_tests/ringsnodes1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/ringsnodes2.testcase b/test/sql_stmt_geos_tests/ringsnodes2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/ringsnodes2.testcase
rename to test/sql_stmt_geos_tests/ringsnodes2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/ringsnodes3.testcase b/test/sql_stmt_geos_tests/ringsnodes3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/ringsnodes3.testcase
rename to test/sql_stmt_geos_tests/ringsnodes3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/ringsnodes4.testcase b/test/sql_stmt_geos_tests/ringsnodes4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/ringsnodes4.testcase
rename to test/sql_stmt_geos_tests/ringsnodes4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/ringsnodes5.testcase b/test/sql_stmt_geos_tests/ringsnodes5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/ringsnodes5.testcase
rename to test/sql_stmt_geos_tests/ringsnodes5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/ringsnodes6.testcase b/test/sql_stmt_geos_tests/ringsnodes6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/ringsnodes6.testcase
rename to test/sql_stmt_geos_tests/ringsnodes6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths1.testcase b/test/sql_stmt_geos_tests/sharedpaths1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths1.testcase
rename to test/sql_stmt_geos_tests/sharedpaths1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths10.testcase b/test/sql_stmt_geos_tests/sharedpaths10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths10.testcase
rename to test/sql_stmt_geos_tests/sharedpaths10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths11.testcase b/test/sql_stmt_geos_tests/sharedpaths11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths11.testcase
rename to test/sql_stmt_geos_tests/sharedpaths11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths12.testcase b/test/sql_stmt_geos_tests/sharedpaths12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths12.testcase
rename to test/sql_stmt_geos_tests/sharedpaths12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths13.testcase b/test/sql_stmt_geos_tests/sharedpaths13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths13.testcase
rename to test/sql_stmt_geos_tests/sharedpaths13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths14.testcase b/test/sql_stmt_geos_tests/sharedpaths14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths14.testcase
rename to test/sql_stmt_geos_tests/sharedpaths14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths15.testcase b/test/sql_stmt_geos_tests/sharedpaths15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths15.testcase
rename to test/sql_stmt_geos_tests/sharedpaths15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths16.testcase b/test/sql_stmt_geos_tests/sharedpaths16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths16.testcase
rename to test/sql_stmt_geos_tests/sharedpaths16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths17.testcase b/test/sql_stmt_geos_tests/sharedpaths17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths17.testcase
rename to test/sql_stmt_geos_tests/sharedpaths17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths18.testcase b/test/sql_stmt_geos_tests/sharedpaths18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths18.testcase
rename to test/sql_stmt_geos_tests/sharedpaths18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths19.testcase b/test/sql_stmt_geos_tests/sharedpaths19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths19.testcase
rename to test/sql_stmt_geos_tests/sharedpaths19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths2.testcase b/test/sql_stmt_geos_tests/sharedpaths2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths2.testcase
rename to test/sql_stmt_geos_tests/sharedpaths2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths20.testcase b/test/sql_stmt_geos_tests/sharedpaths20.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths20.testcase
rename to test/sql_stmt_geos_tests/sharedpaths20.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths21.testcase b/test/sql_stmt_geos_tests/sharedpaths21.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths21.testcase
rename to test/sql_stmt_geos_tests/sharedpaths21.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths22.testcase b/test/sql_stmt_geos_tests/sharedpaths22.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths22.testcase
rename to test/sql_stmt_geos_tests/sharedpaths22.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths23.testcase b/test/sql_stmt_geos_tests/sharedpaths23.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths23.testcase
rename to test/sql_stmt_geos_tests/sharedpaths23.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths24.testcase b/test/sql_stmt_geos_tests/sharedpaths24.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths24.testcase
rename to test/sql_stmt_geos_tests/sharedpaths24.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths25.testcase b/test/sql_stmt_geos_tests/sharedpaths25.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths25.testcase
rename to test/sql_stmt_geos_tests/sharedpaths25.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths26.testcase b/test/sql_stmt_geos_tests/sharedpaths26.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths26.testcase
rename to test/sql_stmt_geos_tests/sharedpaths26.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths27.testcase b/test/sql_stmt_geos_tests/sharedpaths27.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths27.testcase
rename to test/sql_stmt_geos_tests/sharedpaths27.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths28.testcase b/test/sql_stmt_geos_tests/sharedpaths28.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths28.testcase
rename to test/sql_stmt_geos_tests/sharedpaths28.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths29.testcase b/test/sql_stmt_geos_tests/sharedpaths29.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths29.testcase
rename to test/sql_stmt_geos_tests/sharedpaths29.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths3.testcase b/test/sql_stmt_geos_tests/sharedpaths3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths3.testcase
rename to test/sql_stmt_geos_tests/sharedpaths3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths30.testcase b/test/sql_stmt_geos_tests/sharedpaths30.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths30.testcase
rename to test/sql_stmt_geos_tests/sharedpaths30.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths31.testcase b/test/sql_stmt_geos_tests/sharedpaths31.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths31.testcase
rename to test/sql_stmt_geos_tests/sharedpaths31.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths32.testcase b/test/sql_stmt_geos_tests/sharedpaths32.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths32.testcase
rename to test/sql_stmt_geos_tests/sharedpaths32.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths4.testcase b/test/sql_stmt_geos_tests/sharedpaths4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths4.testcase
rename to test/sql_stmt_geos_tests/sharedpaths4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths5.testcase b/test/sql_stmt_geos_tests/sharedpaths5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths5.testcase
rename to test/sql_stmt_geos_tests/sharedpaths5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths6.testcase b/test/sql_stmt_geos_tests/sharedpaths6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths6.testcase
rename to test/sql_stmt_geos_tests/sharedpaths6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths7.testcase b/test/sql_stmt_geos_tests/sharedpaths7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths7.testcase
rename to test/sql_stmt_geos_tests/sharedpaths7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths8.testcase b/test/sql_stmt_geos_tests/sharedpaths8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths8.testcase
rename to test/sql_stmt_geos_tests/sharedpaths8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/sharedpaths9.testcase b/test/sql_stmt_geos_tests/sharedpaths9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/sharedpaths9.testcase
rename to test/sql_stmt_geos_tests/sharedpaths9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline1.testcase b/test/sql_stmt_geos_tests/shortestline1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline1.testcase
rename to test/sql_stmt_geos_tests/shortestline1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline2.testcase b/test/sql_stmt_geos_tests/shortestline2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline2.testcase
rename to test/sql_stmt_geos_tests/shortestline2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline3.testcase b/test/sql_stmt_geos_tests/shortestline3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline3.testcase
rename to test/sql_stmt_geos_tests/shortestline3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline4.testcase b/test/sql_stmt_geos_tests/shortestline4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline4.testcase
rename to test/sql_stmt_geos_tests/shortestline4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline5.testcase b/test/sql_stmt_geos_tests/shortestline5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline5.testcase
rename to test/sql_stmt_geos_tests/shortestline5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline6.testcase b/test/sql_stmt_geos_tests/shortestline6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline6.testcase
rename to test/sql_stmt_geos_tests/shortestline6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/shortestline7.testcase b/test/sql_stmt_geos_tests/shortestline7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/shortestline7.testcase
rename to test/sql_stmt_geos_tests/shortestline7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer1.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer11.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer12.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer13.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer14.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer15.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer16.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer17.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer2.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer3.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer4.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer5.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer6.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer7.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer8.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase b/test/sql_stmt_geos_tests/singlesidedbuffer9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/singlesidedbuffer9.testcase
rename to test/sql_stmt_geos_tests/singlesidedbuffer9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap1.testcase b/test/sql_stmt_geos_tests/snap1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap1.testcase
rename to test/sql_stmt_geos_tests/snap1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap10.testcase b/test/sql_stmt_geos_tests/snap10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap10.testcase
rename to test/sql_stmt_geos_tests/snap10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap2.testcase b/test/sql_stmt_geos_tests/snap2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap2.testcase
rename to test/sql_stmt_geos_tests/snap2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap3.testcase b/test/sql_stmt_geos_tests/snap3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap3.testcase
rename to test/sql_stmt_geos_tests/snap3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap4.testcase b/test/sql_stmt_geos_tests/snap4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap4.testcase
rename to test/sql_stmt_geos_tests/snap4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap5.testcase b/test/sql_stmt_geos_tests/snap5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap5.testcase
rename to test/sql_stmt_geos_tests/snap5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap6.testcase b/test/sql_stmt_geos_tests/snap6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap6.testcase
rename to test/sql_stmt_geos_tests/snap6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap7.testcase b/test/sql_stmt_geos_tests/snap7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap7.testcase
rename to test/sql_stmt_geos_tests/snap7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap8.testcase b/test/sql_stmt_geos_tests/snap8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap8.testcase
rename to test/sql_stmt_geos_tests/snap8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/snap9.testcase b/test/sql_stmt_geos_tests/snap9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/snap9.testcase
rename to test/sql_stmt_geos_tests/snap9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid1.testcase b/test/sql_stmt_geos_tests/squaregrid1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid1.testcase
rename to test/sql_stmt_geos_tests/squaregrid1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid10.testcase b/test/sql_stmt_geos_tests/squaregrid10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid10.testcase
rename to test/sql_stmt_geos_tests/squaregrid10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid11.testcase b/test/sql_stmt_geos_tests/squaregrid11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid11.testcase
rename to test/sql_stmt_geos_tests/squaregrid11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid12.testcase b/test/sql_stmt_geos_tests/squaregrid12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid12.testcase
rename to test/sql_stmt_geos_tests/squaregrid12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid13.testcase b/test/sql_stmt_geos_tests/squaregrid13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid13.testcase
rename to test/sql_stmt_geos_tests/squaregrid13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid14.testcase b/test/sql_stmt_geos_tests/squaregrid14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid14.testcase
rename to test/sql_stmt_geos_tests/squaregrid14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid15.testcase b/test/sql_stmt_geos_tests/squaregrid15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid15.testcase
rename to test/sql_stmt_geos_tests/squaregrid15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid16.testcase b/test/sql_stmt_geos_tests/squaregrid16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid16.testcase
rename to test/sql_stmt_geos_tests/squaregrid16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid17.testcase b/test/sql_stmt_geos_tests/squaregrid17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid17.testcase
rename to test/sql_stmt_geos_tests/squaregrid17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid18.testcase b/test/sql_stmt_geos_tests/squaregrid18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid18.testcase
rename to test/sql_stmt_geos_tests/squaregrid18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid19.testcase b/test/sql_stmt_geos_tests/squaregrid19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid19.testcase
rename to test/sql_stmt_geos_tests/squaregrid19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid2.testcase b/test/sql_stmt_geos_tests/squaregrid2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid2.testcase
rename to test/sql_stmt_geos_tests/squaregrid2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid20.testcase b/test/sql_stmt_geos_tests/squaregrid20.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid20.testcase
rename to test/sql_stmt_geos_tests/squaregrid20.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid21.testcase b/test/sql_stmt_geos_tests/squaregrid21.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid21.testcase
rename to test/sql_stmt_geos_tests/squaregrid21.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid22.testcase b/test/sql_stmt_geos_tests/squaregrid22.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid22.testcase
rename to test/sql_stmt_geos_tests/squaregrid22.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid23.testcase b/test/sql_stmt_geos_tests/squaregrid23.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid23.testcase
rename to test/sql_stmt_geos_tests/squaregrid23.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid3.testcase b/test/sql_stmt_geos_tests/squaregrid3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid3.testcase
rename to test/sql_stmt_geos_tests/squaregrid3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid4.testcase b/test/sql_stmt_geos_tests/squaregrid4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid4.testcase
rename to test/sql_stmt_geos_tests/squaregrid4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid5.testcase b/test/sql_stmt_geos_tests/squaregrid5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid5.testcase
rename to test/sql_stmt_geos_tests/squaregrid5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid6.testcase b/test/sql_stmt_geos_tests/squaregrid6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid6.testcase
rename to test/sql_stmt_geos_tests/squaregrid6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid7.testcase b/test/sql_stmt_geos_tests/squaregrid7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid7.testcase
rename to test/sql_stmt_geos_tests/squaregrid7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid8.testcase b/test/sql_stmt_geos_tests/squaregrid8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid8.testcase
rename to test/sql_stmt_geos_tests/squaregrid8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/squaregrid9.testcase b/test/sql_stmt_geos_tests/squaregrid9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/squaregrid9.testcase
rename to test/sql_stmt_geos_tests/squaregrid9.testcase
diff --git a/test/sql_stmt_geos_tests/testgeos1.testcase b/test/sql_stmt_geos_tests/testgeos1.testcase
new file mode 100644
index 0000000..2487148
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos1.testcase
@@ -0,0 +1,7 @@
+GEOS test - Equals
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Equals(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+1
diff --git a/test/sql_stmt_geos_tests/testgeos10.testcase b/test/sql_stmt_geos_tests/testgeos10.testcase
new file mode 100644
index 0000000..252901b
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos10.testcase
@@ -0,0 +1,7 @@
+GEOS test - CoveredBy
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_CoveredBy(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+1
diff --git a/test/sql_stmt_geos_tests/testgeos2.testcase b/test/sql_stmt_geos_tests/testgeos2.testcase
new file mode 100644
index 0000000..dded825
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos2.testcase
@@ -0,0 +1,7 @@
+GEOS test - Intersects
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Intersects(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+10
diff --git a/test/sql_stmt_geos_tests/testgeos3.testcase b/test/sql_stmt_geos_tests/testgeos3.testcase
new file mode 100644
index 0000000..9de37fa
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos3.testcase
@@ -0,0 +1,7 @@
+GEOS test - Disjoint
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Disjoint(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+2
diff --git a/test/sql_stmt_geos_tests/testgeos4.testcase b/test/sql_stmt_geos_tests/testgeos4.testcase
new file mode 100644
index 0000000..bb1da3c
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos4.testcase
@@ -0,0 +1,7 @@
+GEOS test - Overlaps
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Overlaps(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+0
diff --git a/test/sql_stmt_geos_tests/testgeos5.testcase b/test/sql_stmt_geos_tests/testgeos5.testcase
new file mode 100644
index 0000000..1a48610
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos5.testcase
@@ -0,0 +1,7 @@
+GEOS test - Crosses
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Crosses(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+0
diff --git a/test/sql_stmt_geos_tests/testgeos6.testcase b/test/sql_stmt_geos_tests/testgeos6.testcase
new file mode 100644
index 0000000..e91dbec
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos6.testcase
@@ -0,0 +1,7 @@
+GEOS test - Touches
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Touches(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+9
diff --git a/test/sql_stmt_geos_tests/testgeos7.testcase b/test/sql_stmt_geos_tests/testgeos7.testcase
new file mode 100644
index 0000000..ececaa0
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos7.testcase
@@ -0,0 +1,7 @@
+GEOS test - Within
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Within(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+1
diff --git a/test/sql_stmt_geos_tests/testgeos8.testcase b/test/sql_stmt_geos_tests/testgeos8.testcase
new file mode 100644
index 0000000..0152971
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos8.testcase
@@ -0,0 +1,7 @@
+GEOS test - Contains
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Contains(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+1
diff --git a/test/sql_stmt_geos_tests/testgeos9.testcase b/test/sql_stmt_geos_tests/testgeos9.testcase
new file mode 100644
index 0000000..9a63c5b
--- /dev/null
+++ b/test/sql_stmt_geos_tests/testgeos9.testcase
@@ -0,0 +1,7 @@
+GEOS test - Covers
+test_geos_x.sqlite
+SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Covers(a.geometry, b.geometry) = 1;
+1 # rows (not including the header row)
+1 # columns
+Count(*)
+1
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid1.testcase b/test/sql_stmt_geos_tests/trianggrid1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid1.testcase
rename to test/sql_stmt_geos_tests/trianggrid1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid10.testcase b/test/sql_stmt_geos_tests/trianggrid10.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid10.testcase
rename to test/sql_stmt_geos_tests/trianggrid10.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid11.testcase b/test/sql_stmt_geos_tests/trianggrid11.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid11.testcase
rename to test/sql_stmt_geos_tests/trianggrid11.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid12.testcase b/test/sql_stmt_geos_tests/trianggrid12.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid12.testcase
rename to test/sql_stmt_geos_tests/trianggrid12.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid13.testcase b/test/sql_stmt_geos_tests/trianggrid13.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid13.testcase
rename to test/sql_stmt_geos_tests/trianggrid13.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid14.testcase b/test/sql_stmt_geos_tests/trianggrid14.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid14.testcase
rename to test/sql_stmt_geos_tests/trianggrid14.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid15.testcase b/test/sql_stmt_geos_tests/trianggrid15.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid15.testcase
rename to test/sql_stmt_geos_tests/trianggrid15.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid16.testcase b/test/sql_stmt_geos_tests/trianggrid16.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid16.testcase
rename to test/sql_stmt_geos_tests/trianggrid16.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid17.testcase b/test/sql_stmt_geos_tests/trianggrid17.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid17.testcase
rename to test/sql_stmt_geos_tests/trianggrid17.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid18.testcase b/test/sql_stmt_geos_tests/trianggrid18.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid18.testcase
rename to test/sql_stmt_geos_tests/trianggrid18.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid19.testcase b/test/sql_stmt_geos_tests/trianggrid19.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid19.testcase
rename to test/sql_stmt_geos_tests/trianggrid19.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid2.testcase b/test/sql_stmt_geos_tests/trianggrid2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid2.testcase
rename to test/sql_stmt_geos_tests/trianggrid2.testcase
diff --git a/test/sql_stmt_geos_tests/trianggrid20.testcase b/test/sql_stmt_geos_tests/trianggrid20.testcase
new file mode 100644
index 0000000..542ec00
--- /dev/null
+++ b/test/sql_stmt_geos_tests/trianggrid20.testcase
@@ -0,0 +1,10 @@
+TriangularGrid - valid - no Origin
+:memory: #use in-memory database
+SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0));
+1 # rows (not including the header row)
+1 # columns
+AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0))
+MULTIPOLYGON(((0 0.866025, 1 0.866025, 0.5 1.732051, 0 0.866025)), ((0.5 1.732051, 1 0.866025, 1.5 1.732051, 0.5 1.732051)), ((1 0.866025, 2 0.866025, 1.5 1.732051, 1 0.866025)), ((1.5 1.732051, 2 0.866025, 2.5 1.732051, 1.5 1.732051)), ((2 0.866025, 3 0.866025, 2.5 1.732051, 2 0.866025)))
+
+
+
diff --git a/test/sql_stmt_geos_tests/trianggrid21.testcase b/test/sql_stmt_geos_tests/trianggrid21.testcase
new file mode 100644
index 0000000..d691017
--- /dev/null
+++ b/test/sql_stmt_geos_tests/trianggrid21.testcase
@@ -0,0 +1,7 @@
+TriangularGrid - valid - with Origin
+:memory: #use in-memory database
+SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')));
+1 # rows (not including the header row)
+1 # columns
+AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')))
+MULTIPOLYGON(((-0.4 1.832051, 0.1 0.966025, 0.6 1.832051, -0.4 1.832051)), ((0.1 0.966025, 1.1 0.966025, 0.6 1.832051, 0.1 0.966025)), ((0.6 1.832051, 1.1 0.966025, 1.6 1.832051, 0.6 1.832051)), ((1.1 0.966025, 2.1 0.966025, 1.6 1.832051, 1.1 0.966025)), ((1.6 1.832051, 2.1 0.966025, 2.6 1.832051, 1.6 1.832051)), ((2.1 0.966025, 3.1 0.966025, 2.6 1.832051, 2.1 0.966025)))
diff --git a/test/sql_stmt_geos_tests/trianggrid22.testcase b/test/sql_stmt_geos_tests/trianggrid22.testcase
new file mode 100644
index 0000000..c6a1fd9
--- /dev/null
+++ b/test/sql_stmt_geos_tests/trianggrid22.testcase
@@ -0,0 +1,10 @@
+TriangularGrid - valid - no Origin, edges_only
+:memory: #use in-memory database
+SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1));
+1 # rows (not including the header row)
+1 # columns
+ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1))
+9.0
+
+
+
diff --git a/test/sql_stmt_geos_tests/trianggrid23.testcase b/test/sql_stmt_geos_tests/trianggrid23.testcase
new file mode 100644
index 0000000..f8826bf
--- /dev/null
+++ b/test/sql_stmt_geos_tests/trianggrid23.testcase
@@ -0,0 +1,7 @@
+TriangularGrid - valid - with Origin, edges_only
+:memory: #use in-memory database
+SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')));
+1 # rows (not including the header row)
+1 # columns
+ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')))
+12.0
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid3.testcase b/test/sql_stmt_geos_tests/trianggrid3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid3.testcase
rename to test/sql_stmt_geos_tests/trianggrid3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid4.testcase b/test/sql_stmt_geos_tests/trianggrid4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid4.testcase
rename to test/sql_stmt_geos_tests/trianggrid4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid5.testcase b/test/sql_stmt_geos_tests/trianggrid5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid5.testcase
rename to test/sql_stmt_geos_tests/trianggrid5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid6.testcase b/test/sql_stmt_geos_tests/trianggrid6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid6.testcase
rename to test/sql_stmt_geos_tests/trianggrid6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid7.testcase b/test/sql_stmt_geos_tests/trianggrid7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid7.testcase
rename to test/sql_stmt_geos_tests/trianggrid7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid8.testcase b/test/sql_stmt_geos_tests/trianggrid8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid8.testcase
rename to test/sql_stmt_geos_tests/trianggrid8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid9.testcase b/test/sql_stmt_geos_tests/trianggrid9.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/trianggrid9.testcase
rename to test/sql_stmt_geos_tests/trianggrid9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion1.testcase b/test/sql_stmt_geos_tests/unaryunion1.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion1.testcase
rename to test/sql_stmt_geos_tests/unaryunion1.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion2.testcase b/test/sql_stmt_geos_tests/unaryunion2.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion2.testcase
rename to test/sql_stmt_geos_tests/unaryunion2.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion3.testcase b/test/sql_stmt_geos_tests/unaryunion3.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion3.testcase
rename to test/sql_stmt_geos_tests/unaryunion3.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion4.testcase b/test/sql_stmt_geos_tests/unaryunion4.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion4.testcase
rename to test/sql_stmt_geos_tests/unaryunion4.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion5.testcase b/test/sql_stmt_geos_tests/unaryunion5.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion5.testcase
rename to test/sql_stmt_geos_tests/unaryunion5.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion6.testcase b/test/sql_stmt_geos_tests/unaryunion6.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion6.testcase
rename to test/sql_stmt_geos_tests/unaryunion6.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion7.testcase b/test/sql_stmt_geos_tests/unaryunion7.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion7.testcase
rename to test/sql_stmt_geos_tests/unaryunion7.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/unaryunion8.testcase b/test/sql_stmt_geos_tests/unaryunion8.testcase
similarity index 100%
rename from test/sql_stmt_geosadvanced_tests/unaryunion8.testcase
rename to test/sql_stmt_geos_tests/unaryunion8.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/Makefile.am b/test/sql_stmt_geosadvanced_tests/Makefile.am
index 57d0ac4..1861ed4 100644
--- a/test/sql_stmt_geosadvanced_tests/Makefile.am
+++ b/test/sql_stmt_geosadvanced_tests/Makefile.am
@@ -1,328 +1,58 @@
 
-EXTRA_DIST = closestpoint10.testcase \
-	closestpoint11.testcase \
-	closestpoint12.testcase \
-	closestpoint13.testcase \
-	closestpoint14.testcase \
-	closestpoint15.testcase \
-	closestpoint16.testcase \
-	closestpoint17.testcase \
-	closestpoint18.testcase \
-	closestpoint19.testcase \
-	closestpoint1.testcase \
-	closestpoint20.testcase \
-	closestpoint21.testcase \
-	closestpoint22.testcase \
-	closestpoint2.testcase \
-	closestpoint3.testcase \
-	closestpoint4.testcase \
-	closestpoint5.testcase \
-	closestpoint6.testcase \
-	closestpoint7.testcase \
-	closestpoint8.testcase \
-	closestpoint9.testcase \
-	coveredby1.testcase \
-	coveredby2.testcase \
-	covers1.testcase \
-	covers2.testcase \
-	covers_covered1.testcase \
-	covers_covered2.testcase \
-	covers_covered3.testcase \
-	covers_covered4.testcase \
-	covers_covered5.testcase \
-	covers_covered6.testcase \
-	covers_covered7.testcase \
-	createtopo10.testcase \
-	createtopo11.testcase \
-	createtopo12.testcase \
-	createtopo13.testcase \
-	createtopo14.testcase \
-	createtopo15.testcase \
-	createtopo16.testcase \
-	createtopo17.testcase \
-	createtopo18.testcase \
-	createtopo1.testcase \
-	createtopo2.testcase \
-	createtopo3.testcase \
-	createtopo4.testcase \
-	createtopo5.testcase \
-	createtopo6.testcase \
-	createtopo7.testcase \
-	createtopo8.testcase \
-	createtopo9.testcase \
-	distance_geogr10.testcase \
-	distance_geogr11.testcase \
-	distance_geogr12.testcase \
-	distance_geogr1.testcase \
-	distance_geogr2.testcase \
-	distance_geogr3.testcase \
-	distance_geogr4.testcase \
-	distance_geogr5.testcase \
-	distance_geogr6.testcase \
-	distance_geogr7.testcase \
-	distance_geogr8.testcase \
-	distance_geogr9.testcase \
-	hausdorffdistance1.testcase \
-	hausdorffdistance2.testcase \
-	hausdorffdistance3.testcase \
-	hausdorffdistance4.testcase \
-	hausdorffdistance5.testcase \
-	hausdorffdistance6.testcase \
-	hausdorffdistance7.testcase \
-	hexgrid10.testcase \
-	hexgrid11.testcase \
-	hexgrid12.testcase \
-	hexgrid13.testcase \
-	hexgrid14.testcase \
-	hexgrid15.testcase \
-	hexgrid16.testcase \
-	hexgrid17.testcase \
-	hexgrid18.testcase \
-	hexgrid19.testcase \
-	hexgrid1.testcase \
-	hexgrid20.testcase \
-	hexgrid21.testcase \
-	hexgrid22.testcase \
-	hexgrid23.testcase \
-	hexgrid2.testcase \
-	hexgrid3.testcase \
-	hexgrid4.testcase \
-	hexgrid5.testcase \
-	hexgrid6.testcase \
-	hexgrid7.testcase \
-	hexgrid8.testcase \
-	hexgrid9.testcase \
-	interpolateequidistantpoint10.testcase \
-	interpolateequidistantpoint11.testcase \
-	interpolateequidistantpoint12.testcase \
-	interpolateequidistantpoint13.testcase \
-	interpolateequidistantpoint14.testcase \
-	interpolateequidistantpoint1.testcase \
-	interpolateequidistantpoint2.testcase \
-	interpolateequidistantpoint3.testcase \
-	interpolateequidistantpoint4.testcase \
-	interpolateequidistantpoint5.testcase \
-	interpolateequidistantpoint6.testcase \
-	interpolateequidistantpoint7.testcase \
-	interpolateequidistantpoint8.testcase \
-	interpolateequidistantpoint9.testcase \
-	interpolatepoint10.testcase \
-	interpolatepoint11.testcase \
-	interpolatepoint12.testcase \
-	interpolatepoint13.testcase \
-	interpolatepoint14.testcase \
-	interpolatepoint1.testcase \
-	interpolatepoint2.testcase \
-	interpolatepoint3.testcase \
-	interpolatepoint4.testcase \
-	interpolatepoint5.testcase \
-	interpolatepoint6.testcase \
-	interpolatepoint7.testcase \
-	interpolatepoint8.testcase \
-	interpolatepoint9.testcase \
-	linemerge10.testcase \
-	linemerge1.testcase \
-	linemerge2.testcase \
-	linemerge3.testcase \
-	linemerge4.testcase \
-	linemerge5.testcase \
-	linemerge6.testcase \
-	linemerge7.testcase \
-	linemerge8.testcase \
-	linemerge9.testcase \
-	linesnodes10.testcase \
-	linesnodes11.testcase \
-	linesnodes12.testcase \
-	linesnodes13.testcase \
-	linesnodes14.testcase \
-	linesnodes15.testcase \
-	linesnodes16.testcase \
-	linesnodes17.testcase \
-	linesnodes18.testcase \
-	linesnodes19.testcase \
-	linesnodes1.testcase \
-	linesnodes2.testcase \
-	linesnodes3.testcase \
-	linesnodes4.testcase \
-	linesnodes5.testcase \
-	linesnodes6.testcase \
-	linesnodes7.testcase \
-	linesnodes8.testcase \
-	linesnodes9.testcase \
-	linesubstring10.testcase \
-	linesubstring11.testcase \
-	linesubstring12.testcase \
-	linesubstring13.testcase \
-	linesubstring14.testcase \
-	linesubstring15.testcase \
-	linesubstring16.testcase \
-	linesubstring17.testcase \
-	linesubstring18.testcase \
-	linesubstring19.testcase \
-	linesubstring1.testcase \
-	linesubstring20.testcase \
-	linesubstring21.testcase \
-	linesubstring22.testcase \
-	linesubstring23.testcase \
-	linesubstring24.testcase \
-	linesubstring25.testcase \
-	linesubstring26.testcase \
-	linesubstring2.testcase \
-	linesubstring3.testcase \
-	linesubstring4.testcase \
-	linesubstring5.testcase \
-	linesubstring6.testcase \
-	linesubstring7.testcase \
-	linesubstring8.testcase \
-	linesubstring9.testcase \
-	locatepoint10.testcase \
-	locatepoint11.testcase \
-	locatepoint12.testcase \
-	locatepoint1.testcase \
-	locatepoint2.testcase \
-	locatepoint3.testcase \
-	locatepoint4.testcase \
-	locatepoint5.testcase \
-	locatepoint6.testcase \
-	locatepoint7.testcase \
-	locatepoint8.testcase \
-	locatepoint9.testcase \
-	offsetcurve10.testcase \
-	offsetcurve11.testcase \
-	offsetcurve12.testcase \
-	offsetcurve13.testcase \
-	offsetcurve14.testcase \
-	offsetcurve1.testcase \
-	offsetcurve2.testcase \
-	offsetcurve3.testcase \
-	offsetcurve4.testcase \
-	offsetcurve5.testcase \
-	offsetcurve6.testcase \
-	offsetcurve7.testcase \
-	offsetcurve8.testcase \
-	offsetcurve9.testcase \
-	ringsnodes1.testcase \
-	ringsnodes2.testcase \
-	ringsnodes3.testcase \
-	ringsnodes4.testcase \
-	ringsnodes5.testcase \
-	ringsnodes6.testcase \
-	sharedpaths10.testcase \
-	sharedpaths11.testcase \
-	sharedpaths12.testcase \
-	sharedpaths13.testcase \
-	sharedpaths14.testcase \
-	sharedpaths15.testcase \
-	sharedpaths16.testcase \
-	sharedpaths17.testcase \
-	sharedpaths18.testcase \
-	sharedpaths19.testcase \
-	sharedpaths1.testcase \
-	sharedpaths20.testcase \
-	sharedpaths21.testcase \
-	sharedpaths22.testcase \
-	sharedpaths23.testcase \
-	sharedpaths24.testcase \
-	sharedpaths25.testcase \
-	sharedpaths26.testcase \
-	sharedpaths27.testcase \
-	sharedpaths28.testcase \
-	sharedpaths29.testcase \
-	sharedpaths2.testcase \
-	sharedpaths30.testcase \
-	sharedpaths31.testcase \
-	sharedpaths32.testcase \
-	sharedpaths3.testcase \
-	sharedpaths4.testcase \
-	sharedpaths5.testcase \
-	sharedpaths6.testcase \
-	sharedpaths7.testcase \
-	sharedpaths8.testcase \
-	sharedpaths9.testcase \
-	shortestline1.testcase \
-	shortestline2.testcase \
-	shortestline3.testcase \
-	shortestline4.testcase \
-	shortestline5.testcase \
-	shortestline6.testcase \
-	shortestline7.testcase \
-	singlesidedbuffer11.testcase \
-	singlesidedbuffer12.testcase \
-	singlesidedbuffer13.testcase \
-	singlesidedbuffer14.testcase \
-	singlesidedbuffer15.testcase \
-	singlesidedbuffer16.testcase \
-	singlesidedbuffer17.testcase \
-	singlesidedbuffer1.testcase \
-	singlesidedbuffer2.testcase \
-	singlesidedbuffer3.testcase \
-	singlesidedbuffer4.testcase \
-	singlesidedbuffer5.testcase \
-	singlesidedbuffer6.testcase \
-	singlesidedbuffer7.testcase \
-	singlesidedbuffer8.testcase \
-	singlesidedbuffer9.testcase \
-	snap10.testcase \
-	snap1.testcase \
-	snap2.testcase \
-	snap3.testcase \
-	snap4.testcase \
-	snap5.testcase \
-	snap6.testcase \
-	snap7.testcase \
-	snap8.testcase \
-	snap9.testcase \
-	squaregrid10.testcase \
-	squaregrid11.testcase \
-	squaregrid12.testcase \
-	squaregrid13.testcase \
-	squaregrid14.testcase \
-	squaregrid15.testcase \
-	squaregrid16.testcase \
-	squaregrid17.testcase \
-	squaregrid18.testcase \
-	squaregrid19.testcase \
-	squaregrid1.testcase \
-	squaregrid20.testcase \
-	squaregrid21.testcase \
-	squaregrid22.testcase \
-	squaregrid23.testcase \
-	squaregrid2.testcase \
-	squaregrid3.testcase \
-	squaregrid4.testcase \
-	squaregrid5.testcase \
-	squaregrid6.testcase \
-	squaregrid7.testcase \
-	squaregrid8.testcase \
-	squaregrid9.testcase \
-	trianggrid10.testcase \
-	trianggrid11.testcase \
-	trianggrid12.testcase \
-	trianggrid13.testcase \
-	trianggrid14.testcase \
-	trianggrid15.testcase \
-	trianggrid16.testcase \
-	trianggrid17.testcase \
-	trianggrid18.testcase \
-	trianggrid19.testcase \
-	trianggrid1.testcase \
-	trianggrid20.testcase \
-	trianggrid21.testcase \
-	trianggrid22.testcase \
-	trianggrid23.testcase \
-	trianggrid2.testcase \
-	trianggrid3.testcase \
-	trianggrid4.testcase \
-	trianggrid5.testcase \
-	trianggrid6.testcase \
-	trianggrid7.testcase \
-	trianggrid8.testcase \
-	trianggrid9.testcase \
-	unaryunion1.testcase \
-	unaryunion2.testcase \
-	unaryunion3.testcase \
-	unaryunion4.testcase \
-	unaryunion5.testcase \
-	unaryunion6.testcase \
-	unaryunion7.testcase \
-	unaryunion8.testcase 
+EXTRA_DIST = concave_hull10.testcase \
+	concave_hull11.testcase \
+	concave_hull12.testcase \
+	concave_hull13.testcase \
+	concave_hull14.testcase \
+	concave_hull15.testcase \
+	concave_hull16.testcase \
+	concave_hull17.testcase \
+	concave_hull18.testcase \
+	concave_hull19.testcase \
+	concave_hull1.testcase \
+	concave_hull2.testcase \
+	concave_hull3.testcase \
+	concave_hull4.testcase \
+	concave_hull5.testcase \
+	concave_hull6.testcase \
+	concave_hull7.testcase \
+	concave_hull8.testcase \
+	concave_hull9.testcase \
+	delaunay10.testcase \
+	delaunay11.testcase \
+	delaunay12.testcase \
+	delaunay13.testcase \
+	delaunay14.testcase \
+	delaunay15.testcase \
+	delaunay16.testcase \
+	delaunay17.testcase \
+	delaunay18.testcase \
+	delaunay19.testcase \
+	delaunay1.testcase \
+	delaunay2.testcase \
+	delaunay3.testcase \
+	delaunay4.testcase \
+	delaunay5.testcase \
+	delaunay6.testcase \
+	delaunay7.testcase \
+	delaunay8.testcase \
+	delaunay9.testcase \
+	voronoj10.testcase \
+	voronoj11.testcase \
+	voronoj12.testcase \
+	voronoj13.testcase \
+	voronoj14.testcase \
+	voronoj15.testcase \
+	voronoj16.testcase \
+	voronoj17.testcase \
+	voronoj18.testcase \
+	voronoj19.testcase \
+	voronoj1.testcase \
+	voronoj20.testcase \
+	voronoj2.testcase \
+	voronoj3.testcase \
+	voronoj4.testcase \
+	voronoj5.testcase \
+	voronoj6.testcase \
+	voronoj8.testcase \
+	voronoj9.testcase 
diff --git a/test/sql_stmt_geosadvanced_tests/Makefile.in b/test/sql_stmt_geosadvanced_tests/Makefile.in
index 17d05f4..a9da1ee 100644
--- a/test/sql_stmt_geosadvanced_tests/Makefile.in
+++ b/test/sql_stmt_geosadvanced_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_geosadvanced_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -198,333 +240,63 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-EXTRA_DIST = closestpoint10.testcase \
-	closestpoint11.testcase \
-	closestpoint12.testcase \
-	closestpoint13.testcase \
-	closestpoint14.testcase \
-	closestpoint15.testcase \
-	closestpoint16.testcase \
-	closestpoint17.testcase \
-	closestpoint18.testcase \
-	closestpoint19.testcase \
-	closestpoint1.testcase \
-	closestpoint20.testcase \
-	closestpoint21.testcase \
-	closestpoint22.testcase \
-	closestpoint2.testcase \
-	closestpoint3.testcase \
-	closestpoint4.testcase \
-	closestpoint5.testcase \
-	closestpoint6.testcase \
-	closestpoint7.testcase \
-	closestpoint8.testcase \
-	closestpoint9.testcase \
-	coveredby1.testcase \
-	coveredby2.testcase \
-	covers1.testcase \
-	covers2.testcase \
-	covers_covered1.testcase \
-	covers_covered2.testcase \
-	covers_covered3.testcase \
-	covers_covered4.testcase \
-	covers_covered5.testcase \
-	covers_covered6.testcase \
-	covers_covered7.testcase \
-	createtopo10.testcase \
-	createtopo11.testcase \
-	createtopo12.testcase \
-	createtopo13.testcase \
-	createtopo14.testcase \
-	createtopo15.testcase \
-	createtopo16.testcase \
-	createtopo17.testcase \
-	createtopo18.testcase \
-	createtopo1.testcase \
-	createtopo2.testcase \
-	createtopo3.testcase \
-	createtopo4.testcase \
-	createtopo5.testcase \
-	createtopo6.testcase \
-	createtopo7.testcase \
-	createtopo8.testcase \
-	createtopo9.testcase \
-	distance_geogr10.testcase \
-	distance_geogr11.testcase \
-	distance_geogr12.testcase \
-	distance_geogr1.testcase \
-	distance_geogr2.testcase \
-	distance_geogr3.testcase \
-	distance_geogr4.testcase \
-	distance_geogr5.testcase \
-	distance_geogr6.testcase \
-	distance_geogr7.testcase \
-	distance_geogr8.testcase \
-	distance_geogr9.testcase \
-	hausdorffdistance1.testcase \
-	hausdorffdistance2.testcase \
-	hausdorffdistance3.testcase \
-	hausdorffdistance4.testcase \
-	hausdorffdistance5.testcase \
-	hausdorffdistance6.testcase \
-	hausdorffdistance7.testcase \
-	hexgrid10.testcase \
-	hexgrid11.testcase \
-	hexgrid12.testcase \
-	hexgrid13.testcase \
-	hexgrid14.testcase \
-	hexgrid15.testcase \
-	hexgrid16.testcase \
-	hexgrid17.testcase \
-	hexgrid18.testcase \
-	hexgrid19.testcase \
-	hexgrid1.testcase \
-	hexgrid20.testcase \
-	hexgrid21.testcase \
-	hexgrid22.testcase \
-	hexgrid23.testcase \
-	hexgrid2.testcase \
-	hexgrid3.testcase \
-	hexgrid4.testcase \
-	hexgrid5.testcase \
-	hexgrid6.testcase \
-	hexgrid7.testcase \
-	hexgrid8.testcase \
-	hexgrid9.testcase \
-	interpolateequidistantpoint10.testcase \
-	interpolateequidistantpoint11.testcase \
-	interpolateequidistantpoint12.testcase \
-	interpolateequidistantpoint13.testcase \
-	interpolateequidistantpoint14.testcase \
-	interpolateequidistantpoint1.testcase \
-	interpolateequidistantpoint2.testcase \
-	interpolateequidistantpoint3.testcase \
-	interpolateequidistantpoint4.testcase \
-	interpolateequidistantpoint5.testcase \
-	interpolateequidistantpoint6.testcase \
-	interpolateequidistantpoint7.testcase \
-	interpolateequidistantpoint8.testcase \
-	interpolateequidistantpoint9.testcase \
-	interpolatepoint10.testcase \
-	interpolatepoint11.testcase \
-	interpolatepoint12.testcase \
-	interpolatepoint13.testcase \
-	interpolatepoint14.testcase \
-	interpolatepoint1.testcase \
-	interpolatepoint2.testcase \
-	interpolatepoint3.testcase \
-	interpolatepoint4.testcase \
-	interpolatepoint5.testcase \
-	interpolatepoint6.testcase \
-	interpolatepoint7.testcase \
-	interpolatepoint8.testcase \
-	interpolatepoint9.testcase \
-	linemerge10.testcase \
-	linemerge1.testcase \
-	linemerge2.testcase \
-	linemerge3.testcase \
-	linemerge4.testcase \
-	linemerge5.testcase \
-	linemerge6.testcase \
-	linemerge7.testcase \
-	linemerge8.testcase \
-	linemerge9.testcase \
-	linesnodes10.testcase \
-	linesnodes11.testcase \
-	linesnodes12.testcase \
-	linesnodes13.testcase \
-	linesnodes14.testcase \
-	linesnodes15.testcase \
-	linesnodes16.testcase \
-	linesnodes17.testcase \
-	linesnodes18.testcase \
-	linesnodes19.testcase \
-	linesnodes1.testcase \
-	linesnodes2.testcase \
-	linesnodes3.testcase \
-	linesnodes4.testcase \
-	linesnodes5.testcase \
-	linesnodes6.testcase \
-	linesnodes7.testcase \
-	linesnodes8.testcase \
-	linesnodes9.testcase \
-	linesubstring10.testcase \
-	linesubstring11.testcase \
-	linesubstring12.testcase \
-	linesubstring13.testcase \
-	linesubstring14.testcase \
-	linesubstring15.testcase \
-	linesubstring16.testcase \
-	linesubstring17.testcase \
-	linesubstring18.testcase \
-	linesubstring19.testcase \
-	linesubstring1.testcase \
-	linesubstring20.testcase \
-	linesubstring21.testcase \
-	linesubstring22.testcase \
-	linesubstring23.testcase \
-	linesubstring24.testcase \
-	linesubstring25.testcase \
-	linesubstring26.testcase \
-	linesubstring2.testcase \
-	linesubstring3.testcase \
-	linesubstring4.testcase \
-	linesubstring5.testcase \
-	linesubstring6.testcase \
-	linesubstring7.testcase \
-	linesubstring8.testcase \
-	linesubstring9.testcase \
-	locatepoint10.testcase \
-	locatepoint11.testcase \
-	locatepoint12.testcase \
-	locatepoint1.testcase \
-	locatepoint2.testcase \
-	locatepoint3.testcase \
-	locatepoint4.testcase \
-	locatepoint5.testcase \
-	locatepoint6.testcase \
-	locatepoint7.testcase \
-	locatepoint8.testcase \
-	locatepoint9.testcase \
-	offsetcurve10.testcase \
-	offsetcurve11.testcase \
-	offsetcurve12.testcase \
-	offsetcurve13.testcase \
-	offsetcurve14.testcase \
-	offsetcurve1.testcase \
-	offsetcurve2.testcase \
-	offsetcurve3.testcase \
-	offsetcurve4.testcase \
-	offsetcurve5.testcase \
-	offsetcurve6.testcase \
-	offsetcurve7.testcase \
-	offsetcurve8.testcase \
-	offsetcurve9.testcase \
-	ringsnodes1.testcase \
-	ringsnodes2.testcase \
-	ringsnodes3.testcase \
-	ringsnodes4.testcase \
-	ringsnodes5.testcase \
-	ringsnodes6.testcase \
-	sharedpaths10.testcase \
-	sharedpaths11.testcase \
-	sharedpaths12.testcase \
-	sharedpaths13.testcase \
-	sharedpaths14.testcase \
-	sharedpaths15.testcase \
-	sharedpaths16.testcase \
-	sharedpaths17.testcase \
-	sharedpaths18.testcase \
-	sharedpaths19.testcase \
-	sharedpaths1.testcase \
-	sharedpaths20.testcase \
-	sharedpaths21.testcase \
-	sharedpaths22.testcase \
-	sharedpaths23.testcase \
-	sharedpaths24.testcase \
-	sharedpaths25.testcase \
-	sharedpaths26.testcase \
-	sharedpaths27.testcase \
-	sharedpaths28.testcase \
-	sharedpaths29.testcase \
-	sharedpaths2.testcase \
-	sharedpaths30.testcase \
-	sharedpaths31.testcase \
-	sharedpaths32.testcase \
-	sharedpaths3.testcase \
-	sharedpaths4.testcase \
-	sharedpaths5.testcase \
-	sharedpaths6.testcase \
-	sharedpaths7.testcase \
-	sharedpaths8.testcase \
-	sharedpaths9.testcase \
-	shortestline1.testcase \
-	shortestline2.testcase \
-	shortestline3.testcase \
-	shortestline4.testcase \
-	shortestline5.testcase \
-	shortestline6.testcase \
-	shortestline7.testcase \
-	singlesidedbuffer11.testcase \
-	singlesidedbuffer12.testcase \
-	singlesidedbuffer13.testcase \
-	singlesidedbuffer14.testcase \
-	singlesidedbuffer15.testcase \
-	singlesidedbuffer16.testcase \
-	singlesidedbuffer17.testcase \
-	singlesidedbuffer1.testcase \
-	singlesidedbuffer2.testcase \
-	singlesidedbuffer3.testcase \
-	singlesidedbuffer4.testcase \
-	singlesidedbuffer5.testcase \
-	singlesidedbuffer6.testcase \
-	singlesidedbuffer7.testcase \
-	singlesidedbuffer8.testcase \
-	singlesidedbuffer9.testcase \
-	snap10.testcase \
-	snap1.testcase \
-	snap2.testcase \
-	snap3.testcase \
-	snap4.testcase \
-	snap5.testcase \
-	snap6.testcase \
-	snap7.testcase \
-	snap8.testcase \
-	snap9.testcase \
-	squaregrid10.testcase \
-	squaregrid11.testcase \
-	squaregrid12.testcase \
-	squaregrid13.testcase \
-	squaregrid14.testcase \
-	squaregrid15.testcase \
-	squaregrid16.testcase \
-	squaregrid17.testcase \
-	squaregrid18.testcase \
-	squaregrid19.testcase \
-	squaregrid1.testcase \
-	squaregrid20.testcase \
-	squaregrid21.testcase \
-	squaregrid22.testcase \
-	squaregrid23.testcase \
-	squaregrid2.testcase \
-	squaregrid3.testcase \
-	squaregrid4.testcase \
-	squaregrid5.testcase \
-	squaregrid6.testcase \
-	squaregrid7.testcase \
-	squaregrid8.testcase \
-	squaregrid9.testcase \
-	trianggrid10.testcase \
-	trianggrid11.testcase \
-	trianggrid12.testcase \
-	trianggrid13.testcase \
-	trianggrid14.testcase \
-	trianggrid15.testcase \
-	trianggrid16.testcase \
-	trianggrid17.testcase \
-	trianggrid18.testcase \
-	trianggrid19.testcase \
-	trianggrid1.testcase \
-	trianggrid20.testcase \
-	trianggrid21.testcase \
-	trianggrid22.testcase \
-	trianggrid23.testcase \
-	trianggrid2.testcase \
-	trianggrid3.testcase \
-	trianggrid4.testcase \
-	trianggrid5.testcase \
-	trianggrid6.testcase \
-	trianggrid7.testcase \
-	trianggrid8.testcase \
-	trianggrid9.testcase \
-	unaryunion1.testcase \
-	unaryunion2.testcase \
-	unaryunion3.testcase \
-	unaryunion4.testcase \
-	unaryunion5.testcase \
-	unaryunion6.testcase \
-	unaryunion7.testcase \
-	unaryunion8.testcase 
+EXTRA_DIST = concave_hull10.testcase \
+	concave_hull11.testcase \
+	concave_hull12.testcase \
+	concave_hull13.testcase \
+	concave_hull14.testcase \
+	concave_hull15.testcase \
+	concave_hull16.testcase \
+	concave_hull17.testcase \
+	concave_hull18.testcase \
+	concave_hull19.testcase \
+	concave_hull1.testcase \
+	concave_hull2.testcase \
+	concave_hull3.testcase \
+	concave_hull4.testcase \
+	concave_hull5.testcase \
+	concave_hull6.testcase \
+	concave_hull7.testcase \
+	concave_hull8.testcase \
+	concave_hull9.testcase \
+	delaunay10.testcase \
+	delaunay11.testcase \
+	delaunay12.testcase \
+	delaunay13.testcase \
+	delaunay14.testcase \
+	delaunay15.testcase \
+	delaunay16.testcase \
+	delaunay17.testcase \
+	delaunay18.testcase \
+	delaunay19.testcase \
+	delaunay1.testcase \
+	delaunay2.testcase \
+	delaunay3.testcase \
+	delaunay4.testcase \
+	delaunay5.testcase \
+	delaunay6.testcase \
+	delaunay7.testcase \
+	delaunay8.testcase \
+	delaunay9.testcase \
+	voronoj10.testcase \
+	voronoj11.testcase \
+	voronoj12.testcase \
+	voronoj13.testcase \
+	voronoj14.testcase \
+	voronoj15.testcase \
+	voronoj16.testcase \
+	voronoj17.testcase \
+	voronoj18.testcase \
+	voronoj19.testcase \
+	voronoj1.testcase \
+	voronoj20.testcase \
+	voronoj2.testcase \
+	voronoj3.testcase \
+	voronoj4.testcase \
+	voronoj5.testcase \
+	voronoj6.testcase \
+	voronoj8.testcase \
+	voronoj9.testcase 
 
 all: all-am
 
@@ -565,11 +337,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -707,15 +477,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull1.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull1.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull1.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull1.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull10.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull10.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull10.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull10.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull11.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull11.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull11.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull11.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull12.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull12.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull12.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull12.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull13.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull13.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull13.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull13.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull14.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull14.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull14.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull14.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull15.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull15.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull15.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull15.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull16.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull16.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull16.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull16.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull17.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull17.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull17.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull17.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull18.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull18.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull18.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull18.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull19.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull19.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull19.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull19.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull2.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull2.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull2.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull2.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull3.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull3.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull3.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull3.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull4.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull4.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull4.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull4.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull5.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull5.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull5.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull5.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull6.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull6.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull6.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull6.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull7.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull7.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull7.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull7.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull8.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull8.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull8.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull8.testcase
diff --git a/test/sql_stmt_geostrunk_tests/concave_hull9.testcase b/test/sql_stmt_geosadvanced_tests/concave_hull9.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/concave_hull9.testcase
rename to test/sql_stmt_geosadvanced_tests/concave_hull9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo1.testcase b/test/sql_stmt_geosadvanced_tests/createtopo1.testcase
deleted file mode 100644
index 920de0b..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo1.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 2 arguments, 2D
-:memory: #use in-memory database
-SELECT CreateTopologyTables(4326, "XY");
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables(4326, "XY")
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo12.testcase b/test/sql_stmt_geosadvanced_tests/createtopo12.testcase
deleted file mode 100644
index 8b12dfc..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo12.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 3 arguments, spaces in prefix
-:memory: #use in-memory database
-SELECT CreateTopologyTables("hello world", 4326, 3);
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables("hello world", 4326, 3)
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo13.testcase b/test/sql_stmt_geosadvanced_tests/createtopo13.testcase
deleted file mode 100644
index 068d863..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo13.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 3 arguments, quote in prefix
-:memory: #use in-memory database
-SELECT CreateTopologyTables("hello'_world", 4326, 3);
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables("hello'_world", 4326, 3)
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo14.testcase b/test/sql_stmt_geosadvanced_tests/createtopo14.testcase
deleted file mode 100644
index a155ed5..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo14.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 2 arguments, 2D int
-:memory: #use in-memory database
-SELECT CreateTopologyTables(4326, 2);
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables(4326, 2)
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo15.testcase b/test/sql_stmt_geosadvanced_tests/createtopo15.testcase
deleted file mode 100644
index 92c20c8..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo15.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 2 arguments, 3D int
-:memory: #use in-memory database
-SELECT CreateTopologyTables(4326, 3);
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables(4326, 3)
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo2.testcase b/test/sql_stmt_geosadvanced_tests/createtopo2.testcase
deleted file mode 100644
index 64f2b61..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo2.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 2 arguments, 3D
-:memory: #use in-memory database
-SELECT CreateTopologyTables(4326, "XYZ");
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables(4326, "XYZ")
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo3.testcase b/test/sql_stmt_geosadvanced_tests/createtopo3.testcase
deleted file mode 100644
index 586f181..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo3.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 3 arguments, 2D
-:memory: #use in-memory database
-SELECT CreateTopologyTables("my_prefix", 4326, "XY");
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables("my_prefix", 4326, "XY")
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo4.testcase b/test/sql_stmt_geosadvanced_tests/createtopo4.testcase
deleted file mode 100644
index 3e75e6b..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo4.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 3 arguments, 3D
-:memory: #use in-memory database
-SELECT CreateTopologyTables("my_prefix", 4326, "XYZ");
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables("my_prefix", 4326, "XYZ")
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo5.testcase b/test/sql_stmt_geosadvanced_tests/createtopo5.testcase
deleted file mode 100644
index 0a1b86d..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo5.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 3 arguments, 3D int
-:memory: #use in-memory database
-SELECT CreateTopologyTables("my_prefix", 4326, 3);
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables("my_prefix", 4326, 3)
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geosadvanced_tests/createtopo6.testcase b/test/sql_stmt_geosadvanced_tests/createtopo6.testcase
deleted file mode 100644
index ae3429c..0000000
--- a/test/sql_stmt_geosadvanced_tests/createtopo6.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-CreateTopology - 3 arguments, 2D int
-:memory: #use in-memory database
-SELECT CreateTopologyTables("my_prefix", 4326, 2);
-1 # rows (not including the header row)
-1 # columns
-CreateTopologyTables("my_prefix", 4326, 2)
-1
\ No newline at end of file
diff --git a/test/sql_stmt_geostrunk_tests/delaunay1.testcase b/test/sql_stmt_geosadvanced_tests/delaunay1.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay1.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay1.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay10.testcase b/test/sql_stmt_geosadvanced_tests/delaunay10.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay10.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay10.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay11.testcase b/test/sql_stmt_geosadvanced_tests/delaunay11.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay11.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay11.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay12.testcase b/test/sql_stmt_geosadvanced_tests/delaunay12.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay12.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay12.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay13.testcase b/test/sql_stmt_geosadvanced_tests/delaunay13.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay13.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay13.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay14.testcase b/test/sql_stmt_geosadvanced_tests/delaunay14.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay14.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay14.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay15.testcase b/test/sql_stmt_geosadvanced_tests/delaunay15.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay15.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay15.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay16.testcase b/test/sql_stmt_geosadvanced_tests/delaunay16.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay16.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay16.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay17.testcase b/test/sql_stmt_geosadvanced_tests/delaunay17.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay17.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay17.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay18.testcase b/test/sql_stmt_geosadvanced_tests/delaunay18.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay18.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay18.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay19.testcase b/test/sql_stmt_geosadvanced_tests/delaunay19.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay19.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay19.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay2.testcase b/test/sql_stmt_geosadvanced_tests/delaunay2.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay2.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay2.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay3.testcase b/test/sql_stmt_geosadvanced_tests/delaunay3.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay3.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay3.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay4.testcase b/test/sql_stmt_geosadvanced_tests/delaunay4.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay4.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay4.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay5.testcase b/test/sql_stmt_geosadvanced_tests/delaunay5.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay5.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay5.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay6.testcase b/test/sql_stmt_geosadvanced_tests/delaunay6.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay6.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay6.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay7.testcase b/test/sql_stmt_geosadvanced_tests/delaunay7.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay7.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay7.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay8.testcase b/test/sql_stmt_geosadvanced_tests/delaunay8.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay8.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay8.testcase
diff --git a/test/sql_stmt_geostrunk_tests/delaunay9.testcase b/test/sql_stmt_geosadvanced_tests/delaunay9.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/delaunay9.testcase
rename to test/sql_stmt_geosadvanced_tests/delaunay9.testcase
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase b/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase
deleted file mode 100644
index ef3914a..0000000
--- a/test/sql_stmt_geosadvanced_tests/hexgrid20.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-HexagonalGrid - valid - with Origin
-:memory: #use in-memory database
-SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')));
-1 # rows (not including the header row)
-1 # columns
-AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')))
-MULTIPOLYGON(((0.1 0.1, 0.6 -0.766025, 1.6 -0.766025, 2.1 0.1, 1.6 0.966025, 0.6 0.966025, 0.1 0.1)), ((-1.4 0.966025, -0.9 0.1, 0.1 0.1, 0.6 0.966025, 0.1 1.832051, -0.9 1.832051, -1.4 0.966025)), ((1.6 0.966025, 2.1 0.1, 3.1 0.1, 3.6 0.966025, 3.1 1.832051, 2.1 1.832051, 1.6 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.6 0.966025, 2.1 1.832051, 1.6 2.698076, 0.6 2.698076, 0.1 1.832051)))
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase b/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase
deleted file mode 100644
index c8bd97a..0000000
--- a/test/sql_stmt_geosadvanced_tests/hexgrid21.testcase
+++ /dev/null
@@ -1,10 +0,0 @@
-HexagonalGrid - valid - no Origin
-:memory: #use in-memory database
-SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0));
-1 # rows (not including the header row)
-1 # columns
-AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0))
-MULTIPOLYGON(((0 0, 0.5 -0.866025, 1.5 -0.866025, 2 0, 1.5 0.866025, 0.5 0.866025, 0 0)), ((-1.5 0.866025, -1 0, 0 0, 0.5 0.866025, 0 1.732051, -1 1.732051, -1.5 0.866025)), ((1.5 0.866025, 2 0, 3 0, 3.5 0.866025, 3 1.732051, 2 1.732051, 1.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1.5 0.866025, 2 1.732051, 1.5 2.598076, 0.5 2.598076, 0 1.732051)))
-
-
-
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase b/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase
deleted file mode 100644
index aaacd35..0000000
--- a/test/sql_stmt_geosadvanced_tests/hexgrid22.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-HexagonalGrid - valid - with Origin, edges_only
-:memory: #use in-memory database
-SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')));
-1 # rows (not including the header row)
-1 # columns
-ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')))
-24.0
diff --git a/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase b/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase
deleted file mode 100644
index a54198f..0000000
--- a/test/sql_stmt_geosadvanced_tests/hexgrid23.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-HexagonalGrid - valid - no Origin, edges_only
-:memory: #use in-memory database
-SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1));
-1 # rows (not including the header row)
-1 # columns
-ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1))
-19.0
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase b/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase
deleted file mode 100644
index d74abcd..0000000
--- a/test/sql_stmt_geosadvanced_tests/trianggrid20.testcase
+++ /dev/null
@@ -1,10 +0,0 @@
-TriangularGrid - valid - no Origin
-:memory: #use in-memory database
-SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0));
-1 # rows (not including the header row)
-1 # columns
-AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0))
-MULTIPOLYGON(((0 0, 1 0, 0.5 0.866025, 0 0)), ((0.5 0.866025, 1 0, 1.5 0.866025, 0.5 0.866025)), ((1 0, 2 0, 1.5 0.866025, 1 0)), ((1.5 0.866025, 2 0, 2.5 0.866025, 1.5 0.866025)), ((2 0, 3 0, 2.5 0.866025, 2 0)), ((-0.5 0.866025, 0.5 0.866025, 0 1.732051, -0.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1 1.732051, 0 1.732051)), ((0.5 0.866025, 1.5 0.866025, 1 1.732051, 0.5 0.866025)), ((1 1.732051, 1.5 0.866025, 2 1.732051, 1 1.732051)), ((1.5 0.866025, 2.5 0.866025, 2 1.732051, 1.5 0.866025)))
-
-
-
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase b/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase
deleted file mode 100644
index b19d523..0000000
--- a/test/sql_stmt_geosadvanced_tests/trianggrid21.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-TriangularGrid - valid - with Origin
-:memory: #use in-memory database
-SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')));
-1 # rows (not including the header row)
-1 # columns
-AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)')))
-MULTIPOLYGON(((0.1 0.1, 1.1 0.1, 0.6 0.966025, 0.1 0.1)), ((0.6 0.966025, 1.1 0.1, 1.6 0.966025, 0.6 0.966025)), ((1.1 0.1, 2.1 0.1, 1.6 0.966025, 1.1 0.1)), ((1.6 0.966025, 2.1 0.1, 2.6 0.966025, 1.6 0.966025)), ((2.1 0.1, 3.1 0.1, 2.6 0.966025, 2.1 0.1)), ((-0.4 0.966025, 0.6 0.966025, 0.1 1.832051, -0.4 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.1 1.832051, 0.1 1.832051)), ((0.6 0.966025, 1.6 0.966025, 1.1 1.832051, 0.6 0.966025)), ((1.1 1.832051, 1.6 0.966025, 2.1 1.832051, 1.1 1.83 [...]
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase b/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase
deleted file mode 100644
index 5c08ffd..0000000
--- a/test/sql_stmt_geosadvanced_tests/trianggrid22.testcase
+++ /dev/null
@@ -1,10 +0,0 @@
-TriangularGrid - valid - no Origin, edges_only
-:memory: #use in-memory database
-SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1));
-1 # rows (not including the header row)
-1 # columns
-ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1))
-18.0
-
-
-
diff --git a/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase b/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase
deleted file mode 100644
index ada451e..0000000
--- a/test/sql_stmt_geosadvanced_tests/trianggrid23.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-TriangularGrid - valid - with Origin, edges_only
-:memory: #use in-memory database
-SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')));
-1 # rows (not including the header row)
-1 # columns
-ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)')))
-18.0
diff --git a/test/sql_stmt_geostrunk_tests/voronoj1.testcase b/test/sql_stmt_geosadvanced_tests/voronoj1.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj1.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj1.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj10.testcase b/test/sql_stmt_geosadvanced_tests/voronoj10.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj10.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj10.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj11.testcase b/test/sql_stmt_geosadvanced_tests/voronoj11.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj11.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj11.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj12.testcase b/test/sql_stmt_geosadvanced_tests/voronoj12.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj12.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj12.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj13.testcase b/test/sql_stmt_geosadvanced_tests/voronoj13.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj13.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj13.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj14.testcase b/test/sql_stmt_geosadvanced_tests/voronoj14.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj14.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj14.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj15.testcase b/test/sql_stmt_geosadvanced_tests/voronoj15.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj15.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj15.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj16.testcase b/test/sql_stmt_geosadvanced_tests/voronoj16.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj16.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj16.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj17.testcase b/test/sql_stmt_geosadvanced_tests/voronoj17.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj17.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj17.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj18.testcase b/test/sql_stmt_geosadvanced_tests/voronoj18.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj18.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj18.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj19.testcase b/test/sql_stmt_geosadvanced_tests/voronoj19.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj19.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj19.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj2.testcase b/test/sql_stmt_geosadvanced_tests/voronoj2.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj2.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj2.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj20.testcase b/test/sql_stmt_geosadvanced_tests/voronoj20.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj20.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj20.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj3.testcase b/test/sql_stmt_geosadvanced_tests/voronoj3.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj3.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj3.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj4.testcase b/test/sql_stmt_geosadvanced_tests/voronoj4.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj4.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj4.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj5.testcase b/test/sql_stmt_geosadvanced_tests/voronoj5.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj5.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj5.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj6.testcase b/test/sql_stmt_geosadvanced_tests/voronoj6.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj6.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj6.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj8.testcase b/test/sql_stmt_geosadvanced_tests/voronoj8.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj8.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj8.testcase
diff --git a/test/sql_stmt_geostrunk_tests/voronoj9.testcase b/test/sql_stmt_geosadvanced_tests/voronoj9.testcase
similarity index 100%
rename from test/sql_stmt_geostrunk_tests/voronoj9.testcase
rename to test/sql_stmt_geosadvanced_tests/voronoj9.testcase
diff --git a/test/sql_stmt_geostrunk_tests/Makefile.am b/test/sql_stmt_geostrunk_tests/Makefile.am
deleted file mode 100644
index 1861ed4..0000000
--- a/test/sql_stmt_geostrunk_tests/Makefile.am
+++ /dev/null
@@ -1,58 +0,0 @@
-
-EXTRA_DIST = concave_hull10.testcase \
-	concave_hull11.testcase \
-	concave_hull12.testcase \
-	concave_hull13.testcase \
-	concave_hull14.testcase \
-	concave_hull15.testcase \
-	concave_hull16.testcase \
-	concave_hull17.testcase \
-	concave_hull18.testcase \
-	concave_hull19.testcase \
-	concave_hull1.testcase \
-	concave_hull2.testcase \
-	concave_hull3.testcase \
-	concave_hull4.testcase \
-	concave_hull5.testcase \
-	concave_hull6.testcase \
-	concave_hull7.testcase \
-	concave_hull8.testcase \
-	concave_hull9.testcase \
-	delaunay10.testcase \
-	delaunay11.testcase \
-	delaunay12.testcase \
-	delaunay13.testcase \
-	delaunay14.testcase \
-	delaunay15.testcase \
-	delaunay16.testcase \
-	delaunay17.testcase \
-	delaunay18.testcase \
-	delaunay19.testcase \
-	delaunay1.testcase \
-	delaunay2.testcase \
-	delaunay3.testcase \
-	delaunay4.testcase \
-	delaunay5.testcase \
-	delaunay6.testcase \
-	delaunay7.testcase \
-	delaunay8.testcase \
-	delaunay9.testcase \
-	voronoj10.testcase \
-	voronoj11.testcase \
-	voronoj12.testcase \
-	voronoj13.testcase \
-	voronoj14.testcase \
-	voronoj15.testcase \
-	voronoj16.testcase \
-	voronoj17.testcase \
-	voronoj18.testcase \
-	voronoj19.testcase \
-	voronoj1.testcase \
-	voronoj20.testcase \
-	voronoj2.testcase \
-	voronoj3.testcase \
-	voronoj4.testcase \
-	voronoj5.testcase \
-	voronoj6.testcase \
-	voronoj8.testcase \
-	voronoj9.testcase 
diff --git a/test/sql_stmt_geostrunk_tests/Makefile.in b/test/sql_stmt_geostrunk_tests/Makefile.in
deleted file mode 100644
index 817a420..0000000
--- a/test/sql_stmt_geostrunk_tests/Makefile.in
+++ /dev/null
@@ -1,453 +0,0 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
-    esac; \
-    test $$am__dry = yes; \
-  }
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = test/sql_stmt_geostrunk_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GEOSCONFIG = @GEOSCONFIG@
-GEOS_CFLAGS = @GEOS_CFLAGS@
-GEOS_LDFLAGS = @GEOS_LDFLAGS@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
-LIBXML2_LIBS = @LIBXML2_LIBS@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = concave_hull10.testcase \
-	concave_hull11.testcase \
-	concave_hull12.testcase \
-	concave_hull13.testcase \
-	concave_hull14.testcase \
-	concave_hull15.testcase \
-	concave_hull16.testcase \
-	concave_hull17.testcase \
-	concave_hull18.testcase \
-	concave_hull19.testcase \
-	concave_hull1.testcase \
-	concave_hull2.testcase \
-	concave_hull3.testcase \
-	concave_hull4.testcase \
-	concave_hull5.testcase \
-	concave_hull6.testcase \
-	concave_hull7.testcase \
-	concave_hull8.testcase \
-	concave_hull9.testcase \
-	delaunay10.testcase \
-	delaunay11.testcase \
-	delaunay12.testcase \
-	delaunay13.testcase \
-	delaunay14.testcase \
-	delaunay15.testcase \
-	delaunay16.testcase \
-	delaunay17.testcase \
-	delaunay18.testcase \
-	delaunay19.testcase \
-	delaunay1.testcase \
-	delaunay2.testcase \
-	delaunay3.testcase \
-	delaunay4.testcase \
-	delaunay5.testcase \
-	delaunay6.testcase \
-	delaunay7.testcase \
-	delaunay8.testcase \
-	delaunay9.testcase \
-	voronoj10.testcase \
-	voronoj11.testcase \
-	voronoj12.testcase \
-	voronoj13.testcase \
-	voronoj14.testcase \
-	voronoj15.testcase \
-	voronoj16.testcase \
-	voronoj17.testcase \
-	voronoj18.testcase \
-	voronoj19.testcase \
-	voronoj1.testcase \
-	voronoj20.testcase \
-	voronoj2.testcase \
-	voronoj3.testcase \
-	voronoj4.testcase \
-	voronoj5.testcase \
-	voronoj6.testcase \
-	voronoj8.testcase \
-	voronoj9.testcase 
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geostrunk_tests/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign test/sql_stmt_geostrunk_tests/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/test/sql_stmt_libxml2_tests/Makefile.am b/test/sql_stmt_libxml2_tests/Makefile.am
index c533d73..0c86ef8 100644
--- a/test/sql_stmt_libxml2_tests/Makefile.am
+++ b/test/sql_stmt_libxml2_tests/Makefile.am
@@ -99,21 +99,12 @@ EXTRA_DIST = addfileid1.testcase \
 	registerGraphic7.testcase \
 	registerGraphic8.testcase \
 	registerGraphic9.testcase \
-	registerGroup10.testcase \
-	registerGroup11.testcase \
-	registerGroup12.testcase \
-	registerGroup13.testcase \
 	registerGroup14.testcase \
 	registerGroup15.testcase \
 	registerGroup16.testcase \
 	registerGroup17.testcase \
 	registerGroup18.testcase \
-	registerGroup19.testcase \
 	registerGroup1.testcase \
-	registerGroup20.testcase \
-	registerGroup21.testcase \
-	registerGroup22.testcase \
-	registerGroup23.testcase \
 	registerGroup25.testcase \
 	registerGroup26.testcase \
 	registerGroup27.testcase \
@@ -126,7 +117,23 @@ EXTRA_DIST = addfileid1.testcase \
 	registerGroup6.testcase \
 	registerGroup7.testcase \
 	registerGroup8.testcase \
-	registerGroup9.testcase \
+	registerGroupStyle1.testcase \
+	registerGroupStyle2.testcase \
+	registerGroupStyle3.testcase \
+	registerGroupStyle4.testcase \
+	registerGroupStyle5.testcase \
+	registerGroupStyle6.testcase \
+	registerGroupStyle7.testcase \
+	registerGroupStyle8.testcase \
+	registerGroupStyle9.testcase \
+	registerGroupStyle10.testcase \
+	registerGroupStyle11.testcase \
+	registerGroupStyle12.testcase \
+	registerGroupStyle13.testcase \
+	registerGroupStyle14.testcase \
+	registerGroupStyle15.testcase \
+	registerGroupStyle16.testcase \
+	registerGroupStyle17.testcase \
 	registerIsoMeta10.testcase \
 	registerIsoMeta11.testcase \
 	registerIsoMeta12.testcase \
@@ -251,6 +258,14 @@ EXTRA_DIST = addfileid1.testcase \
 	xmlblobgetschemauri4.testcase \
 	xmlblobgetschemauri5.testcase \
 	xmlblobgetschemauri6.testcase \
+	xmlblobgetname1.testcase \
+	xmlblobgetname2.testcase \
+	xmlblobgetname3.testcase \
+	xmlblobgetname4.testcase \
+	xmlblobgetname5.testcase \
+	xmlblobgetname6.testcase \
+	xmlblobgetname7.testcase \
+	xmlblobgetname8.testcase \
 	xmlblobgettitle1.testcase \
 	xmlblobgettitle2.testcase \
 	xmlblobgettitle3.testcase \
@@ -264,6 +279,7 @@ EXTRA_DIST = addfileid1.testcase \
 	xmlcompress5.testcase \
 	xmlcompress6.testcase \
 	xmlcompress7.testcase \
+	xmlcompress8.testcase \
 	xmlfromblob10.testcase \
 	xmlfromblob11.testcase \
 	xmlfromblob12.testcase \
@@ -314,4 +330,5 @@ EXTRA_DIST = addfileid1.testcase \
 	xmluncompress4.testcase \
 	xmluncompress5.testcase \
 	xmluncompress6.testcase \
-	xmluncompress7.testcase 
+	xmluncompress7.testcase \
+	xmluncompress8.testcase 
diff --git a/test/sql_stmt_libxml2_tests/Makefile.in b/test/sql_stmt_libxml2_tests/Makefile.in
index 26bcc2e..9d39232 100644
--- a/test/sql_stmt_libxml2_tests/Makefile.in
+++ b/test/sql_stmt_libxml2_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_libxml2_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -298,21 +340,12 @@ EXTRA_DIST = addfileid1.testcase \
 	registerGraphic7.testcase \
 	registerGraphic8.testcase \
 	registerGraphic9.testcase \
-	registerGroup10.testcase \
-	registerGroup11.testcase \
-	registerGroup12.testcase \
-	registerGroup13.testcase \
 	registerGroup14.testcase \
 	registerGroup15.testcase \
 	registerGroup16.testcase \
 	registerGroup17.testcase \
 	registerGroup18.testcase \
-	registerGroup19.testcase \
 	registerGroup1.testcase \
-	registerGroup20.testcase \
-	registerGroup21.testcase \
-	registerGroup22.testcase \
-	registerGroup23.testcase \
 	registerGroup25.testcase \
 	registerGroup26.testcase \
 	registerGroup27.testcase \
@@ -325,7 +358,23 @@ EXTRA_DIST = addfileid1.testcase \
 	registerGroup6.testcase \
 	registerGroup7.testcase \
 	registerGroup8.testcase \
-	registerGroup9.testcase \
+	registerGroupStyle1.testcase \
+	registerGroupStyle2.testcase \
+	registerGroupStyle3.testcase \
+	registerGroupStyle4.testcase \
+	registerGroupStyle5.testcase \
+	registerGroupStyle6.testcase \
+	registerGroupStyle7.testcase \
+	registerGroupStyle8.testcase \
+	registerGroupStyle9.testcase \
+	registerGroupStyle10.testcase \
+	registerGroupStyle11.testcase \
+	registerGroupStyle12.testcase \
+	registerGroupStyle13.testcase \
+	registerGroupStyle14.testcase \
+	registerGroupStyle15.testcase \
+	registerGroupStyle16.testcase \
+	registerGroupStyle17.testcase \
 	registerIsoMeta10.testcase \
 	registerIsoMeta11.testcase \
 	registerIsoMeta12.testcase \
@@ -450,6 +499,14 @@ EXTRA_DIST = addfileid1.testcase \
 	xmlblobgetschemauri4.testcase \
 	xmlblobgetschemauri5.testcase \
 	xmlblobgetschemauri6.testcase \
+	xmlblobgetname1.testcase \
+	xmlblobgetname2.testcase \
+	xmlblobgetname3.testcase \
+	xmlblobgetname4.testcase \
+	xmlblobgetname5.testcase \
+	xmlblobgetname6.testcase \
+	xmlblobgetname7.testcase \
+	xmlblobgetname8.testcase \
 	xmlblobgettitle1.testcase \
 	xmlblobgettitle2.testcase \
 	xmlblobgettitle3.testcase \
@@ -463,6 +520,7 @@ EXTRA_DIST = addfileid1.testcase \
 	xmlcompress5.testcase \
 	xmlcompress6.testcase \
 	xmlcompress7.testcase \
+	xmlcompress8.testcase \
 	xmlfromblob10.testcase \
 	xmlfromblob11.testcase \
 	xmlfromblob12.testcase \
@@ -513,7 +571,8 @@ EXTRA_DIST = addfileid1.testcase \
 	xmluncompress4.testcase \
 	xmluncompress5.testcase \
 	xmluncompress6.testcase \
-	xmluncompress7.testcase 
+	xmluncompress7.testcase \
+	xmluncompress8.testcase 
 
 all: all-am
 
@@ -554,11 +613,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -696,15 +753,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_libxml2_tests/createisometa5.testcase b/test/sql_stmt_libxml2_tests/createisometa5.testcase
index c3bb51d..023bacd 100644
--- a/test/sql_stmt_libxml2_tests/createisometa5.testcase
+++ b/test/sql_stmt_libxml2_tests/createisometa5.testcase
@@ -1,5 +1,5 @@
 CreateIsoMetadataTables - no args
-:memory: #use in-memory database
+NEW:memory: #use in-memory database
 SELECT CreateIsoMetadataTables();
 1 # rows (not including the header row)
 1 # columns
diff --git a/test/sql_stmt_libxml2_tests/createisometa6.testcase b/test/sql_stmt_libxml2_tests/createisometa6.testcase
index e45b12f..e9988cd 100644
--- a/test/sql_stmt_libxml2_tests/createisometa6.testcase
+++ b/test/sql_stmt_libxml2_tests/createisometa6.testcase
@@ -1,5 +1,5 @@
 CreateIsoMetadataTables - relaxed
-:memory: #use in-memory database
+NEW:memory: #use in-memory database
 SELECT CreateIsoMetadataTables(1);
 1 # rows (not including the header row)
 1 # columns
diff --git a/test/sql_stmt_libxml2_tests/createstyling5.testcase b/test/sql_stmt_libxml2_tests/createstyling5.testcase
index 42c1641..ecfc240 100644
--- a/test/sql_stmt_libxml2_tests/createstyling5.testcase
+++ b/test/sql_stmt_libxml2_tests/createstyling5.testcase
@@ -1,5 +1,5 @@
 CreateStylingTables - no args
-:memory: #use in-memory database
+NEW:memory: #use in-memory database
 SELECT CreateStylingTables();
 1 # rows (not including the header row)
 1 # columns
diff --git a/test/sql_stmt_libxml2_tests/createstyling6.testcase b/test/sql_stmt_libxml2_tests/createstyling6.testcase
index 6519a35..c5067cd 100644
--- a/test/sql_stmt_libxml2_tests/createstyling6.testcase
+++ b/test/sql_stmt_libxml2_tests/createstyling6.testcase
@@ -1,5 +1,5 @@
 CreateStylingTables - relaxed
-:memory: #use in-memory database
+NEW:memory: #use in-memory database
 SELECT CreateStylingTables(1);
 1 # rows (not including the header row)
 1 # columns
diff --git a/test/sql_stmt_libxml2_tests/registerGraphic22.testcase b/test/sql_stmt_libxml2_tests/registerGraphic22.testcase
index 8c57f56..62b0f51 100644
--- a/test/sql_stmt_libxml2_tests/registerGraphic22.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGraphic22.testcase
@@ -1,5 +1,5 @@
 RegisterExternalGraphic - TEXT filename
-:memory: #use in-memory database
+NEW:memory: #use in-memory database
 SELECT RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma');
 1 # rows (not including the header row)
 1 # columns
diff --git a/test/sql_stmt_libxml2_tests/registerGroup10.testcase b/test/sql_stmt_libxml2_tests/registerGroup10.testcase
deleted file mode 100644
index e8fecd7..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup10.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - DOUBLE style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1.1);
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 1.1)
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup11.testcase b/test/sql_stmt_libxml2_tests/registerGroup11.testcase
deleted file mode 100644
index 872c641..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup11.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - BLOB style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', zeroblob(4));
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', zeroblob(4))
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup12.testcase b/test/sql_stmt_libxml2_tests/registerGroup12.testcase
deleted file mode 100644
index 3509564..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup12.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - TEXT style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma');
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma')
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup13.testcase b/test/sql_stmt_libxml2_tests/registerGroup13.testcase
deleted file mode 100644
index fd4319c..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup13.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - INTEGER style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1);
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 1)
-0
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup14.testcase b/test/sql_stmt_libxml2_tests/registerGroup14.testcase
index 988f0f0..d72a998 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup14.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup14.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - NULL paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1, NULL);
+SELECT RegisterStyledGroup('alpha', 'beta', NULL);
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 1, NULL)
+RegisterStyledGroup('alpha', 'beta', NULL)
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup15.testcase b/test/sql_stmt_libxml2_tests/registerGroup15.testcase
index b080c60..1cbf0b8 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup15.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup15.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - DOUBLE paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1, 1.1);
+SELECT RegisterStyledGroup('alpha', 'beta', 1.1);
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 1, 1.1)
+RegisterStyledGroup('alpha', 'beta', 1.1)
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup16.testcase b/test/sql_stmt_libxml2_tests/registerGroup16.testcase
index 21aab11..b564427 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup16.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup16.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - TEXT paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1, 'gamma');
+SELECT RegisterStyledGroup('alpha', 'beta', 'gamma');
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 1, 'gamma')
--1
+RegisterStyledGroup('alpha', 'beta', 'gamma')
+0
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup17.testcase b/test/sql_stmt_libxml2_tests/registerGroup17.testcase
index aa4447f..62d6b4c 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup17.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup17.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - BLOB paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1, zeroblob(4));
+SELECT RegisterStyledGroup('alpha', 'beta', zeroblob(4));
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 1, zeroblob(4))
+RegisterStyledGroup('alpha', 'beta', zeroblob(4))
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup18.testcase b/test/sql_stmt_libxml2_tests/registerGroup18.testcase
index bec5cf1..f7cc963 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup18.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup18.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - INTEGER paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 1, 1);
+SELECT RegisterStyledGroup('alpha', 'beta', 1);
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 1, 1)
+RegisterStyledGroup('alpha', 'beta', 1)
 0
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup19.testcase b/test/sql_stmt_libxml2_tests/registerGroup19.testcase
deleted file mode 100644
index 544b9bc..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup19.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - vector NULL style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', NULL);
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', NULL)
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup20.testcase b/test/sql_stmt_libxml2_tests/registerGroup20.testcase
deleted file mode 100644
index 3223f4c..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup20.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - vector DOUBLE style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1);
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1)
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup21.testcase b/test/sql_stmt_libxml2_tests/registerGroup21.testcase
deleted file mode 100644
index d528cde..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup21.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - vector TEXT style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 'delta');
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 'delta')
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup22.testcase b/test/sql_stmt_libxml2_tests/registerGroup22.testcase
deleted file mode 100644
index 6f225fb..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup22.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - vector BLOB style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4));
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4))
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup23.testcase b/test/sql_stmt_libxml2_tests/registerGroup23.testcase
deleted file mode 100644
index b15d775..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup23.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - vector INTEGER style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1);
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1)
-0
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroup25.testcase b/test/sql_stmt_libxml2_tests/registerGroup25.testcase
index de227e7..1090cfe 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup25.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup25.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - vector NULL paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, NULL);
+SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', NULL);
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1, NULL)
+RegisterStyledGroup('alpha', 'beta', 'gamma', NULL)
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup26.testcase b/test/sql_stmt_libxml2_tests/registerGroup26.testcase
index 4c7214a..96655a2 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup26.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup26.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - vector DOUBLE paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1.1);
+SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1);
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1.1)
+RegisterStyledGroup('alpha', 'beta', 'gamma', 1.1)
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup27.testcase b/test/sql_stmt_libxml2_tests/registerGroup27.testcase
index 0017237..fab3afe 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup27.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup27.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - vector TEXT paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 'gamma');
+SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 'gamma');
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 'gamma')
+RegisterStyledGroup('alpha', 'beta', 'gamma', 'gamma')
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup28.testcase b/test/sql_stmt_libxml2_tests/registerGroup28.testcase
index 97db6c3..e4e5672 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup28.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup28.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - vector BLOB paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, zeroblob(4));
+SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4));
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1, zeroblob(4))
+RegisterStyledGroup('alpha', 'beta', 'gamma', zeroblob(4))
 -1
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup29.testcase b/test/sql_stmt_libxml2_tests/registerGroup29.testcase
index e375178..12c60c7 100644
--- a/test/sql_stmt_libxml2_tests/registerGroup29.testcase
+++ b/test/sql_stmt_libxml2_tests/registerGroup29.testcase
@@ -1,8 +1,8 @@
 RegisterStyledGroup - vector INTEGER paint_order
 :memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1);
+SELECT RegisterStyledGroup('alpha', 'beta', 'gamma', 1);
 1 # rows (not including the header row)
 1 # columns
-RegisterStyledGroup('alpha', 'beta', 'gamma', 1, 1)
+RegisterStyledGroup('alpha', 'beta', 'gamma', 1)
 0
 
diff --git a/test/sql_stmt_libxml2_tests/registerGroup9.testcase b/test/sql_stmt_libxml2_tests/registerGroup9.testcase
deleted file mode 100644
index 1394be7..0000000
--- a/test/sql_stmt_libxml2_tests/registerGroup9.testcase
+++ /dev/null
@@ -1,8 +0,0 @@
-RegisterStyledGroup - NULL style_id
-:memory: #use in-memory database
-SELECT RegisterStyledGroup('alpha', 'beta', NULL);
-1 # rows (not including the header row)
-1 # columns
-RegisterStyledGroup('alpha', 'beta', NULL)
--1
-
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase
new file mode 100644
index 0000000..ecc9836
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - NULL group
+:memory: #use in-memory database
+SELECT RegisterGroupStyle(NULL, NULL);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle(NULL, NULL)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle10.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle10.testcase
new file mode 100644
index 0000000..aac9824
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle10.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - DOUBLE style_id
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1.1, zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1.1, zeroblob(4));
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle11.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle11.testcase
new file mode 100644
index 0000000..14f66ae
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle11.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - TEXT style_id
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 'beta', zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 'beta', zeroblob(4));
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle12.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle12.testcase
new file mode 100644
index 0000000..74dd16e
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle12.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - BLOB style_id
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', zeroblob(4), zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', zeroblob(4), zeroblob(4));
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle13.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle13.testcase
new file mode 100644
index 0000000..8dc0358
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle13.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - INTEGER style_id
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1, zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1, zeroblob(4));
+0
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle14.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle14.testcase
new file mode 100644
index 0000000..8bb8616
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle14.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - NULL style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1, NULL);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1, NULL);
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle15.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle15.testcase
new file mode 100644
index 0000000..eda583e
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle15.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - INTEGER style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1, 1);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1, 1);
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle16.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle16.testcase
new file mode 100644
index 0000000..f995d3a
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle16.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - DOUBLE style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1, 1.1);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1, 1.1);
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle17.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle17.testcase
new file mode 100644
index 0000000..0b8ee4c
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle17.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - TEXT style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1, 'beta');
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1, 'beta');
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase
new file mode 100644
index 0000000..49d4f0d
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - INTEGER group
+:memory: #use in-memory database
+SELECT RegisterGroupStyle(1, NULL);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle(1, NULL)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase
new file mode 100644
index 0000000..a1a4f2e
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - DOUBLE group
+:memory: #use in-memory database
+SELECT RegisterGroupStyle(1.1, NULL);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle(1.1, NULL)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase
new file mode 100644
index 0000000..8b8d8e3
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - BLOB group
+:memory: #use in-memory database
+SELECT RegisterGroupStyle(zeroblob(4), NULL);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle(zeroblob(4), NULL)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase
new file mode 100644
index 0000000..6824435
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - NULL style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', NULL);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', NULL)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle6.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle6.testcase
new file mode 100644
index 0000000..a1cb8e2
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle6.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - INTEGER style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle7.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle7.testcase
new file mode 100644
index 0000000..d89d2d3
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle7.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - DOUBLE style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 1.1);
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 1.1)
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle8.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle8.testcase
new file mode 100644
index 0000000..8c9b034
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle8.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - TEXT style
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', 'beta');
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', 'beta')
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/registerGroupStyle9.testcase b/test/sql_stmt_libxml2_tests/registerGroupStyle9.testcase
new file mode 100644
index 0000000..659021f
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/registerGroupStyle9.testcase
@@ -0,0 +1,8 @@
+RegisterGroupStyle - NULL style_id
+:memory: #use in-memory database
+SELECT RegisterGroupStyle('alpha', NULL, zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+RegisterGroupStyle('alpha', NULL, zeroblob(4));
+-1
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase
new file mode 100644
index 0000000..f063908
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase
@@ -0,0 +1,8 @@
+XB_GetName - NULL XmlDocument
+:memory: #use in-memory database
+SELECT XB_GetName(NULL);
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase
new file mode 100644
index 0000000..77c5f23
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase
@@ -0,0 +1,8 @@
+XB_Getname - INTEGER XmlDocument
+:memory: #use in-memory database
+SELECT XB_GetName(1);
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(1)
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase
new file mode 100644
index 0000000..8320f3b
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase
@@ -0,0 +1,8 @@
+XB_GetName - DOUBLE XmlDocument
+:memory: #use in-memory database
+SELECT XB_GetName(1.1);
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(1.1)
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase
new file mode 100644
index 0000000..b42c96d
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase
@@ -0,0 +1,8 @@
+XB_GetName - BLOB XmlDocument
+:memory: #use in-memory database
+SELECT XB_GetName(zeroblob(100));
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(zeroblob(100))
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase
new file mode 100644
index 0000000..f2d6152
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase
@@ -0,0 +1,8 @@
+XB_GetName - invalid XmlBLOB
+:memory: #use in-memory database
+SELECT XB_GetName(zeroblob(100));
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(zeroblob(100))
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase
new file mode 100644
index 0000000..9286703
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase
@@ -0,0 +1,8 @@
+XB_GetName - valid XmlBLOB, legacy blob
+:memory: #use in-memory database
+SELECT XB_GetName(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD');
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD')
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase
new file mode 100644
index 0000000..5dd093b
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase
@@ -0,0 +1,8 @@
+XB_GetName - valid XmlBLOB, current blob (valid)
+:memory: #use in-memory database
+SELECT XB_GetName(x'0013AC370000002D0000000000BA0000CA0000DA0500DE616C7068610000DB0000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B3F14BCC4DB54BCC29C848B4D107B36DF4311401003F711491BCD3962A3BDD');
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(x'0013AC370000002D0000000000BA0000CA0000DA0500DE616C7068610000DB0000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B3F14BCC4DB54BCC29C848B4D107B36DF4311401003F711491BCD3962A3BDD')
+alpha
+
diff --git a/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase b/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase
new file mode 100644
index 0000000..7b0a9c0
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase
@@ -0,0 +1,8 @@
+XB_GetName - valid XmlBLOB, current blob (undefined)
+:memory: #use in-memory database
+SELECT XB_GetName(x'0013AC390000002E0000000000BA0000CA0000DA0000DE0500DB616C7068610000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B309C92CC949B54BCC29C848B4D187706CF43194010071941593BC159B9679DD');
+1 # rows (not including the header row)
+1 # columns
+XB_GetName(x'0013AC390000002E0000000000BA0000CA0000DA0000DE0500DB616C7068610000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B309C92CC949B54BCC29C848B4D187706CF43194010071941593BC159B9679DD')
+(NULL)
+
diff --git a/test/sql_stmt_libxml2_tests/xmlcompress6.testcase b/test/sql_stmt_libxml2_tests/xmlcompress6.testcase
index e377515..6d864ef 100644
--- a/test/sql_stmt_libxml2_tests/xmlcompress6.testcase
+++ b/test/sql_stmt_libxml2_tests/xmlcompress6.testcase
@@ -4,5 +4,5 @@ SELECT Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC000
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'))
-0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD
+0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD
 
diff --git a/test/sql_stmt_libxml2_tests/xmlcompress7.testcase b/test/sql_stmt_libxml2_tests/xmlcompress7.testcase
index e215f22..2a2dda6 100644
--- a/test/sql_stmt_libxml2_tests/xmlcompress7.testcase
+++ b/test/sql_stmt_libxml2_tests/xmlcompress7.testcase
@@ -4,4 +4,4 @@ SELECT Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC000
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'))
-0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DDD
+0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD
diff --git a/test/sql_stmt_libxml2_tests/xmlcompress8.testcase b/test/sql_stmt_libxml2_tests/xmlcompress8.testcase
new file mode 100644
index 0000000..820890b
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmlcompress8.testcase
@@ -0,0 +1,8 @@
+XB_Compress - valid XmlBLOB (already compressed - legacy blob)
+:memory: #use in-memory database
+SELECT Hex(XB_Compress(x'0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD'));
+1 # rows (not including the header row)
+1 # columns
+Hex(XB_Compress(x'0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD'))
+0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD
+
diff --git a/test/sql_stmt_libxml2_tests/xmltoblob11.testcase b/test/sql_stmt_libxml2_tests/xmltoblob11.testcase
index ed58a85..cf92cfc 100644
--- a/test/sql_stmt_libxml2_tests/xmltoblob11.testcase
+++ b/test/sql_stmt_libxml2_tests/xmltoblob11.testcase
@@ -1,8 +1,8 @@
-XB_Create - valid XMLDocument, compressed
+XB_Create - valid XMLDocument, compressed - legacy format
 :memory: #use in-memory database
 SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1));
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1))
-0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD
+0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD
 
diff --git a/test/sql_stmt_libxml2_tests/xmltoblob12.testcase b/test/sql_stmt_libxml2_tests/xmltoblob12.testcase
index 2e4aca9..5cb4991 100644
--- a/test/sql_stmt_libxml2_tests/xmltoblob12.testcase
+++ b/test/sql_stmt_libxml2_tests/xmltoblob12.testcase
@@ -4,5 +4,5 @@ SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0));
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0))
-0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD
+0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD
 
diff --git a/test/sql_stmt_libxml2_tests/xmltoblob18.testcase b/test/sql_stmt_libxml2_tests/xmltoblob18.testcase
index bb2aad1..5469944 100644
--- a/test/sql_stmt_libxml2_tests/xmltoblob18.testcase
+++ b/test/sql_stmt_libxml2_tests/xmltoblob18.testcase
@@ -4,4 +4,4 @@ SELECT Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E'))
-0003AB320000003A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7552A2D49D3B55052B0B7B349B42B49AD28B1D14FB403009EE70FE6BC8886571CDD
+0003AC320000003A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7552A2D49D3B55052B0B7B349B42B49AD28B1D14FB403009EE70FE6BC1DE1AC65DD|
diff --git a/test/sql_stmt_libxml2_tests/xmltoblob5.testcase b/test/sql_stmt_libxml2_tests/xmltoblob5.testcase
index b324373..1428b23 100644
--- a/test/sql_stmt_libxml2_tests/xmltoblob5.testcase
+++ b/test/sql_stmt_libxml2_tests/xmltoblob5.testcase
@@ -4,5 +4,5 @@ SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E'));
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E'))
-0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD
+0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD
 
diff --git a/test/sql_stmt_libxml2_tests/xmluncompress6.testcase b/test/sql_stmt_libxml2_tests/xmluncompress6.testcase
index 1e05473..0ea4a65 100644
--- a/test/sql_stmt_libxml2_tests/xmluncompress6.testcase
+++ b/test/sql_stmt_libxml2_tests/xmluncompress6.testcase
@@ -1,7 +1,7 @@
-XB_Uncompress - valid XmlBLOB (compressed)
+XB_Uncompress - valid XmlBLOB (compressed - legacy blob)
 :memory: #use in-memory database
 SELECT Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'));
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'))
-0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD
+0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD
diff --git a/test/sql_stmt_libxml2_tests/xmluncompress7.testcase b/test/sql_stmt_libxml2_tests/xmluncompress7.testcase
index f7b393b..05a86f4 100644
--- a/test/sql_stmt_libxml2_tests/xmluncompress7.testcase
+++ b/test/sql_stmt_libxml2_tests/xmluncompress7.testcase
@@ -4,4 +4,4 @@ SELECT Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0
 1 # rows (not including the header row)
 1 # columns
 Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'))
-0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD
+0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD
diff --git a/test/sql_stmt_libxml2_tests/xmluncompress8.testcase b/test/sql_stmt_libxml2_tests/xmluncompress8.testcase
new file mode 100644
index 0000000..2a4c5fe
--- /dev/null
+++ b/test/sql_stmt_libxml2_tests/xmluncompress8.testcase
@@ -0,0 +1,7 @@
+XB_Uncompress - valid XmlBLOB (compressed)
+:memory: #use in-memory database
+SELECT Hex(XB_Uncompress(x'0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD'));
+1 # rows (not including the header row)
+1 # columns
+Hex(XB_Uncompress(x'0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD'))
+0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD
diff --git a/test/sql_stmt_lwgeom_tests/Makefile.am b/test/sql_stmt_lwgeom_tests/Makefile.am
index b285f66..47d7a0c 100644
--- a/test/sql_stmt_lwgeom_tests/Makefile.am
+++ b/test/sql_stmt_lwgeom_tests/Makefile.am
@@ -268,4 +268,23 @@ EXTRA_DIST = 3ddistance10.testcase \
 	st_split6.testcase \
 	st_split7.testcase \
 	st_split8.testcase \
-	st_split9.testcase 
+	st_split9.testcase \
+	st_node1.testcase \
+	st_node2.testcase \
+	st_node3.testcase \
+	st_node4.testcase \
+	st_node5.testcase \
+	st_node6.testcase \
+	st_node7.testcase \
+	st_node8.testcase \
+	st_node9.testcase \
+	st_self1.testcase \
+	st_self2.testcase \
+	st_self3.testcase \
+	st_self4.testcase \
+	st_self5.testcase \
+	st_self6.testcase \
+	st_self7.testcase \
+	st_self8.testcase \
+	st_self9.testcase
+
diff --git a/test/sql_stmt_lwgeom_tests/Makefile.in b/test/sql_stmt_lwgeom_tests/Makefile.in
index 3a08a2c..44330ef 100644
--- a/test/sql_stmt_lwgeom_tests/Makefile.in
+++ b/test/sql_stmt_lwgeom_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_lwgeom_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -467,7 +509,25 @@ EXTRA_DIST = 3ddistance10.testcase \
 	st_split6.testcase \
 	st_split7.testcase \
 	st_split8.testcase \
-	st_split9.testcase 
+	st_split9.testcase \
+	st_node1.testcase \
+	st_node2.testcase \
+	st_node3.testcase \
+	st_node4.testcase \
+	st_node5.testcase \
+	st_node6.testcase \
+	st_node7.testcase \
+	st_node8.testcase \
+	st_node9.testcase \
+	st_self1.testcase \
+	st_self2.testcase \
+	st_self3.testcase \
+	st_self4.testcase \
+	st_self5.testcase \
+	st_self6.testcase \
+	st_self7.testcase \
+	st_self8.testcase \
+	st_self9.testcase
 
 all: all-am
 
@@ -508,11 +568,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -650,15 +708,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_lwgeom_tests/st_node1.testcase b/test/sql_stmt_lwgeom_tests/st_node1.testcase
new file mode 100644
index 0000000..4f8afee
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node1.testcase
@@ -0,0 +1,7 @@
+ST_Node - Invalid BLOB input (error)
+:memory: #use in-memory database
+SELECT ST_Node(zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+ST_Node(zeroblob(4))
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_node2.testcase b/test/sql_stmt_lwgeom_tests/st_node2.testcase
new file mode 100644
index 0000000..bc49dad
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node2.testcase
@@ -0,0 +1,7 @@
+ST_Node - Invalid INT input (error)
+:memory: #use in-memory database
+SELECT ST_Node(1);
+1 # rows (not including the header row)
+1 # columns
+ST_Node(1)
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_node3.testcase b/test/sql_stmt_lwgeom_tests/st_node3.testcase
new file mode 100644
index 0000000..d4942c0
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node3.testcase
@@ -0,0 +1,7 @@
+ST_Node - Invalid DOUBLE input (error)
+:memory: #use in-memory database
+SELECT ST_Node(1.1);
+1 # rows (not including the header row)
+1 # columns
+ST_Node(1.1)
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_node4.testcase b/test/sql_stmt_lwgeom_tests/st_node4.testcase
new file mode 100644
index 0000000..970dd76
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node4.testcase
@@ -0,0 +1,7 @@
+ST_Node - Invalid TEXT input (error)
+:memory: #use in-memory database
+SELECT ST_Node('alpha');
+1 # rows (not including the header row)
+1 # columns
+ST_Node('alpha')
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_node5.testcase b/test/sql_stmt_lwgeom_tests/st_node5.testcase
new file mode 100644
index 0000000..db599f8
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node5.testcase
@@ -0,0 +1,7 @@
+ST_Node - Valid 2D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_Node(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_Node(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)')))
+MULTILINESTRING((0 0, 5 5), (5 5, 10 10, 0 10, 5 5), (5 5, 10 0))
diff --git a/test/sql_stmt_lwgeom_tests/st_node6.testcase b/test/sql_stmt_lwgeom_tests/st_node6.testcase
new file mode 100644
index 0000000..e785bdd
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node6.testcase
@@ -0,0 +1,7 @@
+ST_Node - Valid 3D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_Node(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_Node(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')))
+MULTILINESTRING Z((0 0 0, 5 5 4.5), (5 5 4.5, 10 10 10, 0 10 5, 5 5 4.5), (5 5 4.5, 10 0 3))
diff --git a/test/sql_stmt_lwgeom_tests/st_node7.testcase b/test/sql_stmt_lwgeom_tests/st_node7.testcase
new file mode 100644
index 0000000..04fcd4d
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node7.testcase
@@ -0,0 +1,7 @@
+ST_Node - Valid MultiLinestring 2D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))')))
+MULTILINESTRING((0 0, 5 5), (5 5, 10 10), (10 10, 0 10, 5 5), (5 5, 10 0), (10 8, 10 10), (10 10, 10 12))
diff --git a/test/sql_stmt_lwgeom_tests/st_node8.testcase b/test/sql_stmt_lwgeom_tests/st_node8.testcase
new file mode 100644
index 0000000..23465d2
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node8.testcase
@@ -0,0 +1,7 @@
+ST_Node - Valid MultiLinestring 3D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))')))
+MULTILINESTRING Z((0 0 0, 5 5 4.5), (5 5 4.5, 10 10 10), (10 10 10, 0 10 5, 5 5 4.5), (5 5 4.5, 10 0 3), (10 8 4, 10 10 10), (10 10 10, 10 12 5))
diff --git a/test/sql_stmt_lwgeom_tests/st_node9.testcase b/test/sql_stmt_lwgeom_tests/st_node9.testcase
new file mode 100644
index 0000000..4ba22c2
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_node9.testcase
@@ -0,0 +1,7 @@
+ST_Node - Invalid MultiPoint 3D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_Node(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')))
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_self1.testcase b/test/sql_stmt_lwgeom_tests/st_self1.testcase
new file mode 100644
index 0000000..22facbb
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self1.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Invalid BLOB input (error)
+:memory: #use in-memory database
+SELECT ST_SelfIntersections(zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+ST_SelfIntersections(zeroblob(4))
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_self2.testcase b/test/sql_stmt_lwgeom_tests/st_self2.testcase
new file mode 100644
index 0000000..97a41b7
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self2.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Invalid INT input (error)
+:memory: #use in-memory database
+SELECT ST_SelfIntersections(1);
+1 # rows (not including the header row)
+1 # columns
+ST_SelfIntersections(1)
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_self3.testcase b/test/sql_stmt_lwgeom_tests/st_self3.testcase
new file mode 100644
index 0000000..1396e9f
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self3.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Invalid DOUBLE input (error)
+:memory: #use in-memory database
+SELECT ST_SelfIntersections(1.1);
+1 # rows (not including the header row)
+1 # columns
+ST_SelfIntersections(1.1)
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_self4.testcase b/test/sql_stmt_lwgeom_tests/st_self4.testcase
new file mode 100644
index 0000000..fda1671
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self4.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Invalid TEXT input (error)
+:memory: #use in-memory database
+SELECT ST_SelfIntersections('alpha');
+1 # rows (not including the header row)
+1 # columns
+ST_SelfIntersections('alpha')
+(NULL)
diff --git a/test/sql_stmt_lwgeom_tests/st_self5.testcase b/test/sql_stmt_lwgeom_tests/st_self5.testcase
new file mode 100644
index 0000000..e7c03d3
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self5.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Valid 2D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)')))
+MULTIPOINT(5 5)
diff --git a/test/sql_stmt_lwgeom_tests/st_self6.testcase b/test/sql_stmt_lwgeom_tests/st_self6.testcase
new file mode 100644
index 0000000..eb1ed6a
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self6.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Valid 3D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')))
+MULTIPOINT Z(5 5 4.5)
diff --git a/test/sql_stmt_lwgeom_tests/st_self7.testcase b/test/sql_stmt_lwgeom_tests/st_self7.testcase
new file mode 100644
index 0000000..26d448b
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self7.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Valid MultiLinestring 2D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))')))
+MULTIPOINT(5 5, 10 10)
diff --git a/test/sql_stmt_lwgeom_tests/st_self8.testcase b/test/sql_stmt_lwgeom_tests/st_self8.testcase
new file mode 100644
index 0000000..9e523a5
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self8.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Valid MultiLinestring 3D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))')))
+MULTIPOINT Z(5 5 4.5, 10 10 10)
diff --git a/test/sql_stmt_lwgeom_tests/st_self9.testcase b/test/sql_stmt_lwgeom_tests/st_self9.testcase
new file mode 100644
index 0000000..5e5b6d6
--- /dev/null
+++ b/test/sql_stmt_lwgeom_tests/st_self9.testcase
@@ -0,0 +1,7 @@
+ST_SelfIntersections - Invalid MultiPoint 3D input 
+:memory: #use in-memory database
+SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)')))
+(NULL)
diff --git a/test/sql_stmt_mathsql_tests/Makefile.am b/test/sql_stmt_mathsql_tests/Makefile.am
index 6a182ea..9684306 100644
--- a/test/sql_stmt_mathsql_tests/Makefile.am
+++ b/test/sql_stmt_mathsql_tests/Makefile.am
@@ -70,14 +70,6 @@ EXTRA_DIST = acos10.testcase \
 	rad0.testcase \
 	radpi.testcase \
 	rad-text.testcase \
-	round0.testcase \
-	round-29.testcase \
-	round29.testcase \
-	round30.testcase \
-	round-31.testcase \
-	round31.testcase \
-	round3.testcase \
-	round-text.testcase \
 	sign00.testcase \
 	sign01.testcase \
 	sign0.testcase \
diff --git a/test/sql_stmt_mathsql_tests/Makefile.in b/test/sql_stmt_mathsql_tests/Makefile.in
index 4069f3c..d396428 100644
--- a/test/sql_stmt_mathsql_tests/Makefile.in
+++ b/test/sql_stmt_mathsql_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_mathsql_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -269,14 +311,6 @@ EXTRA_DIST = acos10.testcase \
 	rad0.testcase \
 	radpi.testcase \
 	rad-text.testcase \
-	round0.testcase \
-	round-29.testcase \
-	round29.testcase \
-	round30.testcase \
-	round-31.testcase \
-	round31.testcase \
-	round3.testcase \
-	round-text.testcase \
 	sign00.testcase \
 	sign01.testcase \
 	sign0.testcase \
@@ -347,11 +381,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -489,15 +521,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_mathsql_tests/round-29.testcase b/test/sql_stmt_mathsql_tests/round-29.testcase
deleted file mode 100644
index bfdd3be..0000000
--- a/test/sql_stmt_mathsql_tests/round-29.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(-2.9)
-:memory:
-SELECT round(-2.9); # the SQL to run
-1 # rows
-1 # column
-round(-2.9) # this is the header row
--3.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round-31.testcase b/test/sql_stmt_mathsql_tests/round-31.testcase
deleted file mode 100644
index 9960065..0000000
--- a/test/sql_stmt_mathsql_tests/round-31.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(-3.1)
-:memory:
-SELECT round(-3.1); # the SQL to run
-1 # rows
-1 # column
-round(-3.1) # this is the header row
--3.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round-text.testcase b/test/sql_stmt_mathsql_tests/round-text.testcase
deleted file mode 100644
index 9962b01..0000000
--- a/test/sql_stmt_mathsql_tests/round-text.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(text)
-:memory:
-SELECT round("text"); # the SQL to run
-1 # rows
-1 # column
-round("text") # this is the header row
-(NULL) # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round0.testcase b/test/sql_stmt_mathsql_tests/round0.testcase
deleted file mode 100644
index bfe58db..0000000
--- a/test/sql_stmt_mathsql_tests/round0.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(0)
-:memory:
-SELECT round(0); # the SQL to run
-1 # rows
-1 # column
-round(0) # this is the header row
-0.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round29.testcase b/test/sql_stmt_mathsql_tests/round29.testcase
deleted file mode 100644
index 8c060bb..0000000
--- a/test/sql_stmt_mathsql_tests/round29.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(2.9)
-:memory:
-SELECT round(2.9); # the SQL to run
-1 # rows
-1 # column
-round(2.9) # this is the header row
-3.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round3.testcase b/test/sql_stmt_mathsql_tests/round3.testcase
deleted file mode 100644
index f6e8eb5..0000000
--- a/test/sql_stmt_mathsql_tests/round3.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(3)
-:memory:
-SELECT round(3); # the SQL to run
-1 # rows
-1 # column
-round(3) # this is the header row
-3.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round30.testcase b/test/sql_stmt_mathsql_tests/round30.testcase
deleted file mode 100644
index 2bdad47..0000000
--- a/test/sql_stmt_mathsql_tests/round30.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(3.0)
-:memory:
-SELECT round(3.0); # the SQL to run
-1 # rows
-1 # column
-round(3.0) # this is the header row
-3.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_mathsql_tests/round31.testcase b/test/sql_stmt_mathsql_tests/round31.testcase
deleted file mode 100644
index 561d151..0000000
--- a/test/sql_stmt_mathsql_tests/round31.testcase
+++ /dev/null
@@ -1,7 +0,0 @@
-round(3.1)
-:memory:
-SELECT round(3.1); # the SQL to run
-1 # rows
-1 # column
-round(3.1) # this is the header row
-3.0 # this is really the result
\ No newline at end of file
diff --git a/test/sql_stmt_proj_tests/Makefile.in b/test/sql_stmt_proj_tests/Makefile.in
index b758623..aae1b09 100644
--- a/test/sql_stmt_proj_tests/Makefile.in
+++ b/test/sql_stmt_proj_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_proj_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -309,11 +351,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -451,15 +491,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_proj_tests/output10.testcase b/test/sql_stmt_proj_tests/output10.testcase
index 70dca37..3636307 100644
--- a/test/sql_stmt_proj_tests/output10.testcase
+++ b/test/sql_stmt_proj_tests/output10.testcase
@@ -16,4 +16,4 @@ POINT(-1 1)
 {"type":"Point","coordinates":[-1,1]}:0
 POINT(-1 1)
 SRID=4326;POINT(-1 1)
-535249443D343332363B303130313030303030303030303030303030303030304630424630303030303030303030303046303346
+3031303130303030323045363130303030303030303030303030303030304630424630303030303030303030303046303346
diff --git a/test/sql_stmt_proj_tests/output11.testcase b/test/sql_stmt_proj_tests/output11.testcase
index 8733c3c..23c3aa1 100644
--- a/test/sql_stmt_proj_tests/output11.testcase
+++ b/test/sql_stmt_proj_tests/output11.testcase
@@ -16,4 +16,4 @@ POINT Z(-1 1 2.3)
 {"type":"Point","coordinates":[-1,1,2.3]}:0
 POINT(-1 1)
 SRID=4326;POINT(-1 1 2.3)
-535249443D343332363B30313031303030303830303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430
+303130313030303041304536313030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430
diff --git a/test/sql_stmt_proj_tests/output12.testcase b/test/sql_stmt_proj_tests/output12.testcase
index 044e837..0932d5a 100644
--- a/test/sql_stmt_proj_tests/output12.testcase
+++ b/test/sql_stmt_proj_tests/output12.testcase
@@ -16,4 +16,4 @@ POINT M(-1 1 2.3)
 {"type":"Point","coordinates":[-1,1]}:0
 POINT(-1 1)
 SRID=4326;POINTM(-1 1 2.3)
-535249443D343332363B30313031303030303430303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430
+303130313030303036304536313030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430
diff --git a/test/sql_stmt_proj_tests/output13.testcase b/test/sql_stmt_proj_tests/output13.testcase
index 959886e..2930501 100644
--- a/test/sql_stmt_proj_tests/output13.testcase
+++ b/test/sql_stmt_proj_tests/output13.testcase
@@ -16,4 +16,4 @@ POINT ZM(-1 1 2.3 4)
 {"type":"Point","coordinates":[-1,1,2.3]}:0
 POINT(-1 1)
 SRID=4326;POINT(-1 1 2.3 4)
-535249443D343332363B3031303130303030433030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303031303430
+30313031303030304530453631303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303031303430
diff --git a/test/sql_stmt_proj_tests/output14.testcase b/test/sql_stmt_proj_tests/output14.testcase
index 03a3e25..1331024 100644
--- a/test/sql_stmt_proj_tests/output14.testcase
+++ b/test/sql_stmt_proj_tests/output14.testcase
@@ -16,4 +16,4 @@ LINESTRING Z(-1 1 2.3, 1 -2 4.6)
 {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0
 LINESTRING(-1 1,1 -2)
 SRID=4326;LINESTRING(-1 1 2.3,1 -2 4.6)
-535249443D343332363B303130323030303038303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430
+3031303230303030413045363130303030303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430
diff --git a/test/sql_stmt_proj_tests/output15.testcase b/test/sql_stmt_proj_tests/output15.testcase
index 300e336..351017d 100644
--- a/test/sql_stmt_proj_tests/output15.testcase
+++ b/test/sql_stmt_proj_tests/output15.testcase
@@ -16,4 +16,4 @@ LINESTRING M(-1 1 2.3, 1 -2 4.6)
 {"type":"LineString","coordinates":[[-1,1],[1,-2]]}:0
 LINESTRING(-1 1,1 -2)
 SRID=4326;LINESTRINGM(-1 1 2.3,1 -2 4.6)
-535249443D343332363B303130323030303034303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 
+3031303230303030363045363130303030303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430
diff --git a/test/sql_stmt_proj_tests/output16.testcase b/test/sql_stmt_proj_tests/output16.testcase
index 7a3f52f..7c21316 100644
--- a/test/sql_stmt_proj_tests/output16.testcase
+++ b/test/sql_stmt_proj_tests/output16.testcase
@@ -16,4 +16,4 @@ LINESTRING ZM(-1 1 2.3 -1, 1 -2 4.6 -6)
 {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0
 LINESTRING(-1 1,1 -2)
 SRID=4326;LINESTRING(-1 1 2.3 -1,1 -2 4.6 -6):0
-535249443D343332363B3031303230303030433030323030303030303030303030303030303030304630424630303030303030303030303046303346363636363636363636363636303234303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303043303636363636363636363636363132343030303030303030303030303031384330
+30313032303030304530453631303030303030323030303030303030303030303030303030304630424630303030303030303030303046303346363636363636363636363636303234303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303043303636363636363636363636363132343030303030303030303030303031384330
diff --git a/test/sql_stmt_proj_tests/output17.testcase b/test/sql_stmt_proj_tests/output17.testcase
index 565574d..81c5a7f 100644
--- a/test/sql_stmt_proj_tests/output17.testcase
+++ b/test/sql_stmt_proj_tests/output17.testcase
@@ -16,4 +16,4 @@ POLYGON Z((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4
 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0
 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1))
 SRID=4326;POLYGON((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3))
-535249443D343332363B3031303330303030383030323030303030303035303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303046303346303030303030303030303030323443303030303030303030303030303234343030303030303030303030303030303430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430303030303030303030303030323434303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030323443303030 [...]
+303130333030303041304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output18.testcase b/test/sql_stmt_proj_tests/output18.testcase
index f9d888b..24fbab6 100644
--- a/test/sql_stmt_proj_tests/output18.testcase
+++ b/test/sql_stmt_proj_tests/output18.testcase
@@ -16,4 +16,4 @@ POLYGON M((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4
 {"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-1,1],[1,-2],[0,-2],[-1,1]]]}:0
 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)):0
 SRID=4326;POLYGONM((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3))
-535249443D343332363B3031303330303030343030323030303030303035303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303046303346303030303030303030303030323443303030303030303030303030303234343030303030303030303030303030303430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430303030303030303030303030323434303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030323443303030 [...]
+303130333030303036304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output19.testcase b/test/sql_stmt_proj_tests/output19.testcase
index 4ed52b5..4fce0f1 100644
--- a/test/sql_stmt_proj_tests/output19.testcase
+++ b/test/sql_stmt_proj_tests/output19.testcase
@@ -16,4 +16,4 @@ POLYGON ZM((-10 -10 1 4, -10 10 2 5, 10 10 3 6.8, 10 -10 4 5, -10 -10 1 4), (-1
 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0
 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1))
 SRID=4326;POLYGON((-10 -10 1 4,-10 10 2 5,10 10 3 6.8,10 -10 4 5,-10 -10 1 4),(-1 1 2.3 1,1 -2 4.6 2,0 -2 1.6 3.333,-1 1 2.3 1))
-535249443D343332363B3031303330303030433030323030303030303035303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303046303346303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303038343033333333333333333333333331423430303030303030303030303030323434303030 [...]
+303130333030303045304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303030343030303030303030303030303031343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430333333333333333333333333314234303030303030303030303030303234343030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output20.testcase b/test/sql_stmt_proj_tests/output20.testcase
index a756b0f..f50ae3d 100644
--- a/test/sql_stmt_proj_tests/output20.testcase
+++ b/test/sql_stmt_proj_tests/output20.testcase
@@ -16,4 +16,4 @@ MULTIPOINT ZM(-1 1 2.3 4, 1 2 4.1 1.9)
 {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0
 MULTIPOINT(-1 1,1 2)
 SRID=4326;MULTIPOINT(-1 1 2.3 4,1 2 4.1 1.9)
-535249443D343332363B30313034303030304330303230303030303030313031303030304330303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030313034303031303130303030433030303030303030303030303046303346303030303030303030303030303034303636363636363636363636363130343036363636363636363636363646453346
+303130343030303045304536313030303030303230303030303030313031303030304330303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030313034303031303130303030433030303030303030303030303046303346303030303030303030303030303034303636363636363636363636363130343036363636363636363636363646453346
diff --git a/test/sql_stmt_proj_tests/output21.testcase b/test/sql_stmt_proj_tests/output21.testcase
index ba7b063..9ebca85 100644
--- a/test/sql_stmt_proj_tests/output21.testcase
+++ b/test/sql_stmt_proj_tests/output21.testcase
@@ -16,4 +16,4 @@ MULTIPOINT Z(-1 1 2.3, 1 2 4.1)
 {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0
 MULTIPOINT(-1 1,1 2)
 SRID=4326;MULTIPOINT(-1 1 2.3,1 2 4.1)
-535249443D343332363B3031303430303030383030323030303030303031303130303030383030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303830303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430
+30313034303030304130453631303030303030323030303030303031303130303030383030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303830303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430
diff --git a/test/sql_stmt_proj_tests/output22.testcase b/test/sql_stmt_proj_tests/output22.testcase
index a0f08ee..b6d6e79 100644
--- a/test/sql_stmt_proj_tests/output22.testcase
+++ b/test/sql_stmt_proj_tests/output22.testcase
@@ -16,4 +16,4 @@ MULTIPOINT M(-1 1 2.3, 1 2 4.1)
 {"type":"MultiPoint","coordinates":[[-1,1],[1,2]]}:0
 MULTIPOINT(-1 1,1 2)
 SRID=4326;MULTIPOINTM(-1 1 2.3,1 2 4.1)
-535249443D343332363B3031303430303030343030323030303030303031303130303030343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303430303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430
+30313034303030303630453631303030303030323030303030303031303130303030343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303430303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430
diff --git a/test/sql_stmt_proj_tests/output23.testcase b/test/sql_stmt_proj_tests/output23.testcase
index a3abfc7..acb3810 100644
--- a/test/sql_stmt_proj_tests/output23.testcase
+++ b/test/sql_stmt_proj_tests/output23.testcase
@@ -16,4 +16,4 @@ MULTILINESTRING((-1 1, 2 3, 4 1), (0 2, 2 0, 0 0, 1 1))
 {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0
 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1))
 SRID=4326;MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1))
-535249443D343332363B3031303530303030303030323030303030303031303230303030303030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030463033463031303230303030303030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030303030303030303030 [...]
\ No newline at end of file
+303130353030303032304536313030303030303230303030303030313032303030303030303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303030303030303030303030313034303030303030303030303030304630334630313032303030303030303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303030303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output24.testcase b/test/sql_stmt_proj_tests/output24.testcase
index 7850800..b15dc8e 100644
--- a/test/sql_stmt_proj_tests/output24.testcase
+++ b/test/sql_stmt_proj_tests/output24.testcase
@@ -16,4 +16,4 @@ MULTILINESTRING Z((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3))
 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0
 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1))
 SRID=4326;MULTILINESTRING((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3))
-535249443D343332363B3031303530303030383030323030303030303031303230303030383030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030323234303030303030303030303030303030343030303030303030303030303030383430434443434343434343434343323034303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303031303230303030383030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030 [...]
+303130353030303041304536313030303030303230303030303030313032303030303830303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303030303430303030303030303030303030303834304344434343434343434343433230343030303030303030303030303031303430303030303030303030303030463033464344434343434343434343433232343030313032303030303830303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output25.testcase b/test/sql_stmt_proj_tests/output25.testcase
index 3eec2f5..b59f185 100644
--- a/test/sql_stmt_proj_tests/output25.testcase
+++ b/test/sql_stmt_proj_tests/output25.testcase
@@ -16,4 +16,4 @@ MULTILINESTRING M((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3))
 {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0
 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1))
 SRID=4326;MULTILINESTRINGM((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3))
-535249443D343332363B3031303530303030343030323030303030303031303230303030343030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030323234303030303030303030303030303030343030303030303030303030303030383430434443434343434343434343323034303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303031303230303030343030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030 [...]
+303130353030303036304536313030303030303230303030303030313032303030303430303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303030303430303030303030303030303030303834304344434343434343434343433230343030303030303030303030303031303430303030303030303030303030463033464344434343434343434343433232343030313032303030303430303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output26.testcase b/test/sql_stmt_proj_tests/output26.testcase
index 0e5a68e..cdd5a5e 100644
--- a/test/sql_stmt_proj_tests/output26.testcase
+++ b/test/sql_stmt_proj_tests/output26.testcase
@@ -16,4 +16,4 @@ MULTILINESTRING ZM((-1 1 9 1, 2 3 8.4 3, 4 1 9.4 1), (0 2 1 84, 2 0 1 26, 0 0 2
 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0
 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1))
 SRID=4326;MULTILINESTRING((-1 1 9 1,2 3 8.4 3,4 1 9.4 1),(0 2 1 84,2 0 1 26,0 0 2 -2.1,1 1 3 0))
-535249443D343332363B3031303530303030433030323030303030303031303230303030433030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030323234303030303030303030303030304630334630303030303030303030303030303430303030303030303030303030303834304344434343434343434343433230343030303030303030303030303030383430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303030303030303030303030463033463031303230303030 [...]
+303130353030303045304536313030303030303230303030303030313032303030304330303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030303834303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303030303030303030303030304630334630313032303030304330 [...]
diff --git a/test/sql_stmt_proj_tests/output27.testcase b/test/sql_stmt_proj_tests/output27.testcase
index 1d5b274..426ecd3 100644
--- a/test/sql_stmt_proj_tests/output27.testcase
+++ b/test/sql_stmt_proj_tests/output27.testcase
@@ -16,4 +16,4 @@ MULTIPOLYGON(((10 10, 0 10, 0 0, 0 10, 10 10)), ((-10 -10, -10 10, 10 10, 10 -10
 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0
 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
-535249443D343332363B3031303630303030303030323030303030303031303330303030303030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323434303031303330303030303030333030303030303035303030303030303030303030 [...]
+303130363030303032304536313030303030303230303030303030313033303030303030303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030313033303030303030303330303030303030353030303030303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output28.testcase b/test/sql_stmt_proj_tests/output28.testcase
index 932b8ac..c992348 100644
--- a/test/sql_stmt_proj_tests/output28.testcase
+++ b/test/sql_stmt_proj_tests/output28.testcase
@@ -16,4 +16,4 @@ MULTIPOLYGON Z(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10
 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0
 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;MULTIPOLYGON(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11)))
-535249443D343332363B3031303630303030383030323030303030303031303330303030383030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346 [...]
\ No newline at end of file
+303130363030303041304536313030303030303230303030303030313033303030303830303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303030303030303030303030303030303030303030394139393939393939393939463133463030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030 [...]
diff --git a/test/sql_stmt_proj_tests/output29.testcase b/test/sql_stmt_proj_tests/output29.testcase
index d50064d..ecf6f12 100644
--- a/test/sql_stmt_proj_tests/output29.testcase
+++ b/test/sql_stmt_proj_tests/output29.testcase
@@ -16,4 +16,4 @@ MULTIPOLYGON M(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10
 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0
 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;MULTIPOLYGONM(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11)))
-535249443D343332363B3031303630303030343030323030303030303031303330303030343030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346 [...]
+303130363030303036304536313030303030303230303030303030313033303030303430303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303030303030303030303030303030303030303030394139393939393939393939463133463030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030 [...]
diff --git a/test/sql_stmt_proj_tests/output30.testcase b/test/sql_stmt_proj_tests/output30.testcase
index bc1abae..30bab25 100644
--- a/test/sql_stmt_proj_tests/output30.testcase
+++ b/test/sql_stmt_proj_tests/output30.testcase
@@ -16,4 +16,4 @@ MULTIPOLYGON ZM(((10 10 1.2 1, 0 10 1.3 -2, 0 0 1.1 5.8, 0 10 1.3 3, 10 10 1.2 1
 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0
 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;MULTIPOLYGON(((10 10 1.2 1,0 10 1.3 -2,0 0 1.1 5.8,0 10 1.3 3,10 10 1.2 1)),((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0)))
-535249443D343332363B3031303630303030433030323030303030303031303330303030433030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030463033463030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303030433030303030303030303030303030303030303030303030303030303030303030303941393939393939393939394631334633333333333333333333333331373430 [...]
+303130363030303045304536313030303030303230303030303030313033303030304330303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030323434304344434343434343434343434634334630303030303030303030303030304330303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346333333333333333333333333313734303030 [...]
diff --git a/test/sql_stmt_proj_tests/output31.testcase b/test/sql_stmt_proj_tests/output31.testcase
index d4ee857..a49a029 100644
--- a/test/sql_stmt_proj_tests/output31.testcase
+++ b/test/sql_stmt_proj_tests/output31.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION ZM(POLYGON ZM((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0
 {"type":"GeometryCollection","geometries":[{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0
 GEOMETRYCOLLECTION(POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;GEOMETRYCOLLECTION(POLYGON((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0)))
-535249443D343332363B3031303730303030433030313030303030303031303330303030433030333030303030303035303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030313434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303046303346 [...]
+303130373030303045304536313030303030303130303030303030313033303030304330303330303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303030303030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303031383430303030303030303030303030463033463030 [...]
diff --git a/test/sql_stmt_proj_tests/output32.testcase b/test/sql_stmt_proj_tests/output32.testcase
index 7647811..44cfaaa 100644
--- a/test/sql_stmt_proj_tests/output32.testcase
+++ b/test/sql_stmt_proj_tests/output32.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION Z(POINT Z(1 2 3), POLYGON Z((-10 -10 4, -10 10 5, 10 10 6, 10
 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,3]},{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0
 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 3),POLYGON((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11)))
-535249443D343332363B3031303730303030383030323030303030303031303130303030383030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030313033303030303830303330303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030313434303030303030303030303030303234343030303030303030303030303032343430303030303030 [...]
+303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output33.testcase b/test/sql_stmt_proj_tests/output33.testcase
index 608912f..8cdedef 100644
--- a/test/sql_stmt_proj_tests/output33.testcase
+++ b/test/sql_stmt_proj_tests/output33.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION M(POINT M(1 2 3), POLYGON M((-10 -10 4, -10 10 5, 10 10 6, 10
 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0
 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 3),POLYGONM((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11)))
-535249443D343332363B3031303730303030343030323030303030303031303130303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030313033303030303430303330303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030313434303030303030303030303030303234343030303030303030303030303032343430303030303030 [...]
+303130373030303036304536313030303030303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output34.testcase b/test/sql_stmt_proj_tests/output34.testcase
index 37858a3..97316ec 100644
--- a/test/sql_stmt_proj_tests/output34.testcase
+++ b/test/sql_stmt_proj_tests/output34.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION(POINT(1 2), POLYGON((-10 -10, -10 10, 10 10, 10 -10, -10 -10)
 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0
 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
 SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8)))
-535249443D343332363B3031303730303030303030323030303030303031303130303030303030303030303030303030303046303346303030303030303030303030303034303031303330303030303030333030303030303035303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234433030303030303030303030303032344330303030303030 [...]
+303130373030303032304536313030303030303230303030303030313031303030303030303030303030303030303030463033463030303030303030303030303030343030313033303030303030303330303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030323443303030303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output35.testcase b/test/sql_stmt_proj_tests/output35.testcase
index 34007f4..be2d75b 100644
--- a/test/sql_stmt_proj_tests/output35.testcase
+++ b/test/sql_stmt_proj_tests/output35.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10), POINT ZM(2 3 101 11), LINESTRING ZM(
 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"Point","coordinates":[2,3,101]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! 
 GEOMETRYCOLLECTION(POINT(1 2),POINT(2 3),LINESTRING(3 4,4 5))
 SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),POINT(2 3 101 11),LINESTRING(3 4 100 10,4 5 101 11))
-535249443D343332363B3031303730303030433030333030303030303031303130303030433030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303539343030303030303030303030303032343430303130313030303043303030303030303030303030303030343030303030303030303030303030383430303030303030303030303430353934303030303030303030303030303236343030313032303030304330303230303030303030303030303030303030303030383430303030303030303030303030313034303030303030303030303030303539343030303030 [...]
+303130373030303045304536313030303030303330303030303030313031303030304330303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303030303030303030303030323434303031303130303030433030303030303030303030303030303430303030303030303030303030303834303030303030303030303034303539343030303030303030303030303032363430303130323030303043303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030 [...]
diff --git a/test/sql_stmt_proj_tests/output36.testcase b/test/sql_stmt_proj_tests/output36.testcase
index 018ab33..b411e28 100644
--- a/test/sql_stmt_proj_tests/output36.testcase
+++ b/test/sql_stmt_proj_tests/output36.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION Z(POINT Z(1 2 100), LINESTRING Z(3 4 100, 4 5 101))
 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! 
 GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5))
 SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 100,4 5 101))
-535249443D343332363B30313037303030303830303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303130323030303038303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030303030303030313034303030303030303030303030303134343030303030303030303030343035393430
+303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303130323030303038303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030303030303030313034303030303030303030303030303134343030303030303030303030343035393430
diff --git a/test/sql_stmt_proj_tests/output37.testcase b/test/sql_stmt_proj_tests/output37.testcase
index 29c5651..7a9f6af 100644
--- a/test/sql_stmt_proj_tests/output37.testcase
+++ b/test/sql_stmt_proj_tests/output37.testcase
@@ -16,4 +16,4 @@ GEOMETRYCOLLECTION M(POINT M(1 2 10), LINESTRING M(3 4 10, 4 5 11))
 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"LineString","coordinates":[[3,4],[4,5]]}]}:0 # trailing ":0" required to avoid truncation !!! 
 GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5))
 SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,4 5 11))
-535249443D343332363B30313037303030303430303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303032343430303130323030303034303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032343430303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032363430
+303130373030303036304536313030303030303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303032343430303130323030303034303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032343430303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032363430
diff --git a/test/sql_stmt_security_tests/Makefile.in b/test/sql_stmt_security_tests/Makefile.in
index 0a52560..4472dcf 100644
--- a/test/sql_stmt_security_tests/Makefile.in
+++ b/test/sql_stmt_security_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_security_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -252,11 +294,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -394,15 +434,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_tests/Makefile.am b/test/sql_stmt_tests/Makefile.am
index ed98de8..a667d49 100644
--- a/test/sql_stmt_tests/Makefile.am
+++ b/test/sql_stmt_tests/Makefile.am
@@ -709,6 +709,8 @@ EXTRA_DIST = addpoint10.testcase \
 	fromgml58.testcase \
 	fromgml59.testcase \
 	fromgml5.testcase \
+	fromgml60.testcase \
+	fromgml61.testcase \
 	fromgml6.testcase \
 	fromgml7.testcase \
 	fromgml8.testcase \
@@ -1030,6 +1032,28 @@ EXTRA_DIST = addpoint10.testcase \
 	ismeasured4.testcase \
 	ismeasured5.testcase \
 	ismeasured6.testcase \
+	ispopulatedcoverage1.testcase \
+	ispopulatedcoverage2.testcase \
+	isvalidnodata1.testcase \
+	isvalidnodata2.testcase \
+	isvalidnodata3.testcase \
+	isvalidnodata4.testcase \
+	isvalidpalette1.testcase \
+	isvalidpalette2.testcase \
+	isvalidpalette3.testcase \
+	isvalidrasterstats1.testcase \
+	isvalidrasterstats2.testcase \
+	isvalidrasterstats3.testcase \
+	isvalidrasterstats4.testcase \
+	isvalidrasterstats5.testcase \
+	isvalidrasterstats6.testcase \
+	isvalidrasterstats7.testcase \
+	isvalidrastertile1.testcase \
+	isvalidrastertile2.testcase \
+	isvalidrastertile3.testcase \
+	isvalidrastertile4.testcase \
+	isvalidrastertile5.testcase \
+	isvalidrastertile6.testcase \
 	isXblob5.testcase \
 	isXblob6.testcase \
 	isXblob7.testcase \
@@ -1163,15 +1187,6 @@ EXTRA_DIST = addpoint10.testcase \
 	makecircle7.testcase \
 	makecircle8.testcase \
 	makecircle9.testcase \
-	makecircle10.testcase \
-	makecircle11.testcase \
-	makecircle12.testcase \
-	makecircle13.testcase \
-	makecircle14.testcase \
-	makecircle15.testcase \
-	makecircle16.testcase \
-	makecircle17.testcase \
-	makecircle18.testcase \
 	makeellipse1.testcase \
 	makeellipse2.testcase \
 	makeellipse3.testcase \
@@ -1184,15 +1199,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makeellipse10.testcase \
 	makeellipse11.testcase \
 	makeellipse12.testcase \
-	makeellipse13.testcase \
 	makeellipse14.testcase \
 	makeellipse15.testcase \
 	makeellipse16.testcase \
-	makeellipse17.testcase \
 	makeellipse18.testcase \
 	makeellipse19.testcase \
 	makeellipse20.testcase \
-	makeellipse21.testcase \
 	makearc1.testcase \
 	makearc2.testcase \
 	makearc3.testcase \
@@ -1207,15 +1219,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makearc12.testcase \
 	makearc13.testcase \
 	makearc14.testcase \
-	makearc15.testcase \
 	makearc16.testcase \
 	makearc17.testcase \
 	makearc18.testcase \
-	makearc19.testcase \
 	makearc20.testcase \
 	makearc21.testcase \
 	makearc22.testcase \
-	makearc23.testcase \
 	makeellipticarc1.testcase \
 	makeellipticarc2.testcase \
 	makeellipticarc3.testcase \
@@ -1233,15 +1242,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makeellipticarc15.testcase \
 	makeellipticarc16.testcase \
 	makeellipticarc17.testcase \
-	makeellipticarc18.testcase \
 	makeellipticarc19.testcase \
 	makeellipticarc20.testcase \
 	makeellipticarc21.testcase \
-	makeellipticarc22.testcase \
 	makeellipticarc23.testcase \
 	makeellipticarc24.testcase \
 	makeellipticarc25.testcase \
-	makeellipticarc26.testcase \
 	makecircularsector1.testcase \
 	makecircularsector2.testcase \
 	makecircularsector3.testcase \
@@ -1256,15 +1262,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makecircularsector12.testcase \
 	makecircularsector13.testcase \
 	makecircularsector14.testcase \
-	makecircularsector15.testcase \
 	makecircularsector16.testcase \
 	makecircularsector17.testcase \
 	makecircularsector18.testcase \
-	makecircularsector19.testcase \
 	makecircularsector20.testcase \
 	makecircularsector21.testcase \
 	makecircularsector22.testcase \
-	makecircularsector23.testcase \
 	makecircularstripe1.testcase \
 	makecircularstripe2.testcase \
 	makecircularstripe3.testcase \
@@ -1279,15 +1282,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makecircularstripe12.testcase \
 	makecircularstripe13.testcase \
 	makecircularstripe14.testcase \
-	makecircularstripe15.testcase \
 	makecircularstripe16.testcase \
 	makecircularstripe17.testcase \
 	makecircularstripe18.testcase \
-	makecircularstripe19.testcase \
 	makecircularstripe20.testcase \
 	makecircularstripe21.testcase \
 	makecircularstripe22.testcase \
-	makecircularstripe23.testcase \
 	makecircularstripe24.testcase \
 	makecircularstripe25.testcase \
 	makecircularstripe26.testcase \
@@ -1308,15 +1308,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makeellipticsector15.testcase \
 	makeellipticsector16.testcase \
 	makeellipticsector17.testcase \
-	makeellipticsector18.testcase \
 	makeellipticsector19.testcase \
 	makeellipticsector20.testcase \
 	makeellipticsector21.testcase \
-	makeellipticsector22.testcase \
 	makeellipticsector23.testcase \
 	makeellipticsector24.testcase \
 	makeellipticsector25.testcase \
-	makeellipticsector26.testcase \
 	maxm1.testcase \
 	maxm2.testcase \
 	maxm3.testcase \
@@ -1828,4 +1825,85 @@ EXTRA_DIST = addpoint10.testcase \
 	wkttosql1.testcase \
 	wkttosql2.testcase \
 	wkttosql3.testcase \
-	yd_m.testcase 
+	yd_m.testcase \
+	getlayerextent1.testcase \
+	getlayerextent2.testcase \
+	getlayerextent3.testcase \
+	getlayerextent4.testcase \
+	getlayerextent5.testcase \
+	getlayerextent6.testcase \
+	getlayerextent7.testcase \
+	getlayerextent8.testcase \
+	getlayerextent9.testcase \
+	getlayerextent10.testcase \
+	getlayerextent11.testcase \
+	getlayerextent12.testcase \
+	getlayerextent13.testcase \
+	getlayerextent14.testcase \
+	invalidatestats1.testcase \
+	invalidatestats2.testcase \
+	invalidatestats3.testcase \
+	invalidatestats4.testcase \
+	invalidatestats5.testcase \
+	invalidatestats6.testcase \
+	invalidatestats7.testcase \
+	invalidatestats8.testcase \
+	invalidatestats9.testcase \
+	invalidatestats10.testcase \
+	updatestats1.testcase \
+	updatestats2.testcase \
+	updatestats3.testcase \
+	updatestats4.testcase \
+	updatestats5.testcase \
+	updatestats6.testcase \
+	updatestats7.testcase \
+	updatestats8.testcase \
+	updatestats9.testcase \
+	updatestats10.testcase \
+	makepolygon1.testcase \
+	makepolygon2.testcase \
+	makepolygon3.testcase \
+	makepolygon4.testcase \
+	makepolygon5.testcase \
+	makepolygon7.testcase \
+	makepolygon8.testcase \
+	makepolygon9.testcase \
+	makepolygon10.testcase \
+	makepolygon11.testcase \
+	makepolygon12.testcase \
+	makepolygon13.testcase \
+	makepolygon14.testcase \
+	makepolygon15.testcase \
+	makepolygon16.testcase \
+	makepolygon17.testcase \
+	makepolygon18.testcase \
+	makepolygon19.testcase \
+	makepolygon20.testcase \
+	makepolygon21.testcase \
+	makepolygon22.testcase \
+	makepolygon23.testcase \
+	makepolygon24.testcase \
+	makepolygon25.testcase \
+	makepolygon26.testcase \
+	todms1.testcase \
+	todms2.testcase \
+	todms3.testcase \
+	todms4.testcase \
+	todms5.testcase \
+	todms6.testcase \
+	todms7.testcase \
+	todms8.testcase \
+	todms9.testcase \
+	todms10.testcase \
+	todms11.testcase \
+	todms12.testcase \
+	todms13.testcase \
+	fromdms1.testcase \
+	fromdms2.testcase \
+	fromdms3.testcase \
+	fromdms4.testcase \
+	fromdms5.testcase \
+	fromdms6.testcase \
+	fromdms7.testcase \
+	fromdms8.testcase \
+	fromdms9.testcase
diff --git a/test/sql_stmt_tests/Makefile.in b/test/sql_stmt_tests/Makefile.in
index 7a8013b..db157bf 100644
--- a/test/sql_stmt_tests/Makefile.in
+++ b/test/sql_stmt_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -908,6 +950,8 @@ EXTRA_DIST = addpoint10.testcase \
 	fromgml58.testcase \
 	fromgml59.testcase \
 	fromgml5.testcase \
+	fromgml60.testcase \
+	fromgml61.testcase \
 	fromgml6.testcase \
 	fromgml7.testcase \
 	fromgml8.testcase \
@@ -1229,6 +1273,28 @@ EXTRA_DIST = addpoint10.testcase \
 	ismeasured4.testcase \
 	ismeasured5.testcase \
 	ismeasured6.testcase \
+	ispopulatedcoverage1.testcase \
+	ispopulatedcoverage2.testcase \
+	isvalidnodata1.testcase \
+	isvalidnodata2.testcase \
+	isvalidnodata3.testcase \
+	isvalidnodata4.testcase \
+	isvalidpalette1.testcase \
+	isvalidpalette2.testcase \
+	isvalidpalette3.testcase \
+	isvalidrasterstats1.testcase \
+	isvalidrasterstats2.testcase \
+	isvalidrasterstats3.testcase \
+	isvalidrasterstats4.testcase \
+	isvalidrasterstats5.testcase \
+	isvalidrasterstats6.testcase \
+	isvalidrasterstats7.testcase \
+	isvalidrastertile1.testcase \
+	isvalidrastertile2.testcase \
+	isvalidrastertile3.testcase \
+	isvalidrastertile4.testcase \
+	isvalidrastertile5.testcase \
+	isvalidrastertile6.testcase \
 	isXblob5.testcase \
 	isXblob6.testcase \
 	isXblob7.testcase \
@@ -1362,15 +1428,6 @@ EXTRA_DIST = addpoint10.testcase \
 	makecircle7.testcase \
 	makecircle8.testcase \
 	makecircle9.testcase \
-	makecircle10.testcase \
-	makecircle11.testcase \
-	makecircle12.testcase \
-	makecircle13.testcase \
-	makecircle14.testcase \
-	makecircle15.testcase \
-	makecircle16.testcase \
-	makecircle17.testcase \
-	makecircle18.testcase \
 	makeellipse1.testcase \
 	makeellipse2.testcase \
 	makeellipse3.testcase \
@@ -1383,15 +1440,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makeellipse10.testcase \
 	makeellipse11.testcase \
 	makeellipse12.testcase \
-	makeellipse13.testcase \
 	makeellipse14.testcase \
 	makeellipse15.testcase \
 	makeellipse16.testcase \
-	makeellipse17.testcase \
 	makeellipse18.testcase \
 	makeellipse19.testcase \
 	makeellipse20.testcase \
-	makeellipse21.testcase \
 	makearc1.testcase \
 	makearc2.testcase \
 	makearc3.testcase \
@@ -1406,15 +1460,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makearc12.testcase \
 	makearc13.testcase \
 	makearc14.testcase \
-	makearc15.testcase \
 	makearc16.testcase \
 	makearc17.testcase \
 	makearc18.testcase \
-	makearc19.testcase \
 	makearc20.testcase \
 	makearc21.testcase \
 	makearc22.testcase \
-	makearc23.testcase \
 	makeellipticarc1.testcase \
 	makeellipticarc2.testcase \
 	makeellipticarc3.testcase \
@@ -1432,15 +1483,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makeellipticarc15.testcase \
 	makeellipticarc16.testcase \
 	makeellipticarc17.testcase \
-	makeellipticarc18.testcase \
 	makeellipticarc19.testcase \
 	makeellipticarc20.testcase \
 	makeellipticarc21.testcase \
-	makeellipticarc22.testcase \
 	makeellipticarc23.testcase \
 	makeellipticarc24.testcase \
 	makeellipticarc25.testcase \
-	makeellipticarc26.testcase \
 	makecircularsector1.testcase \
 	makecircularsector2.testcase \
 	makecircularsector3.testcase \
@@ -1455,15 +1503,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makecircularsector12.testcase \
 	makecircularsector13.testcase \
 	makecircularsector14.testcase \
-	makecircularsector15.testcase \
 	makecircularsector16.testcase \
 	makecircularsector17.testcase \
 	makecircularsector18.testcase \
-	makecircularsector19.testcase \
 	makecircularsector20.testcase \
 	makecircularsector21.testcase \
 	makecircularsector22.testcase \
-	makecircularsector23.testcase \
 	makecircularstripe1.testcase \
 	makecircularstripe2.testcase \
 	makecircularstripe3.testcase \
@@ -1478,15 +1523,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makecircularstripe12.testcase \
 	makecircularstripe13.testcase \
 	makecircularstripe14.testcase \
-	makecircularstripe15.testcase \
 	makecircularstripe16.testcase \
 	makecircularstripe17.testcase \
 	makecircularstripe18.testcase \
-	makecircularstripe19.testcase \
 	makecircularstripe20.testcase \
 	makecircularstripe21.testcase \
 	makecircularstripe22.testcase \
-	makecircularstripe23.testcase \
 	makecircularstripe24.testcase \
 	makecircularstripe25.testcase \
 	makecircularstripe26.testcase \
@@ -1507,15 +1549,12 @@ EXTRA_DIST = addpoint10.testcase \
 	makeellipticsector15.testcase \
 	makeellipticsector16.testcase \
 	makeellipticsector17.testcase \
-	makeellipticsector18.testcase \
 	makeellipticsector19.testcase \
 	makeellipticsector20.testcase \
 	makeellipticsector21.testcase \
-	makeellipticsector22.testcase \
 	makeellipticsector23.testcase \
 	makeellipticsector24.testcase \
 	makeellipticsector25.testcase \
-	makeellipticsector26.testcase \
 	maxm1.testcase \
 	maxm2.testcase \
 	maxm3.testcase \
@@ -2027,7 +2066,88 @@ EXTRA_DIST = addpoint10.testcase \
 	wkttosql1.testcase \
 	wkttosql2.testcase \
 	wkttosql3.testcase \
-	yd_m.testcase 
+	yd_m.testcase \
+	getlayerextent1.testcase \
+	getlayerextent2.testcase \
+	getlayerextent3.testcase \
+	getlayerextent4.testcase \
+	getlayerextent5.testcase \
+	getlayerextent6.testcase \
+	getlayerextent7.testcase \
+	getlayerextent8.testcase \
+	getlayerextent9.testcase \
+	getlayerextent10.testcase \
+	getlayerextent11.testcase \
+	getlayerextent12.testcase \
+	getlayerextent13.testcase \
+	getlayerextent14.testcase \
+	invalidatestats1.testcase \
+	invalidatestats2.testcase \
+	invalidatestats3.testcase \
+	invalidatestats4.testcase \
+	invalidatestats5.testcase \
+	invalidatestats6.testcase \
+	invalidatestats7.testcase \
+	invalidatestats8.testcase \
+	invalidatestats9.testcase \
+	invalidatestats10.testcase \
+	updatestats1.testcase \
+	updatestats2.testcase \
+	updatestats3.testcase \
+	updatestats4.testcase \
+	updatestats5.testcase \
+	updatestats6.testcase \
+	updatestats7.testcase \
+	updatestats8.testcase \
+	updatestats9.testcase \
+	updatestats10.testcase \
+	makepolygon1.testcase \
+	makepolygon2.testcase \
+	makepolygon3.testcase \
+	makepolygon4.testcase \
+	makepolygon5.testcase \
+	makepolygon7.testcase \
+	makepolygon8.testcase \
+	makepolygon9.testcase \
+	makepolygon10.testcase \
+	makepolygon11.testcase \
+	makepolygon12.testcase \
+	makepolygon13.testcase \
+	makepolygon14.testcase \
+	makepolygon15.testcase \
+	makepolygon16.testcase \
+	makepolygon17.testcase \
+	makepolygon18.testcase \
+	makepolygon19.testcase \
+	makepolygon20.testcase \
+	makepolygon21.testcase \
+	makepolygon22.testcase \
+	makepolygon23.testcase \
+	makepolygon24.testcase \
+	makepolygon25.testcase \
+	makepolygon26.testcase \
+	todms1.testcase \
+	todms2.testcase \
+	todms3.testcase \
+	todms4.testcase \
+	todms5.testcase \
+	todms6.testcase \
+	todms7.testcase \
+	todms8.testcase \
+	todms9.testcase \
+	todms10.testcase \
+	todms11.testcase \
+	todms12.testcase \
+	todms13.testcase \
+	fromdms1.testcase \
+	fromdms2.testcase \
+	fromdms3.testcase \
+	fromdms4.testcase \
+	fromdms5.testcase \
+	fromdms6.testcase \
+	fromdms7.testcase \
+	fromdms8.testcase \
+	fromdms9.testcase
 
 all: all-am
 
@@ -2068,11 +2188,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -2210,15 +2328,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/sql_stmt_tests/asewkb1.testcase b/test/sql_stmt_tests/asewkb1.testcase
index 310b15a..b2126bb 100644
--- a/test/sql_stmt_tests/asewkb1.testcase
+++ b/test/sql_stmt_tests/asewkb1.testcase
@@ -4,7 +4,7 @@ SELECT Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326)))
-535249443D343332363B303130313030303030303030303030303030303030304630334630303030303030303030303030383430
+3031303130303030323045363130303030303030303030303030303030304630334630303030303030303030303030383430
 
 
 
diff --git a/test/sql_stmt_tests/asewkb10.testcase b/test/sql_stmt_tests/asewkb10.testcase
index 375549c..948e242 100644
--- a/test/sql_stmt_tests/asewkb10.testcase
+++ b/test/sql_stmt_tests/asewkb10.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326)))
-535249443D343332363B3031303230303030433030323030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030
-
+30313032303030304530453631303030303030323030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030
 
 
diff --git a/test/sql_stmt_tests/asewkb11.testcase b/test/sql_stmt_tests/asewkb11.testcase
index a6d4fa8..3c4b376 100644
--- a/test/sql_stmt_tests/asewkb11.testcase
+++ b/test/sql_stmt_tests/asewkb11.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8, -30 -3.2))", 4326)))
-535249443D343332363B3031303530303030303030323030303030303031303230303030303030343030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030303130323030303030303034303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030383430303030303030 [...]
-
+303130353030303032304536313030303030303230303030303030313032303030303030303430303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303030303031303230303030303030343030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303834303030303030303030 [...]
 
 
diff --git a/test/sql_stmt_tests/asewkb12.testcase b/test/sql_stmt_tests/asewkb12.testcase
index 549604b..65c779f 100644
--- a/test/sql_stmt_tests/asewkb12.testcase
+++ b/test/sql_stmt_tests/asewkb12.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1,
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))", 4326)))
-535249443D343332363B3031303330303030303030323030303030303035303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030 [...]
-
+303130333030303032304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030304630334630303030303030303030303046303346303030303030303030303030 [...]
 
 
diff --git a/test/sql_stmt_tests/asewkb13.testcase b/test/sql_stmt_tests/asewkb13.testcase
index cc9142d..217ede7 100644
--- a/test/sql_stmt_tests/asewkb13.testcase
+++ b/test/sql_stmt_tests/asewkb13.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326)))
-535249443D343332363B3031303330303030383030323030303030303035303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030 [...]
-
+303130333030303041304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030 [...]
 
 
diff --git a/test/sql_stmt_tests/asewkb14.testcase b/test/sql_stmt_tests/asewkb14.testcase
index 0afd15a..c1153cc 100644
--- a/test/sql_stmt_tests/asewkb14.testcase
+++ b/test/sql_stmt_tests/asewkb14.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326)))
-535249443D343332363B3031303330303030343030323030303030303035303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030 [...]
-
+303130333030303036304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030 [...]
 
 
diff --git a/test/sql_stmt_tests/asewkb15.testcase b/test/sql_stmt_tests/asewkb15.testcase
index 230d5c6..6d03007 100644
--- a/test/sql_stmt_tests/asewkb15.testcase
+++ b/test/sql_stmt_tests/asewkb15.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326)))
-535249443D343332363B303130343030303030303031303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346
-
+3031303430303030323045363130303030303031303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346
 
 
diff --git a/test/sql_stmt_tests/asewkb16.testcase b/test/sql_stmt_tests/asewkb16.testcase
index f00d80a..6c34b4e 100644
--- a/test/sql_stmt_tests/asewkb16.testcase
+++ b/test/sql_stmt_tests/asewkb16.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 432
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 4326)))
-535249443D343332363B303130373030303030303032303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346303130313030303030303030303030303030303030303030343030303030303030303030303030383430
-
+3031303730303030323045363130303030303032303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346303130313030303030303030303030303030303030303030343030303030303030303030303030383430
 
 
diff --git a/test/sql_stmt_tests/asewkb17.testcase b/test/sql_stmt_tests/asewkb17.testcase
index 329fa01..054f218 100644
--- a/test/sql_stmt_tests/asewkb17.testcase
+++ b/test/sql_stmt_tests/asewkb17.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0)))", 4326)))
-535249443D343332363B3031303730303030383030323030303030303031303130303030383030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303038343030313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030 [...]
-
+303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030303030303030303030303030303030304630334630303030303030303030303030383430303130333030303038303032303030303030303530303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030 [...]
 
 
diff --git a/test/sql_stmt_tests/asewkb2.testcase b/test/sql_stmt_tests/asewkb2.testcase
index b03762b..741c686 100644
--- a/test/sql_stmt_tests/asewkb2.testcase
+++ b/test/sql_stmt_tests/asewkb2.testcase
@@ -4,7 +4,5 @@ SELECT Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326)))
-535249443D343332363B30313031303030303830303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346
-
-
+303130313030303041304536313030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346
 
diff --git a/test/sql_stmt_tests/asewkb3.testcase b/test/sql_stmt_tests/asewkb3.testcase
index f64d789..83b0ffb 100644
--- a/test/sql_stmt_tests/asewkb3.testcase
+++ b/test/sql_stmt_tests/asewkb3.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326)))
-535249443D343332363B30313031303030303430303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346
-
+303130313030303036304536313030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346
 
 
diff --git a/test/sql_stmt_tests/asewkb4.testcase b/test/sql_stmt_tests/asewkb4.testcase
index f1c062c..6aa88bf 100644
--- a/test/sql_stmt_tests/asewkb4.testcase
+++ b/test/sql_stmt_tests/asewkb4.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRING(1 3,1 0)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("LINESTRING(1 3,1 0)", 4326)))
-535249443D343332363B30313032303030303030303230303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030
-
+303130323030303032304536313030303030303230303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030
 
 
diff --git a/test/sql_stmt_tests/asewkb6.testcase b/test/sql_stmt_tests/asewkb6.testcase
index 0df12e6..fae5e0b 100644
--- a/test/sql_stmt_tests/asewkb6.testcase
+++ b/test/sql_stmt_tests/asewkb6.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326)))
-535249443D343332363B3031303130303030433030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030
-
+30313031303030304530453631303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030
 
 
diff --git a/test/sql_stmt_tests/asewkb8.testcase b/test/sql_stmt_tests/asewkb8.testcase
index 6ff77ea..53693d9 100644
--- a/test/sql_stmt_tests/asewkb8.testcase
+++ b/test/sql_stmt_tests/asewkb8.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326)))
-535249443D343332363B303130323030303038303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430
-
+3031303230303030413045363130303030303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430
 
 
diff --git a/test/sql_stmt_tests/asewkb9.testcase b/test/sql_stmt_tests/asewkb9.testcase
index b7d093c..cb016c8 100644
--- a/test/sql_stmt_tests/asewkb9.testcase
+++ b/test/sql_stmt_tests/asewkb9.testcase
@@ -4,7 +4,6 @@ SELECT Hex(AsEWKB(GeomFromText("LINESTRINGM(1 3 2,1 0 2)", 4326)))
 1 # rows (not including the header row)
 1 # columns
 Hex(AsEWKB(GeomFromText("LINESTRINGM(1 3 2,1 0 2)", 4326)))
-535249443D343332363B303130323030303034303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430
-
+3031303230303030363045363130303030303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430
 
 
diff --git a/test/sql_stmt_tests/createrastercoverages.testcase b/test/sql_stmt_tests/createrastercoverages.testcase
index 1f40ca1..9ddcf9a 100644
--- a/test/sql_stmt_tests/createrastercoverages.testcase
+++ b/test/sql_stmt_tests/createrastercoverages.testcase
@@ -1,5 +1,5 @@
 CreateRasterCoveragesTable
-:memory: #use in-memory database
+NEW:memory: #use in-memory database
 SELECT CreateRasterCoveragesTable();
 1 # rows (not including the header row)
 1 # columns
diff --git a/test/sql_stmt_tests/fromdms1.testcase b/test/sql_stmt_tests/fromdms1.testcase
new file mode 100644
index 0000000..ce8538d
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms1.testcase
@@ -0,0 +1,10 @@
+fromdms - NULL DMS expression
+:memory: #use in-memory database
+SELECT LongitudeFromDMS(NULL), LatitudeFromDMS(NULL);
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS(NULL)
+LatitudeFromDMS(NULL)
+(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/fromdms2.testcase b/test/sql_stmt_tests/fromdms2.testcase
new file mode 100644
index 0000000..c6e216f
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms2.testcase
@@ -0,0 +1,10 @@
+fromdms - Integer DMS expression
+:memory: #use in-memory database
+SELECT LongitudeFromDMS(1), LatitudeFromDMS(1);
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS(1)
+LatitudeFromDMS(1)
+(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/fromdms3.testcase b/test/sql_stmt_tests/fromdms3.testcase
new file mode 100644
index 0000000..ef3de8d
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms3.testcase
@@ -0,0 +1,10 @@
+fromdms - Double DMS expression
+:memory: #use in-memory database
+SELECT LongitudeFromDMS(1.2), LatitudeFromDMS(1.2);
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS(1.2)
+LatitudeFromDMS(1.2)
+(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/fromdms4.testcase b/test/sql_stmt_tests/fromdms4.testcase
new file mode 100644
index 0000000..0ee3dcb
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms4.testcase
@@ -0,0 +1,10 @@
+fromdms - BLOB DMS expression
+:memory: #use in-memory database
+SELECT LongitudeFromDMS(zeroblob(4)), LatitudeFromDMS(zeroblob(4));
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS(zeroblob(4))
+LatitudeFromDMS(zeroblob(4))
+(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/fromdms5.testcase b/test/sql_stmt_tests/fromdms5.testcase
new file mode 100644
index 0000000..dac08d6
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms5.testcase
@@ -0,0 +1,10 @@
+fromdms - generic TEXT DMS expression
+:memory: #use in-memory database
+SELECT LongitudeFromDMS('alpha'), LatitudeFromDMS('alpha');
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS('alpha')
+LatitudeFromDMS('alpha')
+(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/fromdms6.testcase b/test/sql_stmt_tests/fromdms6.testcase
new file mode 100644
index 0000000..a32766f
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms6.testcase
@@ -0,0 +1,10 @@
+fromdms - valid DMS expression-1
+:memory: #use in-memory database
+SELECT LongitudeFromDMS('N40°26′47″ W079°58′36″'), LatitudeFromDMS('N40°26′47″ W079°58′36″');
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS('N40°26′47″ W079°58′36″')
+LatitudeFromDMS('N40°26′47″ W079°58′36″')
+-79.97666:5
+40.44638:5
+
diff --git a/test/sql_stmt_tests/fromdms7.testcase b/test/sql_stmt_tests/fromdms7.testcase
new file mode 100644
index 0000000..115790b
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms7.testcase
@@ -0,0 +1,10 @@
+fromdms - valid DMS expression-2
+:memory: #use in-memory database
+SELECT LongitudeFromDMS('N40d26''47" W079d58''36"'), LatitudeFromDMS('N40d26''47" W079d58''36"');
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS('N40d26''47" W079d58''36"')
+LatitudeFromDMS('N40d26''47" W079d58''36"')
+-79.97666:5
+40.44638:5
+
diff --git a/test/sql_stmt_tests/fromdms8.testcase b/test/sql_stmt_tests/fromdms8.testcase
new file mode 100644
index 0000000..17ea90e
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms8.testcase
@@ -0,0 +1,11 @@
+fromdms - valid DMS expression-3
+:memory: #use in-memory database
+SELECT LongitudeFromDMS('40°26′47″S 079°58′36″E'), LatitudeFromDMS('40°26′47″S 079°58′36″E');
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS('40°26′47″S 079°58′36″E')
+LatitudeFromDMS('40°26′47″S 079°58′36″E')
+79.97666:5
+-40.44638:5
+
+
diff --git a/test/sql_stmt_tests/fromdms9.testcase b/test/sql_stmt_tests/fromdms9.testcase
new file mode 100644
index 0000000..562d761
--- /dev/null
+++ b/test/sql_stmt_tests/fromdms9.testcase
@@ -0,0 +1,9 @@
+fromdms - valid DMS expression-4
+:memory: #use in-memory database
+SELECT LongitudeFromDMS('40d26''47"S 079d58''36"E'), LatitudeFromDMS('40d26''47"S 079d58''36"E');
+1 # rows (not including the header row)
+2 # columns
+LongitudeFromDMS('40d26''47"S 079d58''36"E')
+LatitudeFromDMS('40d26''47"S 079d58''36"E')
+79.97666:5
+-40.44638:5
diff --git a/test/sql_stmt_tests/fromgeojson22.testcase b/test/sql_stmt_tests/fromgeojson22.testcase
index bc9f855..4037678 100644
--- a/test/sql_stmt_tests/fromgeojson22.testcase
+++ b/test/sql_stmt_tests/fromgeojson22.testcase
@@ -1,8 +1,8 @@
 FromGeoJSON - geometry collectionz, SRID
 :memory: #use in-memory database
-SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[12,3,2],[4,6,1]]]}]}'))
+SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[13,3,2],[4,6,1]]]}]}'))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[12,3,2],[4,6,1]]]}]}')):0
-SRID=3003;GEOMETRYCOLLECTION(POINT(4 6 0),POLYGON((4 6 1,7 10 1,12 3 2,4 6 1)))
+AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[13,3,2],[4,6,1]]]}]}')):0
+SRID=3003;GEOMETRYCOLLECTION(POINT(4 6 0),POLYGON((4 6 1,7 10 1,13 3 2,4 6 1)))
 
diff --git a/test/sql_stmt_tests/fromgeojson23.testcase b/test/sql_stmt_tests/fromgeojson23.testcase
index 301ab37..ee1a55f 100644
--- a/test/sql_stmt_tests/fromgeojson23.testcase
+++ b/test/sql_stmt_tests/fromgeojson23.testcase
@@ -1,8 +1,8 @@
 FromGeoJSON - geometry collection, SRID
 :memory: #use in-memory database
-SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]}]}'))
+SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]}]}'))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]}]}')):0
-SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POLYGON((4 6,7 10,12 3,4 6)))
+AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]}]}')):0
+SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POLYGON((4 6,7 10,13 3,4 6)))
 
diff --git a/test/sql_stmt_tests/fromgeojson24.testcase b/test/sql_stmt_tests/fromgeojson24.testcase
index 15fd952..330ff3e 100644
--- a/test/sql_stmt_tests/fromgeojson24.testcase
+++ b/test/sql_stmt_tests/fromgeojson24.testcase
@@ -1,9 +1,9 @@
 FromGeoJSON - geometry collection, SRID
 :memory: #use in-memory database
-SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}'))
+SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}'))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,12,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[12,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')):0
-SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POINT(-4 2.4),POINT(1 -4),LINESTRING(8 -2,0.2 3.2),LINESTRING(4 6,1.2 4),POLYGON((4 6,7 10,12 3,4 6)),POLYGON((1 0,2 3,4 3,1 0)))
+AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')):0
+SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POINT(-4 2.4),POINT(1 -4),LINESTRING(8 -2,0.2 3.2),LINESTRING(4 6,1.2 4),POLYGON((4 6,7 10,13 3,4 6)),POLYGON((1 0,2 3,4 3,1 0)))
 
 
diff --git a/test/sql_stmt_tests/fromgml11.testcase b/test/sql_stmt_tests/fromgml11.testcase
index 7c18104..7eb8237 100644
--- a/test/sql_stmt_tests/fromgml11.testcase
+++ b/test/sql_stmt_tests/fromgml11.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v2
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMember><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>10,10 11.5,11</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString>'));
+SELECT AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMember><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>10,10 11.3,11</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMember><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>10,10 11.5,11</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString>')):0
-SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11))
+AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMember><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>10,10 11.3,11</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString>')):0
+SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11))
diff --git a/test/sql_stmt_tests/fromgml12.testcase b/test/sql_stmt_tests/fromgml12.testcase
index 1813893..d31159e 100644
--- a/test/sql_stmt_tests/fromgml12.testcase
+++ b/test/sql_stmt_tests/fromgml12.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v3
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.5 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>'));
+SELECT AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.3 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.5 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>')):0
-SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11))
+AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.3 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>')):0
+SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11))
diff --git a/test/sql_stmt_tests/fromgml17.testcase b/test/sql_stmt_tests/fromgml17.testcase
index e104c97..9cd9178 100644
--- a/test/sql_stmt_tests/fromgml17.testcase
+++ b/test/sql_stmt_tests/fromgml17.testcase
@@ -1,7 +1,7 @@
 FromGML - GeometryCollection v2 3D
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:coordinates>8,8,10.5</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString><gml:coordinates>9,9,10.5 10.1,10.1,10.6</gml:coordinates></gml:LineString></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,0,10 5,0,11 5,5,12 0,5,13 0,0,10</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:inne [...]
+SELECT AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:coordinates>8,8,10.5</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString><gml:coordinates>9,9,10.5 10.1,10.1,10.6</gml:coordinates></gml:LineString></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,0,10 5,0,11 5,5,13 0,5,13 0,0,10</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:inne [...]
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:coordinates>8,8,10.5</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString><gml:coordinates>9,9,10.5 10.1,10.1,10.6</gml:coordinates></gml:LineString></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,0,10 5,0,11 5,5,12 0,5,13 0,0,10</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBounda [...]
-SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)))
+AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:coordinates>8,8,10.5</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString><gml:coordinates>9,9,10.5 10.1,10.1,10.6</gml:coordinates></gml:LineString></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,0,10 5,0,11 5,5,13 0,5,13 0,0,10</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBounda [...]
+SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)))
diff --git a/test/sql_stmt_tests/fromgml18.testcase b/test/sql_stmt_tests/fromgml18.testcase
index ea2b743..3e24437 100644
--- a/test/sql_stmt_tests/fromgml18.testcase
+++ b/test/sql_stmt_tests/fromgml18.testcase
@@ -1,7 +1,7 @@
 FromGML - GeometryCollection v3 3D
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5  [...]
+SELECT AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5  [...]
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5  [...]
-SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)))
+AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMember><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember><gml:geometryMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5  [...]
+SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)))
diff --git a/test/sql_stmt_tests/fromgml23.testcase b/test/sql_stmt_tests/fromgml23.testcase
index aec804a..78529d4 100644
--- a/test/sql_stmt_tests/fromgml23.testcase
+++ b/test/sql_stmt_tests/fromgml23.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v2 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMember><LineString><coordinates>1,2,10 3,4,11 5,6,12</coordinates></LineString></lineStringMember><lineStringMember><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMember></MultiLineString>'));
+SELECT AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMember><LineString><coordinates>1,2,10 3,4,11 5,6,13</coordinates></LineString></lineStringMember><lineStringMember><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMember></MultiLineString>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMember><LineString><coordinates>1,2,10 3,4,11 5,6,12</coordinates></LineString></lineStringMember><lineStringMember><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMember></MultiLineString>')):0
-SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13))
+AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMember><LineString><coordinates>1,2,10 3,4,11 5,6,13</coordinates></LineString></lineStringMember><lineStringMember><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMember></MultiLineString>')):0
+SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13))
diff --git a/test/sql_stmt_tests/fromgml24.testcase b/test/sql_stmt_tests/fromgml24.testcase
index 7dca47f..ddb3991 100644
--- a/test/sql_stmt_tests/fromgml24.testcase
+++ b/test/sql_stmt_tests/fromgml24.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v3 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 12</posList></LineStringSegment></segments></Curve></curveMember><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMember></MultiCurve>'));
+SELECT AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 13</posList></LineStringSegment></segments></Curve></curveMember><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMember></MultiCurve>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 12</posList></LineStringSegment></segments></Curve></curveMember><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMember></MultiCurve>')):0
-SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13))
+AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 13</posList></LineStringSegment></segments></Curve></curveMember><curveMember><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMember></MultiCurve>')):0
+SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13))
diff --git a/test/sql_stmt_tests/fromgml25.testcase b/test/sql_stmt_tests/fromgml25.testcase
index 3c0bcb8..b30daae 100644
--- a/test/sql_stmt_tests/fromgml25.testcase
+++ b/test/sql_stmt_tests/fromgml25.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiPolygon v2 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,12 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon></polygonMember><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,12 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs [...]
+SELECT AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,13 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon></polygonMember><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,13 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs [...]
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,12 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon></polygonMember><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,12 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs></Poly [...]
-SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10)))
+AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,13 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon></polygonMember><polygonMember><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,13 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs></Poly [...]
+SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10)))
diff --git a/test/sql_stmt_tests/fromgml26.testcase b/test/sql_stmt_tests/fromgml26.testcase
index 6b317f7..0ed42f0 100644
--- a/test/sql_stmt_tests/fromgml26.testcase
+++ b/test/sql_stmt_tests/fromgml26.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiPolygon v3 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon></surfaceMember><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 12 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></su [...]
+SELECT AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon></surfaceMember><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 13 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></su [...]
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon></surfaceMember><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 12 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></surfaceMe [...]
-SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10)))
+AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon></surfaceMember><surfaceMember><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 13 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></surfaceMe [...]
+SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10)))
diff --git a/test/sql_stmt_tests/fromgml44.testcase b/test/sql_stmt_tests/fromgml44.testcase
index 397e6ef..9480482 100644
--- a/test/sql_stmt_tests/fromgml44.testcase
+++ b/test/sql_stmt_tests/fromgml44.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiPolygon v3 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMembers><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 12 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></surfaceMembers></MultiSurface>'));
+SELECT AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMembers><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 13 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></surfaceMembers></MultiSurface>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMembers><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 12 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></surfaceMembers></MultiSurface>')):0
-SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10)))
+AsEwkt(GeomFromGml('<MultiSurface srsName="EPSG:4326"><surfaceMembers><Polygon><exterior><LinearRing><posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5 13 0 0 10</posList></LinearRing></exterior><interior><LinearRing><posList srsDimension="3">1 1 5 2 1 5 2 2 5 1 2 5 1 1 5</posList></LinearRing></interior></Polygon><Polygon><exterior><LinearRing><posList srsDimension="3">2 2 10 3 2 11 3 3 13 2 3 13 2 2 10</posList></LinearRing></exterior></Polygon></surfaceMembers></MultiSurface>')):0
+SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10)))
diff --git a/test/sql_stmt_tests/fromgml46.testcase b/test/sql_stmt_tests/fromgml46.testcase
index 951743e..71c95d2 100644
--- a/test/sql_stmt_tests/fromgml46.testcase
+++ b/test/sql_stmt_tests/fromgml46.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiPolygon v2 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMembers><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,12 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,12 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMembers></ [...]
+SELECT AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMembers><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,13 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,13 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMembers></ [...]
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMembers><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,12 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,12 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMembers></MultiPo [...]
-SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 12,2 3 13,2 2 10)))
+AsEwkt(GeomFromGml('<MultiPolygon srsName="EPSG:4326"><polygonMembers><Polygon><outerBoundaryIs><LinearRing><coordinates>0,0,10 5,0,11 5,5,13 0,5,13 0,0,10</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>1,1,5 2,1,5 2,2,5 1,2,5 1,1,5</coordinates></LinearRing></innerBoundaryIs></Polygon><Polygon><outerBoundaryIs><LinearRing><coordinates>2,2,10 3,2,11 3,3,13 2,3,13 2,2,10</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMembers></MultiPo [...]
+SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10)))
diff --git a/test/sql_stmt_tests/fromgml48.testcase b/test/sql_stmt_tests/fromgml48.testcase
index aa65773..aa97d1b 100644
--- a/test/sql_stmt_tests/fromgml48.testcase
+++ b/test/sql_stmt_tests/fromgml48.testcase
@@ -1,7 +1,7 @@
 FromGML - GeometryCollection v3 3D
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMembers><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5 13 0 0 10</gml:posList></gml:LinearRing></gml:exterior><gml:interior><gml: [...]
+SELECT AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMembers><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5 13 0 0 10</gml:posList></gml:LinearRing></gml:exterior><gml:interior><gml: [...]
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMembers><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5 12 0 5 13 0 0 10</gml:posList></gml:LinearRing></gml:exterior><gml:interior><gml:LinearR [...]
-SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 12,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)))
+AsEwkt(GeomFromGml('<gml:MultiGeometry srsName="EPSG:4326"><gml:geometryMembers><gml:Point><gml:pos srsDimension="3">8 8 10.5</gml:pos></gml:Point><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="3">9 9 10.5 10.1 10.1 10.6</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension="3">0 0 10 5 0 11 5 5 13 0 5 13 0 0 10</gml:posList></gml:LinearRing></gml:exterior><gml:interior><gml:LinearR [...]
+SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)))
diff --git a/test/sql_stmt_tests/fromgml52.testcase b/test/sql_stmt_tests/fromgml52.testcase
index b298d59..34b6e59 100644
--- a/test/sql_stmt_tests/fromgml52.testcase
+++ b/test/sql_stmt_tests/fromgml52.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v2
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMembers><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString><gml:LineString><gml:coordinates>10,10 11.5,11</gml:coordinates></gml:LineString></gml:lineStringMembers></gml:MultiLineString>'));
+SELECT AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMembers><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString><gml:LineString><gml:coordinates>10,10 11.3,11</gml:coordinates></gml:LineString></gml:lineStringMembers></gml:MultiLineString>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMembers><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString><gml:LineString><gml:coordinates>10,10 11.5,11</gml:coordinates></gml:LineString></gml:lineStringMembers></gml:MultiLineString>')):0
-SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11))
+AsEwkt(GeomFromGml('<gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMembers><gml:LineString><gml:coordinates>1,2 3,4 5,6 7,8</gml:coordinates></gml:LineString><gml:LineString><gml:coordinates>10,10 11.3,11</gml:coordinates></gml:LineString></gml:lineStringMembers></gml:MultiLineString>')):0
+SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11))
diff --git a/test/sql_stmt_tests/fromgml53.testcase b/test/sql_stmt_tests/fromgml53.testcase
index 21878d5..768aed5 100644
--- a/test/sql_stmt_tests/fromgml53.testcase
+++ b/test/sql_stmt_tests/fromgml53.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v2 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMembers><LineString><coordinates>1,2,10 3,4,11 5,6,12</coordinates></LineString><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMembers></MultiLineString>'));
+SELECT AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMembers><LineString><coordinates>1,2,10 3,4,11 5,6,13</coordinates></LineString><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMembers></MultiLineString>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMembers><LineString><coordinates>1,2,10 3,4,11 5,6,12</coordinates></LineString><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMembers></MultiLineString>')):0
-SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13))
+AsEwkt(GeomFromGml('<MultiLineString srsName="EPSG:4326"><lineStringMembers><LineString><coordinates>1,2,10 3,4,11 5,6,13</coordinates></LineString><LineString><coordinates>7,8,13 9,10,13</coordinates></LineString></lineStringMembers></MultiLineString>')):0
+SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13))
diff --git a/test/sql_stmt_tests/fromgml54.testcase b/test/sql_stmt_tests/fromgml54.testcase
index 07bfff0..bcbd64e 100644
--- a/test/sql_stmt_tests/fromgml54.testcase
+++ b/test/sql_stmt_tests/fromgml54.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v3
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMembers><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.5 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMembers></gml:MultiCurve>'));
+SELECT AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMembers><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.3 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMembers></gml:MultiCurve>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMembers><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.5 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMembers></gml:MultiCurve>')):0
-SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.5 11))
+AsEwkt(GeomFromGml('<gml:MultiCurve srsName="EPSG:4326"><gml:curveMembers><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">1 2 3 4 5 6 7 8</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">10 10 11.3 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMembers></gml:MultiCurve>')):0
+SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11))
diff --git a/test/sql_stmt_tests/fromgml55.testcase b/test/sql_stmt_tests/fromgml55.testcase
index 81c67d9..ac373ec 100644
--- a/test/sql_stmt_tests/fromgml55.testcase
+++ b/test/sql_stmt_tests/fromgml55.testcase
@@ -1,7 +1,7 @@
 FromGML - MultiLinestring v3 3D (no namespace)
 :memory: #use in-memory database
-SELECT AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMembers><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 12</posList></LineStringSegment></segments></Curve><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMembers></MultiCurve>'));
+SELECT AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMembers><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 13</posList></LineStringSegment></segments></Curve><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMembers></MultiCurve>'));
 1 # rows (not including the header row)
 1 # columns
-AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMembers><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 12</posList></LineStringSegment></segments></Curve><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMembers></MultiCurve>')):0
-SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 12),(7 8 13,9 10 13))
+AsEwkt(GeomFromGml('<MultiCurve srsName="EPSG:4326"><curveMembers><Curve><segments><LineStringSegment><posList srsDimension="3">1 2 10 3 4 11 5 6 13</posList></LineStringSegment></segments></Curve><Curve><segments><LineStringSegment><posList srsDimension="3">7 8 13 9 10 13</posList></LineStringSegment></segments></Curve></curveMembers></MultiCurve>')):0
+SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13))
diff --git a/test/sql_stmt_tests/fromgml60.testcase b/test/sql_stmt_tests/fromgml60.testcase
new file mode 100644
index 0000000..ee1fb3e
--- /dev/null
+++ b/test/sql_stmt_tests/fromgml60.testcase
@@ -0,0 +1,8 @@
+FromGML - Box-1 <gml:Box>
+:memory: #use in-memory database
+SELECT AsText(GeomFromGml('<gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml:3003"><gml:coordinates decimal="." cs="," ts=" ">1465764.67172047,4301759.08670378 1486407.98880581,4322672.57766581</gml:coordinates></gml:Box>'));
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGml('<gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml:3003"><gml:coordinates decimal="." cs="," ts=" ">1465764.67172047,4301759.08670378 1486407.98880581,4322672.57766581</gml:coordinates></gml:Box>')):0
+POLYGON((1465764.67172 4301759.086704, 1486407.988806 4301759.086704, 1486407.988806 4322672.577666, 1465764.67172 4322672.577666, 1465764.67172 4301759.086704))
+
diff --git a/test/sql_stmt_tests/fromgml61.testcase b/test/sql_stmt_tests/fromgml61.testcase
new file mode 100644
index 0000000..651fcbb
--- /dev/null
+++ b/test/sql_stmt_tests/fromgml61.testcase
@@ -0,0 +1,8 @@
+FromGML - Box-2 <gml:Box>
+:memory: #use in-memory database
+SELECT AsText(GeomFromGml('<gml:Box srsName="EPSG:3003"><gml:coordinates>1329459.947339,4879353.546282 1442103.707005,4967559.686594</gml:coordinates></gml:Box>'));
+1 # rows (not including the header row)
+1 # columns
+AsText(GeomFromGml('<gml:Box srsName="EPSG:3003"><gml:coordinates>1329459.947339,4879353.546282 1442103.707005,4967559.686594</gml:coordinates></gml:Box>')):0
+POLYGON((1329459.947339 4879353.546282, 1442103.707005 4879353.546282, 1442103.707005 4967559.686594, 1329459.947339 4967559.686594, 1329459.947339 4879353.546282))
+
diff --git a/test/sql_stmt_tests/geomfromtext6.testcase b/test/sql_stmt_tests/geomfromtext6.testcase
index d60d816..5f347ce 100644
--- a/test/sql_stmt_tests/geomfromtext6.testcase
+++ b/test/sql_stmt_tests/geomfromtext6.testcase
@@ -1,7 +1,7 @@
 geomfromtext6
 :memory: #use in-memory database
-SELECT AsEWkt(GeomFromText("POINT(-71 42)", 4326));
+SELECT AsEWkt(GeomFromText("POINT(-72 42)", 4326));
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(GeomFromText("POINT(-71 42)", 4326))
-SRID=4326;POINT(-71 42)
+AsEWkt(GeomFromText("POINT(-72 42)", 4326))
+SRID=4326;POINT(-72 42)
diff --git a/test/sql_stmt_tests/getlayerextent1.testcase b/test/sql_stmt_tests/getlayerextent1.testcase
new file mode 100644
index 0000000..6807e08
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent1.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - NULL, NULL
+:memory: #use in-memory database
+SELECT GetLayerExtent(NULL, NULL);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent(NULL, NULL);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent10.testcase b/test/sql_stmt_tests/getlayerextent10.testcase
new file mode 100644
index 0000000..feed782
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent10.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, NULL
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', NULL);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', NULL);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent11.testcase b/test/sql_stmt_tests/getlayerextent11.testcase
new file mode 100644
index 0000000..6135b66
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent11.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, TEXT, TEXT
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 'column', 'alpha');
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 'column', 'alpha');
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent12.testcase b/test/sql_stmt_tests/getlayerextent12.testcase
new file mode 100644
index 0000000..7800b70
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent12.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, TEXT, INT
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 'column', 1);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 'column', 1);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent13.testcase b/test/sql_stmt_tests/getlayerextent13.testcase
new file mode 100644
index 0000000..bddc286
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent13.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, TEXT, DOUBLE
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 'column', 1.1);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 'column', 1.1);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent14.testcase b/test/sql_stmt_tests/getlayerextent14.testcase
new file mode 100644
index 0000000..941b9c3
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent14.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, TEXT, BLOB
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 'column', zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 'column', zeroblob(4));
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent2.testcase b/test/sql_stmt_tests/getlayerextent2.testcase
new file mode 100644
index 0000000..feed782
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent2.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, NULL
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', NULL);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', NULL);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent3.testcase b/test/sql_stmt_tests/getlayerextent3.testcase
new file mode 100644
index 0000000..2ac98d5
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent3.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, TEXT
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 'column');
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 'column');
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent4.testcase b/test/sql_stmt_tests/getlayerextent4.testcase
new file mode 100644
index 0000000..484c13d
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent4.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - INT, TEXT
+:memory: #use in-memory database
+SELECT GetLayerExtent(1, 'column');
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent(1, 'column');
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent5.testcase b/test/sql_stmt_tests/getlayerextent5.testcase
new file mode 100644
index 0000000..edd2b31
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent5.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - DOUBLE, TEXT
+:memory: #use in-memory database
+SELECT GetLayerExtent(1.1, 'column');
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent(1.1, 'column');
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent6.testcase b/test/sql_stmt_tests/getlayerextent6.testcase
new file mode 100644
index 0000000..294840f
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent6.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - BLOB, TEXT
+:memory: #use in-memory database
+SELECT GetLayerExtent(zeroblob(4), 'column');
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent(zeroblob(4), 'column');
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent7.testcase b/test/sql_stmt_tests/getlayerextent7.testcase
new file mode 100644
index 0000000..6f8b410
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent7.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, INT
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 1);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 1);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent8.testcase b/test/sql_stmt_tests/getlayerextent8.testcase
new file mode 100644
index 0000000..a241f9c
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent8.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, DOUBLE
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', 1.1);
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', 1.1);
+(NULL)
diff --git a/test/sql_stmt_tests/getlayerextent9.testcase b/test/sql_stmt_tests/getlayerextent9.testcase
new file mode 100644
index 0000000..01f684c
--- /dev/null
+++ b/test/sql_stmt_tests/getlayerextent9.testcase
@@ -0,0 +1,7 @@
+GetLayerExtent - TEXT, BLOB
+:memory: #use in-memory database
+SELECT GetLayerExtent('table', zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+GetLayerExtent('table', zeroblob(4));
+(NULL)
diff --git a/test/sql_stmt_tests/invalidatestats1.testcase b/test/sql_stmt_tests/invalidatestats1.testcase
new file mode 100644
index 0000000..6772193
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats1.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - NULL, NULL
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics(NULL, NULL);
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics(NULL, NULL);
+0
diff --git a/test/sql_stmt_tests/invalidatestats10.testcase b/test/sql_stmt_tests/invalidatestats10.testcase
new file mode 100644
index 0000000..49eba89
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats10.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - TEXT, NULL
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics('table', NULL);
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics('table', NULL);
+0
diff --git a/test/sql_stmt_tests/invalidatestats2.testcase b/test/sql_stmt_tests/invalidatestats2.testcase
new file mode 100644
index 0000000..49eba89
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats2.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - TEXT, NULL
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics('table', NULL);
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics('table', NULL);
+0
diff --git a/test/sql_stmt_tests/invalidatestats3.testcase b/test/sql_stmt_tests/invalidatestats3.testcase
new file mode 100644
index 0000000..2fff4ff
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats3.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - TEXT, TEXT
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics('table', 'column');
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics('table', 'column');
+1
diff --git a/test/sql_stmt_tests/invalidatestats4.testcase b/test/sql_stmt_tests/invalidatestats4.testcase
new file mode 100644
index 0000000..34113f3
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats4.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - INT, TEXT
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics(1, 'column');
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics(1, 'column');
+0
diff --git a/test/sql_stmt_tests/invalidatestats5.testcase b/test/sql_stmt_tests/invalidatestats5.testcase
new file mode 100644
index 0000000..78bc014
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats5.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - DOUBLE, TEXT
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics(1.1, 'column');
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics(1.1, 'column');
+0
diff --git a/test/sql_stmt_tests/invalidatestats6.testcase b/test/sql_stmt_tests/invalidatestats6.testcase
new file mode 100644
index 0000000..8654ce8
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats6.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - BLOB, TEXT
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics(zeroblob(4), 'column');
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics(zeroblob(4), 'column');
+0
diff --git a/test/sql_stmt_tests/invalidatestats7.testcase b/test/sql_stmt_tests/invalidatestats7.testcase
new file mode 100644
index 0000000..fd346ca
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats7.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - TEXT, INT
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics('table', 1);
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics('table', 1);
+0
diff --git a/test/sql_stmt_tests/invalidatestats8.testcase b/test/sql_stmt_tests/invalidatestats8.testcase
new file mode 100644
index 0000000..f938f98
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats8.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - TEXT, DOUBLE
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics('table', 1.1);
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics('table', 1.1);
+0
diff --git a/test/sql_stmt_tests/invalidatestats9.testcase b/test/sql_stmt_tests/invalidatestats9.testcase
new file mode 100644
index 0000000..39509da
--- /dev/null
+++ b/test/sql_stmt_tests/invalidatestats9.testcase
@@ -0,0 +1,7 @@
+InvalidateLayerStatistics - TEXT, BLOB
+:memory: #use in-memory database
+SELECT InvalidateLayerStatistics('table', zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+InvalidateLayerStatistics('table', zeroblob(4));
+0
diff --git a/test/sql_stmt_tests/ispopulatedcoverage1.testcase b/test/sql_stmt_tests/ispopulatedcoverage1.testcase
new file mode 100644
index 0000000..a3673ff
--- /dev/null
+++ b/test/sql_stmt_tests/ispopulatedcoverage1.testcase
@@ -0,0 +1,8 @@
+IsPopulatedCoverage - standard not existing coverage
+NEW:memory: #use in-memory database
+SELECT IsPopulatedCoverage('alpha');
+1 # rows (not including the header row)
+1 # columns
+IsPopulatedCoverage('alpha')
+0
+
diff --git a/test/sql_stmt_tests/ispopulatedcoverage2.testcase b/test/sql_stmt_tests/ispopulatedcoverage2.testcase
new file mode 100644
index 0000000..f17a47a
--- /dev/null
+++ b/test/sql_stmt_tests/ispopulatedcoverage2.testcase
@@ -0,0 +1,9 @@
+IsPopulatedCoverage - NULL coverage-name
+NEW:memory: #use in-memory database
+SELECT IsPopulatedCoverage(NULL);
+1 # rows (not including the header row)
+1 # columns
+IsPopulatedCoverage(NULL)
+-1
+
+
diff --git a/test/sql_stmt_tests/isvalidnodata1.testcase b/test/sql_stmt_tests/isvalidnodata1.testcase
new file mode 100644
index 0000000..496f495
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidnodata1.testcase
@@ -0,0 +1,8 @@
+IsValidNoDataPixel - standard
+NEW:memory: #use in-memory database
+SELECT IsValidNoDataPixel(zeroblob(4), 'UINT8', 1);
+1 # rows (not including the header row)
+1 # columns
+IsValidNoDataPixel(zeroblob(4), 'UINT8', 1)
+0
+
diff --git a/test/sql_stmt_tests/isvalidnodata2.testcase b/test/sql_stmt_tests/isvalidnodata2.testcase
new file mode 100644
index 0000000..7b6cd15
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidnodata2.testcase
@@ -0,0 +1,8 @@
+IsValidNoDataPixel - NULL pixel
+NEW:memory: #use in-memory database
+SELECT IsValidNoDataPixel(NULL, 'UINT8', 1);
+1 # rows (not including the header row)
+1 # columns
+IsValidNoDataPixel(NULL, 'UINT8', 1)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidnodata3.testcase b/test/sql_stmt_tests/isvalidnodata3.testcase
new file mode 100644
index 0000000..7104133
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidnodata3.testcase
@@ -0,0 +1,8 @@
+IsValidNoDataPixel - NULL sample-type
+NEW:memory: #use in-memory database
+SELECT IsValidNoDataPixel(zeroblob(4), NULL, 1);
+1 # rows (not including the header row)
+1 # columns
+IsValidNoDataPixel(zeroblob(4), NULL, 1)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidnodata4.testcase b/test/sql_stmt_tests/isvalidnodata4.testcase
new file mode 100644
index 0000000..1686639
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidnodata4.testcase
@@ -0,0 +1,8 @@
+IsValidNoDataPixel - NULL #bands
+NEW:memory: #use in-memory database
+SELECT IsValidNoDataPixel(zeroblob(4), 'UINT8', NULL);
+1 # rows (not including the header row)
+1 # columns
+IsValidNoDataPixel(zeroblob(4), 'UINT8', NULL)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidpalette1.testcase b/test/sql_stmt_tests/isvalidpalette1.testcase
new file mode 100644
index 0000000..0d6cfdc
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidpalette1.testcase
@@ -0,0 +1,8 @@
+IsValidRasterPalette - standard
+NEW:memory: #use in-memory database
+SELECT IsValidRasterPalette(zeroblob(4), 'UINT8');
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterPalette(zeroblob(4), 'UINT8')
+0
+
diff --git a/test/sql_stmt_tests/isvalidpalette2.testcase b/test/sql_stmt_tests/isvalidpalette2.testcase
new file mode 100644
index 0000000..3948a0b
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidpalette2.testcase
@@ -0,0 +1,8 @@
+IsValidRasterPalette - NULL palette
+NEW:memory: #use in-memory database
+SELECT IsValidRasterPalette(NULL, 'UINT8');
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterPalette(NULL, 'UINT8')
+-1
+
diff --git a/test/sql_stmt_tests/isvalidpalette3.testcase b/test/sql_stmt_tests/isvalidpalette3.testcase
new file mode 100644
index 0000000..b2d8bb8
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidpalette3.testcase
@@ -0,0 +1,8 @@
+IsValidRasterPalette - NULL sample-type
+NEW:memory: #use in-memory database
+SELECT IsValidRasterPalette(zeroblob(4), NULL);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterPalette(zeroblob(4), NULL)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats1.testcase b/test/sql_stmt_tests/isvalidrasterstats1.testcase
new file mode 100644
index 0000000..e40b1b6
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats1.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - standard: 2 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics('alpha', zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics('alpha', zeroblob(4))
+0
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats2.testcase b/test/sql_stmt_tests/isvalidrasterstats2.testcase
new file mode 100644
index 0000000..581a47b
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats2.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - NULL coverage-name: 2 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics(NULL, zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics(NULL, zeroblob(4))
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats3.testcase b/test/sql_stmt_tests/isvalidrasterstats3.testcase
new file mode 100644
index 0000000..d23b1fb
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats3.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - NULL statistics: 2 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics('alpha', NULL);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics('alpha', NULL)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats4.testcase b/test/sql_stmt_tests/isvalidrasterstats4.testcase
new file mode 100644
index 0000000..d33a6a2
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats4.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - standard: 3 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics(zeroblob(4), 'UINT8', 1);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics(zeroblob(4), 'UINT8', 1)
+0
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats5.testcase b/test/sql_stmt_tests/isvalidrasterstats5.testcase
new file mode 100644
index 0000000..6db71af
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats5.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - NULL statistics: 3 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics(NULL, 'UINT8', 1);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics(NULL, 'UINT8', 1)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats6.testcase b/test/sql_stmt_tests/isvalidrasterstats6.testcase
new file mode 100644
index 0000000..8742fa6
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats6.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - NULL sample-type: 3 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics(zeroblob(4), NULL, 1);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics(zeroblob(4), NULL, 1)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrasterstats7.testcase b/test/sql_stmt_tests/isvalidrasterstats7.testcase
new file mode 100644
index 0000000..c2f9009
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrasterstats7.testcase
@@ -0,0 +1,8 @@
+IsValidRasterStatistics - NULL #bands: 3 args
+NEW:memory: #use in-memory database
+SELECT IsValidRasterStatistics(zeroblob(4), 'UINT8', NULL);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterStatistics(zeroblob(4), 'UINT8', NULL)
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrastertile1.testcase b/test/sql_stmt_tests/isvalidrastertile1.testcase
new file mode 100644
index 0000000..9d18bfc
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrastertile1.testcase
@@ -0,0 +1,8 @@
+IsValidRasterTile - standard
+NEW:memory: #use in-memory database
+SELECT IsValidRasterTile('alpha', 0, zeroblob(4), zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterTile('alpha', 0, zeroblob(4), zeroblob(4))
+0
+
diff --git a/test/sql_stmt_tests/isvalidrastertile2.testcase b/test/sql_stmt_tests/isvalidrastertile2.testcase
new file mode 100644
index 0000000..ca97aeb
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrastertile2.testcase
@@ -0,0 +1,8 @@
+IsValidRasterTile - NULL coverage-name
+NEW:memory: #use in-memory database
+SELECT IsValidRasterTile(NULL, 0, zeroblob(4), zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterTile(NULL, 0, zeroblob(4), zeroblob(4))
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrastertile3.testcase b/test/sql_stmt_tests/isvalidrastertile3.testcase
new file mode 100644
index 0000000..68d8bd9
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrastertile3.testcase
@@ -0,0 +1,8 @@
+IsValidRasterTile - NULL pyramid-level
+NEW:memory: #use in-memory database
+SELECT IsValidRasterTile('alpha', NULL, zeroblob(4), zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterTile('alpha', NULL, zeroblob(4), zeroblob(4))
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrastertile4.testcase b/test/sql_stmt_tests/isvalidrastertile4.testcase
new file mode 100644
index 0000000..099c782
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrastertile4.testcase
@@ -0,0 +1,8 @@
+IsValidRasterTile - NULL odd-tile
+NEW:memory: #use in-memory database
+SELECT IsValidRasterTile('alpha', 0, NULL, zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterTile('alpha', 0, NULL, zeroblob(4))
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrastertile5.testcase b/test/sql_stmt_tests/isvalidrastertile5.testcase
new file mode 100644
index 0000000..416a28e
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrastertile5.testcase
@@ -0,0 +1,8 @@
+IsValidRasterTile - TEXT even-tile
+NEW:memory: #use in-memory database
+SELECT IsValidRasterTile('alpha', 0, zeroblob(4), 'beta');
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterTile('alpha', 0, zeroblob(4), 'beta')
+-1
+
diff --git a/test/sql_stmt_tests/isvalidrastertile6.testcase b/test/sql_stmt_tests/isvalidrastertile6.testcase
new file mode 100644
index 0000000..0ac9119
--- /dev/null
+++ b/test/sql_stmt_tests/isvalidrastertile6.testcase
@@ -0,0 +1,8 @@
+IsValidRasterTile - standard NULL even-tile
+NEW:memory: #use in-memory database
+SELECT IsValidRasterTile('alpha', 0, zeroblob(4), NULL);
+1 # rows (not including the header row)
+1 # columns
+IsValidRasterTile('alpha', 0, zeroblob(4), NULL)
+0
+
diff --git a/test/sql_stmt_tests/lhr3.testcase b/test/sql_stmt_tests/lhr3.testcase
index 842931e..0ce5f62 100644
--- a/test/sql_stmt_tests/lhr3.testcase
+++ b/test/sql_stmt_tests/lhr3.testcase
@@ -1,7 +1,7 @@
 forceLHR - GeometryCollection XY
 :memory: #use in-memory database
-SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))")));
+SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 24.1 20, 22 18, 20 20), (21 19.5, 23.1 19.5, 22 18.5, 21 19.5)))")));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))")))
-SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6,7 8,9 9),POLYGON((10 10,12 12,14 10,10 10),(11 10.5,13 10.5,12 11.5,11 10.5)),POLYGON((20 20,24 20,22 18,20 20),(21 19.5,22 18.5,23 19.5,21 19.5)))
+AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 24.1 20, 22 18, 20 20), (21 19.5, 23.1 19.5, 22 18.5, 21 19.5)))")))
+SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6,7 8,9 9),POLYGON((10 10,13 13,15 10,10 10),(11 10.5,13 10.5,13 11.3,11 10.5)),POLYGON((20 20,24.1 20,22 18,20 20),(21 19.5,22 18.5,23.1 19.5,21 19.5)))
diff --git a/test/sql_stmt_tests/lhr4.testcase b/test/sql_stmt_tests/lhr4.testcase
index badf511..7f98ea2 100644
--- a/test/sql_stmt_tests/lhr4.testcase
+++ b/test/sql_stmt_tests/lhr4.testcase
@@ -1,7 +1,7 @@
 forceLHR - GeometryCollection XYZ
 :memory: #use in-memory database
-SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)));
+SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 24.1 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23.1 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)))
-SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 101,5 6 102,7 8 103,9 9 194),POLYGON((10 10 101,12 12 103,14 10 102,10 10 101),(11 10.5 100,13 10.5 101,12 11.5 102,11 10.5 100)),POLYGON((20 20 100,24 20 101,22 18 102,20 20 100),(21 19.5 101,22 18.5 103,23 19.5 102,21 19.5 101)))
+AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 24.1 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23.1 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)))
+SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 101,5 6 102,7 8 103,9 9 19),POLYGON((10 10 101,13 13 103,15 10 102,10 10 101),(11 10.5 100,13 10.5 101,13 11.3 102,11 10.5 100)),POLYGON((20 20 100,24.1 20 101,22 18 102,20 20 100),(21 19.5 101,22 18.5 103,23.1 19.5 102,21 19.5 101)))
diff --git a/test/sql_stmt_tests/lhr5.testcase b/test/sql_stmt_tests/lhr5.testcase
index c7681d3..4ba2e37 100644
--- a/test/sql_stmt_tests/lhr5.testcase
+++ b/test/sql_stmt_tests/lhr5.testcase
@@ -1,7 +1,7 @@
 forceLHR - GeometryCollection XYM
 :memory: #use in-memory database
-SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326)));
+SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 24.1 20 11, 22 18 13, 20 20 10), (21 19.5 11, 23.1 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326)));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326)))
-SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,5 6 11,7 8 12,9 9 13),POLYGONM((10 10 11,12 12 13,14 10 12,10 10 11),(11 10.5 10,13 10.5 11,12 11.5 12,11 10.5 10)),POLYGONM((20 20 10,24 20 11,22 18 12,20 20 10),(21 19.5 11,22 18.5 13,23 19.5 12,21 19.5 11)))
+AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 24.1 20 11, 22 18 13, 20 20 10), (21 19.5 11, 23.1 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326)))
+SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,5 6 11,7 8 13,9 9 13),POLYGONM((10 10 11,13 13 13,15 10 13,10 10 11),(11 10.5 10,13 10.5 11,13 11.3 13,11 10.5 10)),POLYGONM((20 20 10,24.1 20 11,22 18 13,20 20 10),(21 19.5 11,22 18.5 13,23.1 19.5 13,21 19.5 11)))
diff --git a/test/sql_stmt_tests/lhr6.testcase b/test/sql_stmt_tests/lhr6.testcase
index a87f689..6aea126 100644
--- a/test/sql_stmt_tests/lhr6.testcase
+++ b/test/sql_stmt_tests/lhr6.testcase
@@ -1,7 +1,7 @@
 forceLHR - GeometryCollection XYZM
 :memory: #use in-memory database
-SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326)));
+SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24.1 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 23.1 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326)));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326)))
-SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(3 4 101 10,5 6 102 11,7 8 103 12,9 9 194 13),POLYGON((10 10 101 11,12 12 103 13,14 10 102 12,10 10 101 11),(11 10.5 100 10,13 10.5 101 11,12 11.5 102 12,11 10.5 100 10)),POLYGON((20 20 100 10,24 20 101 11,22 18 102 12,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23 19.5 102 12,21 19.5 101 11)))
+AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24.1 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 23.1 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326)))
+SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(3 4 101 10,5 6 102 11,7 8 103 13,9 9 19 13),POLYGON((10 10 101 11,13 13 103 13,15 10 102 13,10 10 101 11),(11 10.5 100 10,13 10.5 101 11,13 11.3 102 13,11 10.5 100 10)),POLYGON((20 20 100 10,24.1 20 101 11,22 18 102 13,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23.1 19.5 102 13,21 19.5 101 11)))
diff --git a/test/sql_stmt_tests/makepolygon1.testcase b/test/sql_stmt_tests/makepolygon1.testcase
new file mode 100644
index 0000000..1777a9b
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon1.testcase
@@ -0,0 +1,8 @@
+makepolygon - NULL exterior
+:memory: #use in-memory database
+SELECT MakePolygon(NULL);
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon10.testcase b/test/sql_stmt_tests/makepolygon10.testcase
new file mode 100644
index 0000000..bf7b801
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon10.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring exterior (not closed)
+:memory: #use in-memory database
+SELECT MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1)', 4326));
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1)', 4326))
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon11.testcase b/test/sql_stmt_tests/makepolygon11.testcase
new file mode 100644
index 0000000..58b1e7e
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon11.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring exterior XY
+:memory: #use in-memory database
+SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1, 1 1)', 4326)));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1, 1 1)', 4326)))
+POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))
+
diff --git a/test/sql_stmt_tests/makepolygon12.testcase b/test/sql_stmt_tests/makepolygon12.testcase
new file mode 100644
index 0000000..d2e5f26
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon12.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring exterior XYZ
+:memory: #use in-memory database
+SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326)));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(MakePolygon(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326)))
+POLYGON Z((1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10))
+
diff --git a/test/sql_stmt_tests/makepolygon13.testcase b/test/sql_stmt_tests/makepolygon13.testcase
new file mode 100644
index 0000000..0eac308
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon13.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring exterior XYM
+:memory: #use in-memory database
+SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGM(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326)));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(MakePolygon(GeomFromText('LINESTRINGM(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326)))
+POLYGON M((1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10))
+
diff --git a/test/sql_stmt_tests/makepolygon14.testcase b/test/sql_stmt_tests/makepolygon14.testcase
new file mode 100644
index 0000000..bd0511e
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon14.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring exterior XYZM
+:memory: #use in-memory database
+SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGZM(1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)', 4326)));
+1 # rows (not including the header row)
+1 # columns
+ST_AsText(MakePolygon(GeomFromText('LINESTRINGZM(1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)', 4326)))
+POLYGON ZM((1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5))
+
diff --git a/test/sql_stmt_tests/makepolygon15.testcase b/test/sql_stmt_tests/makepolygon15.testcase
new file mode 100644
index 0000000..7cdedda
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon15.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring NULL interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), NULL);
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), NULL);
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon16.testcase b/test/sql_stmt_tests/makepolygon16.testcase
new file mode 100644
index 0000000..e62dc89
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon16.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring INTEGER interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1);
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1);
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon17.testcase b/test/sql_stmt_tests/makepolygon17.testcase
new file mode 100644
index 0000000..1232789
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon17.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring DOUBLE interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1.5);
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1.5);
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon18.testcase b/test/sql_stmt_tests/makepolygon18.testcase
new file mode 100644
index 0000000..314e605
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon18.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring TEXT interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 'alpha');
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 'alpha');
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon19.testcase b/test/sql_stmt_tests/makepolygon19.testcase
new file mode 100644
index 0000000..0fa9c1e
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon19.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring invalid BLOB interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), zeroblob(4));
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon2.testcase b/test/sql_stmt_tests/makepolygon2.testcase
new file mode 100644
index 0000000..2bd3b7d
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon2.testcase
@@ -0,0 +1,8 @@
+makepolygon - INTEGER exterior
+:memory: #use in-memory database
+SELECT MakePolygon(1);
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(1)
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon20.testcase b/test/sql_stmt_tests/makepolygon20.testcase
new file mode 100644
index 0000000..78a7381
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon20.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring invalid Point interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POINT(1 1)'));
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POINT(1 1)'));
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon21.testcase b/test/sql_stmt_tests/makepolygon21.testcase
new file mode 100644
index 0000000..8f27696
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon21.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring invalid Polygon interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POLYGON((2 2, 3 2, 3 3, 2 3, 2 2))'));
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POLYGON((2 2, 3 2, 3 3, 2 3, 2 2))'));
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon22.testcase b/test/sql_stmt_tests/makepolygon22.testcase
new file mode 100644
index 0000000..8b6d3fa
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon22.testcase
@@ -0,0 +1,8 @@
+makepolygon - Linestring not closed interiors
+:memory: #use in-memory database
+SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11))'));
+1 # rows (not including the header row)
+1 # columns
+ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11))'));
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon23.testcase b/test/sql_stmt_tests/makepolygon23.testcase
new file mode 100644
index 0000000..d96e16c
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon23.testcase
@@ -0,0 +1,8 @@
+makepolygon - two holes
+:memory: #use in-memory database
+SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))')));
+1 # rows (not including the header row)
+1 # columns
+AsText(ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))')));
+POLYGON((1 1, 1 20, 20 20, 20 1, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))
+
diff --git a/test/sql_stmt_tests/makepolygon24.testcase b/test/sql_stmt_tests/makepolygon24.testcase
new file mode 100644
index 0000000..0b5c6d9
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon24.testcase
@@ -0,0 +1,8 @@
+makepolygon - XYZ hole
+:memory: #use in-memory database
+SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGZ(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGZ(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)')));
+1 # rows (not including the header row)
+1 # columns
+AsText(ST_MakePolygon(GeomFromText('LINESTRINGZ(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGZ(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)')))
+POLYGON Z((1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4), (2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10))
+
diff --git a/test/sql_stmt_tests/makepolygon25.testcase b/test/sql_stmt_tests/makepolygon25.testcase
new file mode 100644
index 0000000..1d5e563
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon25.testcase
@@ -0,0 +1,8 @@
+makepolygon - XYM hole
+:memory: #use in-memory database
+SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGM(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGM(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)')));
+1 # rows (not including the header row)
+1 # columns
+AsText(ST_MakePolygon(GeomFromText('LINESTRINGM(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGM(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)')))
+POLYGON M((1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4), (2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10))
+
diff --git a/test/sql_stmt_tests/makepolygon26.testcase b/test/sql_stmt_tests/makepolygon26.testcase
new file mode 100644
index 0000000..d4b4bcb
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon26.testcase
@@ -0,0 +1,8 @@
+makepolygon - XYZM hole
+:memory: #use in-memory database
+SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGZM(1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2)', 4326), GeomFromText('LINESTRINGZM(2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)')));
+1 # rows (not including the header row)
+1 # columns
+AsText(ST_MakePolygon(GeomFromText('LINESTRINGZM(1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2)', 4326), GeomFromText('LINESTRINGZM(2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)')))
+POLYGON ZM((1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2), (2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1))
+
diff --git a/test/sql_stmt_tests/makepolygon3.testcase b/test/sql_stmt_tests/makepolygon3.testcase
new file mode 100644
index 0000000..fdf98f9
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon3.testcase
@@ -0,0 +1,8 @@
+makepolygon - DOUBLE exterior
+:memory: #use in-memory database
+SELECT MakePolygon(1.5);
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(1.5)
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon4.testcase b/test/sql_stmt_tests/makepolygon4.testcase
new file mode 100644
index 0000000..fda3f87
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon4.testcase
@@ -0,0 +1,8 @@
+makepolygon - TEXT exterior
+:memory: #use in-memory database
+SELECT MakePolygon('alpha');
+1 # rows (not including the header row)
+1 # columns
+MakePolygon('alpha')
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon5.testcase b/test/sql_stmt_tests/makepolygon5.testcase
new file mode 100644
index 0000000..9ac9245
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon5.testcase
@@ -0,0 +1,8 @@
+makepolygon - invalid BLOB exterior
+:memory: #use in-memory database
+SELECT MakePolygon(zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(zeroblob(4))
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon7.testcase b/test/sql_stmt_tests/makepolygon7.testcase
new file mode 100644
index 0000000..81d5981
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon7.testcase
@@ -0,0 +1,8 @@
+makepolygon - Point exterior
+:memory: #use in-memory database
+SELECT MakePolygon(GeomFromText('POINT(1 1)', 4326));
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(GeomFromText('POINT(1 1)', 4326))
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon8.testcase b/test/sql_stmt_tests/makepolygon8.testcase
new file mode 100644
index 0000000..f178690
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon8.testcase
@@ -0,0 +1,8 @@
+makepolygon - Polygon exterior
+:memory: #use in-memory database
+SELECT MakePolygon(GeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326));
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(GeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326))
+(NULL)
+
diff --git a/test/sql_stmt_tests/makepolygon9.testcase b/test/sql_stmt_tests/makepolygon9.testcase
new file mode 100644
index 0000000..4336d1c
--- /dev/null
+++ b/test/sql_stmt_tests/makepolygon9.testcase
@@ -0,0 +1,8 @@
+makepolygon - MultiLinestring exterior
+:memory: #use in-memory database
+SELECT MakePolygon(GeomFromText('MULTILINESTRING((1 1, 1 2), (2 2, 2 1, 1 1))', 4326));
+1 # rows (not including the header row)
+1 # columns
+MakePolygon(GeomFromText('MULTILINESTRING((1 1, 1 2), (2 2, 2 1, 1 1))', 4326))
+(NULL)
+
diff --git a/test/sql_stmt_tests/mpointfromtext1.testcase b/test/sql_stmt_tests/mpointfromtext1.testcase
index 11223d5..d371c61 100644
--- a/test/sql_stmt_tests/mpointfromtext1.testcase
+++ b/test/sql_stmt_tests/mpointfromtext1.testcase
@@ -1,7 +1,7 @@
 multipointfromtext1
 :memory: #use in-memory database
-SELECT AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)"))
+SELECT AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)"))
 1 # rows (not including the header row)
 1 # columns
-AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)"))
-MULTIPOINT(-71 42,-70 41,-70 42,-70 42,-71 42)
\ No newline at end of file
+AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)"))
+MULTIPOINT(-75 42,-70 45,-70 42,-70 42,-75 42)
diff --git a/test/sql_stmt_tests/mpointfromtext2.testcase b/test/sql_stmt_tests/mpointfromtext2.testcase
index f23c525..1362e22 100644
--- a/test/sql_stmt_tests/mpointfromtext2.testcase
+++ b/test/sql_stmt_tests/mpointfromtext2.testcase
@@ -1,7 +1,7 @@
 multipointfromtext2
 :memory: #use in-memory database
-SELECT AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)", 4326))
+SELECT AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)", 4326))
 1 # rows (not including the header row)
 1 # columns
-AsWkt(MPointFromText("MULTIPOINT(-71 42, -70 41, -70 42, -70 42, -71 42)", 4326))
-MULTIPOINT(-71 42,-70 41,-70 42,-70 42,-71 42)
\ No newline at end of file
+AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)", 4326))
+MULTIPOINT(-75 42,-70 45,-70 42,-70 42,-75 42)
diff --git a/test/sql_stmt_tests/reverse3.testcase b/test/sql_stmt_tests/reverse3.testcase
index 9bef2a6..494e3db 100644
--- a/test/sql_stmt_tests/reverse3.testcase
+++ b/test/sql_stmt_tests/reverse3.testcase
@@ -1,7 +1,7 @@
 reverse - GeometryCollection XY
 :memory: #use in-memory database
-SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))")));
+SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 27 20, 22 18, 20 20), (21 19.5, 27 19.5, 22 18.5, 21 19.5)))")));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 14 10, 12 12, 10 10), (11 10.5, 13 10.5, 12 11.5, 11 10.5)), POLYGON((20 20, 24 20, 22 18, 20 20), (21 19.5, 23 19.5, 22 18.5, 21 19.5)))")))
-SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(9 9,7 8,5 6,3 4),POLYGON((10 10,12 12,14 10,10 10),(11 10.5,12 11.5,13 10.5,11 10.5)),POLYGON((20 20,22 18,24 20,20 20),(21 19.5,22 18.5,23 19.5,21 19.5)))
+AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 27 20, 22 18, 20 20), (21 19.5, 27 19.5, 22 18.5, 21 19.5)))")))
+SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(9 9,7 8,5 6,3 4),POLYGON((10 10,13 13,15 10,10 10),(11 10.5,13 11.3,13 10.5,11 10.5)),POLYGON((20 20,22 18,27 20,20 20),(21 19.5,22 18.5,27 19.5,21 19.5)))
diff --git a/test/sql_stmt_tests/reverse4.testcase b/test/sql_stmt_tests/reverse4.testcase
index a3905a6..e121deb 100644
--- a/test/sql_stmt_tests/reverse4.testcase
+++ b/test/sql_stmt_tests/reverse4.testcase
@@ -1,7 +1,7 @@
 reverse - GeometryCollection XYZ
 :memory: #use in-memory database
-SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)));
+SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 27 20 101, 22 18 102, 20 20 100), (21 19.5 101, 27 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 194), POLYGONZ((10 10 101, 14 10 102, 12 12 103, 10 10 101), (11 10.5 100, 13 10.5 101, 12 11.5 102, 11 10.5 100)), POLYGONZ((20 20 100, 24 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)))
-SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(9 9 194,7 8 103,5 6 102,3 4 101),POLYGON((10 10 101,12 12 103,14 10 102,10 10 101),(11 10.5 100,12 11.5 102,13 10.5 101,11 10.5 100)),POLYGON((20 20 100,22 18 102,24 20 101,20 20 100),(21 19.5 101,22 18.5 103,23 19.5 102,21 19.5 101)))
+AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 27 20 101, 22 18 102, 20 20 100), (21 19.5 101, 27 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326)))
+SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(9 9 19,7 8 103,5 6 102,3 4 101),POLYGON((10 10 101,13 13 103,15 10 102,10 10 101),(11 10.5 100,13 11.3 102,13 10.5 101,11 10.5 100)),POLYGON((20 20 100,22 18 102,27 20 101,20 20 100),(21 19.5 101,22 18.5 103,27 19.5 102,21 19.5 101)))
diff --git a/test/sql_stmt_tests/reverse5.testcase b/test/sql_stmt_tests/reverse5.testcase
index abce5fa..8afd01a 100644
--- a/test/sql_stmt_tests/reverse5.testcase
+++ b/test/sql_stmt_tests/reverse5.testcase
@@ -1,7 +1,7 @@
 reverse - GeometryCollection XYM
 :memory: #use in-memory database
-SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326)));
+SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 27 20 11, 22 18 13, 20 20 10), (21 19.5 11, 27 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326)));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 12, 9 9 13), POLYGONM((10 10 11, 14 10 12, 12 12 13, 10 10 11), (11 10.5 10, 13 10.5 11, 12 11.5 12, 11 10.5 10)), POLYGONM((20 20 10, 24 20 11, 22 18 12, 20 20 10), (21 19.5 11, 23 19.5 12, 22 18.5 13, 21 19.5 11)))", 4326)))
-SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(9 9 13,7 8 12,5 6 11,3 4 10),POLYGONM((10 10 11,12 12 13,14 10 12,10 10 11),(11 10.5 10,12 11.5 12,13 10.5 11,11 10.5 10)),POLYGONM((20 20 10,22 18 12,24 20 11,20 20 10),(21 19.5 11,22 18.5 13,23 19.5 12,21 19.5 11)))
+AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 27 20 11, 22 18 13, 20 20 10), (21 19.5 11, 27 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326)))
+SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(9 9 13,7 8 13,5 6 11,3 4 10),POLYGONM((10 10 11,13 13 13,15 10 13,10 10 11),(11 10.5 10,13 11.3 13,13 10.5 11,11 10.5 10)),POLYGONM((20 20 10,22 18 13,27 20 11,20 20 10),(21 19.5 11,22 18.5 13,27 19.5 13,21 19.5 11)))
diff --git a/test/sql_stmt_tests/reverse6.testcase b/test/sql_stmt_tests/reverse6.testcase
index e308372..c60a0c9 100644
--- a/test/sql_stmt_tests/reverse6.testcase
+++ b/test/sql_stmt_tests/reverse6.testcase
@@ -1,7 +1,7 @@
 reverse - GeometryCollection XYZM
 :memory: #use in-memory database
-SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326)));
+SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 27 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 27 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326)));
 1 # rows (not including the header row)
 1 # columns
-AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 12, 9 9 194 13), POLYGONZM((10 10 101 11, 14 10 102 12, 12 12 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 12 11.5 102 12, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 24 20 101 11, 22 18 102 12, 20 20 100 10), (21 19.5 101 11, 23 19.5 102 12, 22 18.5 103 13, 21 19.5 101 11)))", 4326)))
-SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(9 9 194 13,7 8 103 12,5 6 102 11,3 4 101 10),POLYGON((10 10 101 11,12 12 103 13,14 10 102 12,10 10 101 11),(11 10.5 100 10,12 11.5 102 12,13 10.5 101 11,11 10.5 100 10)),POLYGON((20 20 100 10,22 18 102 12,24 20 101 11,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,23 19.5 102 12,21 19.5 101 11)))
+AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 27 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 27 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326)))
+SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(9 9 19 13,7 8 103 13,5 6 102 11,3 4 101 10),POLYGON((10 10 101 11,13 13 103 13,15 10 102 13,10 10 101 11),(11 10.5 100 10,13 11.3 102 13,13 10.5 101 11,11 10.5 100 10)),POLYGON((20 20 100 10,22 18 102 13,27 20 101 11,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,27 19.5 102 13,21 19.5 101 11)))
diff --git a/test/sql_stmt_tests/sanitizeGeometry10.testcase b/test/sql_stmt_tests/sanitizeGeometry10.testcase
index a1e9933..3576cb7 100644
--- a/test/sql_stmt_tests/sanitizeGeometry10.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry10.testcase
@@ -1,9 +1,9 @@
 Sanitize Geometry - POLYGON Z
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326)))
-SRID=4326;POLYGON((-71 42 2,-70 41 2,-70 42 3,-70 42 4,-71 42 2))
+AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326)))
+SRID=4326;POLYGON((-75 42 2,-70 39 2,-70 42 3,-70 42 4,-75 42 2))
 
 
diff --git a/test/sql_stmt_tests/sanitizeGeometry11.testcase b/test/sql_stmt_tests/sanitizeGeometry11.testcase
index e6bec32..74556f6 100644
--- a/test/sql_stmt_tests/sanitizeGeometry11.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry11.testcase
@@ -1,9 +1,9 @@
 Sanitize Geometry - POLYGON M
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-71 42 2, -70 41 2, -70 42 3, -70 42 4, -71 42 2))", 4326)))
-SRID=4326;POLYGONM((-71 42 2,-70 41 2,-70 42 3,-71 42 2))
+AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326)))
+SRID=4326;POLYGONM((-75 42 2,-70 39 2,-70 42 3,-75 42 2))
 
 
diff --git a/test/sql_stmt_tests/sanitizeGeometry12.testcase b/test/sql_stmt_tests/sanitizeGeometry12.testcase
index 7804021..5fe0e9e 100644
--- a/test/sql_stmt_tests/sanitizeGeometry12.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry12.testcase
@@ -1,10 +1,10 @@
 Sanitize Geometry - POLYGON M - point combinations
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -71 42 2, -70 41 2, -70 42 3, -70 42 3, -70 42 4, -71 42 2, -70 42 2))", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -75 42 2, -70 39 2, -70 42 3, -70 42 3, -70 42 4, -75 42 2, -70 42 2))", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -71 42 2, -70 41 2, -70 42 3, -70 42 3, -70 42 4, -71 42 2, -70 42 2))", 4326)))
-SRID=4326;POLYGONM((-70 42 2,-71 42 2,-70 41 2,-70 42 3,-71 42 2,-70 42 2))
+AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -75 42 2, -70 39 2, -70 42 3, -70 42 3, -70 42 4, -75 42 2, -70 42 2))", 4326)))
+SRID=4326;POLYGONM((-70 42 2,-75 42 2,-70 39 2,-70 42 3,-75 42 2,-70 42 2))
 
 
 
diff --git a/test/sql_stmt_tests/sanitizeGeometry6.testcase b/test/sql_stmt_tests/sanitizeGeometry6.testcase
index 5a0959a..b0f494c 100644
--- a/test/sql_stmt_tests/sanitizeGeometry6.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry6.testcase
@@ -1,9 +1,9 @@
 Sanitize Geometry - POLYGON
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-75 42, -70 39, -70 42, -70 42, -75 42))", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326)))
-SRID=4326;POLYGON((-71 42,-70 41,-70 42,-71 42))
+AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-75 42, -70 39, -70 42, -70 42, -75 42))", 4326)))
+SRID=4326;POLYGON((-75 42,-70 39,-70 42,-75 42))
 
 
diff --git a/test/sql_stmt_tests/sanitizeGeometry7.testcase b/test/sql_stmt_tests/sanitizeGeometry7.testcase
index 5ff4b08..f233e3d 100644
--- a/test/sql_stmt_tests/sanitizeGeometry7.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry7.testcase
@@ -1,9 +1,9 @@
 Sanitize Geometry - POLYGON ZM
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0))", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0))", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0))", 4326)))
-SRID=4326;POLYGON((-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0))
+AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0))", 4326)))
+SRID=4326;POLYGON((-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0))
 
 
diff --git a/test/sql_stmt_tests/sanitizeGeometry8.testcase b/test/sql_stmt_tests/sanitizeGeometry8.testcase
index 2f3b926..1c671f4 100644
--- a/test/sql_stmt_tests/sanitizeGeometry8.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry8.testcase
@@ -1,9 +1,9 @@
 Sanitize Geometry - MULTIPOINT ZM
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326)))
-SRID=4326;MULTIPOINT(-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0)
+AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326)))
+SRID=4326;MULTIPOINT(-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0)
 
 
diff --git a/test/sql_stmt_tests/sanitizeGeometry9.testcase b/test/sql_stmt_tests/sanitizeGeometry9.testcase
index 05dfdb1..d289fcd 100644
--- a/test/sql_stmt_tests/sanitizeGeometry9.testcase
+++ b/test/sql_stmt_tests/sanitizeGeometry9.testcase
@@ -1,9 +1,9 @@
 Sanitize Geometry - LINESTRING ZM
 :memory: #use in-memory database
-SELECT AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326)))
+SELECT AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326)))
 1 # rows (not including the header row)
 1 # columns
-AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-71 42 2 0, -70 41 2 0, -70 42 3 0, -70 42 4 0, -71 42 2 0)", 4326)))
-SRID=4326;LINESTRING(-71 42 2 0,-70 41 2 0,-70 42 3 0,-70 42 4 0,-71 42 2 0)
+AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326)))
+SRID=4326;LINESTRING(-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0)
 
 
diff --git a/test/sql_stmt_tests/todms1.testcase b/test/sql_stmt_tests/todms1.testcase
new file mode 100644
index 0000000..4913d9e
--- /dev/null
+++ b/test/sql_stmt_tests/todms1.testcase
@@ -0,0 +1,8 @@
+todms - NULL longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(NULL, 42.5);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(NULL, 42.5)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms10.testcase b/test/sql_stmt_tests/todms10.testcase
new file mode 100644
index 0000000..7968d0c
--- /dev/null
+++ b/test/sql_stmt_tests/todms10.testcase
@@ -0,0 +1,8 @@
+todms - invalid negative longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(-211.5, 42);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(-211.5, 42)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms11.testcase b/test/sql_stmt_tests/todms11.testcase
new file mode 100644
index 0000000..d4a2d19
--- /dev/null
+++ b/test/sql_stmt_tests/todms11.testcase
@@ -0,0 +1,8 @@
+todms - invalid positive longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(211.5, 42);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(211.5, 42)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms12.testcase b/test/sql_stmt_tests/todms12.testcase
new file mode 100644
index 0000000..7b4aabe
--- /dev/null
+++ b/test/sql_stmt_tests/todms12.testcase
@@ -0,0 +1,8 @@
+todms - invalid negative latitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11.5, -92);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11.5, -92)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms13.testcase b/test/sql_stmt_tests/todms13.testcase
new file mode 100644
index 0000000..144fe95
--- /dev/null
+++ b/test/sql_stmt_tests/todms13.testcase
@@ -0,0 +1,8 @@
+todms - invalid negative latitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11.5, 92);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11.5, 92)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms2.testcase b/test/sql_stmt_tests/todms2.testcase
new file mode 100644
index 0000000..9109272
--- /dev/null
+++ b/test/sql_stmt_tests/todms2.testcase
@@ -0,0 +1,8 @@
+todms - TEXT longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS('alpha', 42.5);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS('alpha', 42.5)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms3.testcase b/test/sql_stmt_tests/todms3.testcase
new file mode 100644
index 0000000..589bd1a
--- /dev/null
+++ b/test/sql_stmt_tests/todms3.testcase
@@ -0,0 +1,8 @@
+todms - BLOB longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(zeroblob(4), 42.5);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(zeroblob(4), 42.5)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms4.testcase b/test/sql_stmt_tests/todms4.testcase
new file mode 100644
index 0000000..31cc5da
--- /dev/null
+++ b/test/sql_stmt_tests/todms4.testcase
@@ -0,0 +1,8 @@
+todms - Integer longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11, 42.5);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11, 42.5)
+42°30′00″N 011°00′00″E
+
diff --git a/test/sql_stmt_tests/todms5.testcase b/test/sql_stmt_tests/todms5.testcase
new file mode 100644
index 0000000..b13affb
--- /dev/null
+++ b/test/sql_stmt_tests/todms5.testcase
@@ -0,0 +1,8 @@
+todms - Float longitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11.5, 42.5);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11.5, 42.5)
+42°30′00″N 011°30′00″E
+
diff --git a/test/sql_stmt_tests/todms6.testcase b/test/sql_stmt_tests/todms6.testcase
new file mode 100644
index 0000000..494a01d
--- /dev/null
+++ b/test/sql_stmt_tests/todms6.testcase
@@ -0,0 +1,8 @@
+todms - NULL latitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11.5, NULL);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11.5, NULL)
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms7.testcase b/test/sql_stmt_tests/todms7.testcase
new file mode 100644
index 0000000..cbad022
--- /dev/null
+++ b/test/sql_stmt_tests/todms7.testcase
@@ -0,0 +1,8 @@
+todms - TEXT latitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11.5, 'alpha');
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11.5, 'alpha')
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms8.testcase b/test/sql_stmt_tests/todms8.testcase
new file mode 100644
index 0000000..8fb72c0
--- /dev/null
+++ b/test/sql_stmt_tests/todms8.testcase
@@ -0,0 +1,8 @@
+todms - BLOB latitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(11.5, zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(11.5, zeroblob(4))
+(NULL)
+
diff --git a/test/sql_stmt_tests/todms9.testcase b/test/sql_stmt_tests/todms9.testcase
new file mode 100644
index 0000000..52a5a63
--- /dev/null
+++ b/test/sql_stmt_tests/todms9.testcase
@@ -0,0 +1,8 @@
+todms - Integer latitude
+:memory: #use in-memory database
+SELECT LongLatToDMS(-11.5, -42);
+1 # rows (not including the header row)
+1 # columns
+LongLatToDMS(-11.5, -42)
+42°00′00″S 011°30′00″W
+
diff --git a/test/sql_stmt_tests/updatestats1.testcase b/test/sql_stmt_tests/updatestats1.testcase
new file mode 100644
index 0000000..8b4ff44
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats1.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - NULL, NULL
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics(NULL, NULL);
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics(NULL, NULL);
+0
diff --git a/test/sql_stmt_tests/updatestats10.testcase b/test/sql_stmt_tests/updatestats10.testcase
new file mode 100644
index 0000000..9331cea
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats10.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - TEXT, NULL
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics('table', NULL);
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics('table', NULL);
+0
diff --git a/test/sql_stmt_tests/updatestats2.testcase b/test/sql_stmt_tests/updatestats2.testcase
new file mode 100644
index 0000000..9331cea
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats2.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - TEXT, NULL
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics('table', NULL);
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics('table', NULL);
+0
diff --git a/test/sql_stmt_tests/updatestats3.testcase b/test/sql_stmt_tests/updatestats3.testcase
new file mode 100644
index 0000000..46e65c8
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats3.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - TEXT, TEXT
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics('table', 'column');
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics('table', 'column');
+1
diff --git a/test/sql_stmt_tests/updatestats4.testcase b/test/sql_stmt_tests/updatestats4.testcase
new file mode 100644
index 0000000..8e87ad5
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats4.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - INT, TEXT
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics(1, 'column');
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics(1, 'column');
+0
diff --git a/test/sql_stmt_tests/updatestats5.testcase b/test/sql_stmt_tests/updatestats5.testcase
new file mode 100644
index 0000000..bea24a1
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats5.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - DOUBLE, TEXT
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics(1.1, 'column');
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics(1.1, 'column');
+0
diff --git a/test/sql_stmt_tests/updatestats6.testcase b/test/sql_stmt_tests/updatestats6.testcase
new file mode 100644
index 0000000..e630bae
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats6.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - BLOB, TEXT
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics(zeroblob(4), 'column');
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics(zeroblob(4), 'column');
+0
diff --git a/test/sql_stmt_tests/updatestats7.testcase b/test/sql_stmt_tests/updatestats7.testcase
new file mode 100644
index 0000000..4d59411
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats7.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - TEXT, INT
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics('table', 1);
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics('table', 1);
+0
diff --git a/test/sql_stmt_tests/updatestats8.testcase b/test/sql_stmt_tests/updatestats8.testcase
new file mode 100644
index 0000000..0525e41
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats8.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - TEXT, DOUBLE
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics('table', 1.1);
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics('table', 1.1);
+0
diff --git a/test/sql_stmt_tests/updatestats9.testcase b/test/sql_stmt_tests/updatestats9.testcase
new file mode 100644
index 0000000..5d0463d
--- /dev/null
+++ b/test/sql_stmt_tests/updatestats9.testcase
@@ -0,0 +1,7 @@
+UpdateLayerStatistics - TEXT, BLOB
+:memory: #use in-memory database
+SELECT UpdateLayerStatistics('table', zeroblob(4));
+1 # rows (not including the header row)
+1 # columns
+UpdateLayerStatistics('table', zeroblob(4));
+0
diff --git a/test/sql_stmt_xmlsec_tests/Makefile.in b/test/sql_stmt_xmlsec_tests/Makefile.in
index 59daa7e..a31c487 100644
--- a/test/sql_stmt_xmlsec_tests/Makefile.in
+++ b/test/sql_stmt_xmlsec_tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -50,7 +78,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = test/sql_stmt_xmlsec_tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -62,6 +90,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -69,9 +109,11 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -260,11 +302,9 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -402,15 +442,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/test/stazioni_se.xml b/test/stazioni_se.xml
index 0c3cbfb..14574b6 100644
--- a/test/stazioni_se.xml
+++ b/test/stazioni_se.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
+  <Name>OSM Railway Stations - SLD test</Name>  
+  <Title>SLD test - Point [Railway Stations]</Title>
+  <Abstract>an SLD complex variable style [depending on actual scale]</Abstract>
   <NamedLayer>
     <Name>OSM Railway Stations - SE test</Name>
     <UserStyle>
diff --git a/test/test-invalid.sqlite b/test/test-invalid.sqlite
index 77e67fe..cff6271 100644
Binary files a/test/test-invalid.sqlite and b/test/test-invalid.sqlite differ
diff --git a/test/test_geos.sqlite b/test/test_geos.sqlite
new file mode 100644
index 0000000..336a1ef
Binary files /dev/null and b/test/test_geos.sqlite differ
diff --git a/test/test_helpers.h b/test/test_helpers.h
index d5bc8ae..39475bc 100644
--- a/test/test_helpers.h
+++ b/test/test_helpers.h
@@ -3,3 +3,78 @@
 #else
 #define UNUSED
 #endif
+
+#ifdef __WIN32
+/*
+ * Windows replacement for strcastr
+ *
+ * original code from:
+ * https://code.google.com/p/msysgit/source/browse/compat/strcasestr.c?repo=4msysgit&name=mingw-v1.5.2.4-devel
+ */
+static char *
+strcasestr (const char *haystack, const char *needle)
+{
+    int nlen = strlen (needle);
+    int hlen = strlen (haystack) - nlen + 1;
+    int i;
+
+    for (i = 0; i < hlen; i++)
+      {
+	  int j;
+	  for (j = 0; j < nlen; j++)
+	    {
+		unsigned char c1 = haystack[i + j];
+		unsigned char c2 = needle[j];
+		if (toupper (c1) != toupper (c2))
+		    goto next;
+	    }
+	  return (char *) haystack + i;
+	next:
+	  ;
+      }
+    return NULL;
+}
+#endif
+
+#ifdef __WIN32
+/* 
+ * public domain strtok_r() by Charlie Gordon
+ *
+ *   from comp.lang.c  9/14/2007
+ *
+ *      http://groups.google.com/group/comp.lang.c/msg/2ab1ecbb86646684
+ *
+ *     (Declaration that it's public domain):
+ *      http://groups.google.com/group/comp.lang.c/msg/7c7b39328fefab9c
+ */
+static char *
+strtok_r (char *str, const char *delim, char **nextp)
+{
+    char *ret;
+
+    if (str == NULL)
+      {
+	  str = *nextp;
+      }
+
+    str += strspn (str, delim);
+
+    if (*str == '\0')
+      {
+	  return NULL;
+      }
+
+    ret = str;
+
+    str += strcspn (str, delim);
+
+    if (*str)
+      {
+	  *str++ = '\0';
+      }
+
+    *nextp = str;
+
+    return ret;
+}
+#endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/spatialite.git



More information about the Pkg-grass-devel mailing list